• Creates a type-safe token for service resolution.

    Tokens provide compile-time type safety and prevent typos in service names.

    Type Parameters

    • T

    Parameters

    • name: string

      The service name (must match the registration name)

    Returns Token<T>

    A type-safe token

    import { createToken } from '@stratix/di';
    import { createContainer } from '@stratix/runtime';

    // Define tokens
    const LOGGER = createToken<Logger>('logger');
    const USER_REPO = createToken<UserRepository>('userRepository');

    // Register services
    container.register({
    logger: asClass(ConsoleLogger).singleton(),
    userRepository: asClass(UserRepository).singleton()
    });

    // Type-safe resolution
    const logger = LOGGER.resolve(container); // Type: Logger
    const repo = USER_REPO.resolve(container); // Type: UserRepository