@chubbyjs/chubbyjs-laminas-config-factory
v1.0.1
Published
An abstract service factory for chubbyjs/chubbyjs-laminas-config or any other similar implementation.
Downloads
5
Maintainers
Readme
chubbyjs-laminas-config-factory
Description
An abstract service factory for chubbyjs/chubbyjs-laminas-config or any other similar implementation.
Requirements
- node: 12
- @chubbyjs/psr-container: ^1.0
Installation
Through NPM as @chubbyjs/chubbyjs-laminas-config-factory.
npm i @chubbyjs/[email protected]
Usage
import ServiceA from './ServiceA';
import ServiceB from './ServiceB';
import ServiceC from './ServiceC';
import ServiceBFactory from './ServiceBFactory';
import AbstractBaseFactory, { Invokable } from '@chubbyjs/chubbyjs-laminas-config-factory/dist/BaseFactory';
import ContainerInterface from '@chubbyjs/psr-container/dist/ContainerInterface';
const ServiceAFactory = Invokable(class extends AbstractBaseFactory {
public __invoke(container: ContainerInterface): ServiceA {
return new ServiceA(
this.resolveConfig(container.get('config').serviceA ?? {}),
this.resolveDependency<ServiceB>(container, ServiceB.name, ServiceBFactory),
this.resolveDependency<ServiceC>(container, ServiceC.name, ServiceCFactory),
);
}
});
// ContainerInterface
const container = ...;
// without name
const serviceA = ServiceAFactory()(container);
// with name
const serviceA = ServiceAFactory('default')(container);
Copyright
Dominik Zogg 2021