Vinyl
    Preparing search index...

    Function externalDependencies

    • Creates a Factories record which provides the values of deps. These dependencies will be considered to be owned externally and will not be disposed by containers using these factories.

      This is useful when you want to inject existing instances into a dependency container without transferring ownership. The container will use these dependencies but won't dispose them when the container is disposed.

      Type Parameters

      Parameters

      • deps: T

        A record of dependency instances to be wrapped as factories. Each value will be returned as-is by the corresponding factory.

      Returns Factories<T>

      An object with dependency factories for each member of deps. Each provider is marked with the ExternalDependency symbol.

      const logger = new Logger()
      const config = { port: 8080 }

      const factories = validateFactories({
      ...externalDependencies({ logger, config }),
      controller: (deps: { readonly logger: Logger }) => ({
      start: () => deps.logger.log('starting...'),
      dispose: () => deps.logger.log('disposed')
      })
      })
      const container = createContainer(factories)

      // logger and config won't be disposed when container is disposed
      // controller will be disposed
      container.dispose()