@forklaunch/core 0.2.17 → 0.2.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/vitest.config.js +1 -1
- package/package.json +3 -3
- package/lib/src/services/serviceFactory.d.ts +0 -15
- package/lib/src/services/serviceFactory.d.ts.map +0 -1
- package/lib/src/services/serviceFactory.js +0 -22
- package/lib/src/services/types/serviceFactory.types.d.ts +0 -23
- package/lib/src/services/types/serviceFactory.types.d.ts.map +0 -1
- package/lib/src/services/types/serviceFactory.types.js +0 -6
- package/lib/tests/serviceFactory.test.d.ts +0 -2
- package/lib/tests/serviceFactory.test.d.ts.map +0 -1
- package/lib/tests/serviceFactory.test.js +0 -36
package/lib/vitest.config.js
CHANGED
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@forklaunch/core",
|
3
|
-
"version": "0.2.
|
3
|
+
"version": "0.2.18",
|
4
4
|
"description": "forklaunch-js core package. Contains useful building blocks.",
|
5
5
|
"files": [
|
6
6
|
"lib"
|
@@ -23,8 +23,8 @@
|
|
23
23
|
"openapi3-ts": "^4.3.3",
|
24
24
|
"redis": "^4.7.0",
|
25
25
|
"uuid": "^10.0.0",
|
26
|
-
"@forklaunch/
|
27
|
-
"@forklaunch/
|
26
|
+
"@forklaunch/common": "0.1.10",
|
27
|
+
"@forklaunch/validator": "0.3.8"
|
28
28
|
},
|
29
29
|
"devDependencies": {
|
30
30
|
"@eslint/js": "^9.9.0",
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import { AnySchemaValidator } from '@forklaunch/validator';
|
2
|
-
import { ConfigInjector } from './configInjector';
|
3
|
-
import { ConfigValidator } from './types/configInjector.types';
|
4
|
-
import { EntityManager } from './types/entityManager.types';
|
5
|
-
export declare class ServiceFactoryInternal<SV extends AnySchemaValidator, Options> {
|
6
|
-
private _schemaValidator;
|
7
|
-
private configInjector;
|
8
|
-
private serviceToken;
|
9
|
-
private entityManager;
|
10
|
-
private globalOptions?;
|
11
|
-
constructor(_schemaValidator: SV, configInjector: ConfigInjector<SV, ConfigValidator<SV>>, serviceToken: keyof ConfigValidator<SV>, entityManager: EntityManager, globalOptions?: Options | undefined);
|
12
|
-
create<Opt extends Options>(options?: Opt): ConfigValidator<SV>[keyof ConfigValidator<SV>];
|
13
|
-
}
|
14
|
-
export declare const ServiceFactory: <SV extends AnySchemaValidator, Options>(schemaValidator: SV, configInjector: ConfigInjector<SV, ConfigValidator<SV>>, serviceToken: keyof ConfigValidator<SV>, entityManager: EntityManager, globalOptions?: Options) => ServiceFactoryInternal<SV, Options>;
|
15
|
-
//# sourceMappingURL=serviceFactory.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"serviceFactory.d.ts","sourceRoot":"","sources":["../../../src/services/serviceFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,qBAAa,sBAAsB,CAAC,EAAE,SAAS,kBAAkB,EAAE,OAAO;IAEtE,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,aAAa,CAAC;gBAJd,gBAAgB,EAAE,EAAE,EACpB,cAAc,EAAE,cAAc,CAAC,EAAE,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,EACvD,YAAY,EAAE,MAAM,eAAe,CAAC,EAAE,CAAC,EACvC,aAAa,EAAE,aAAa,EAC5B,aAAa,CAAC,EAAE,OAAO,YAAA;IAGjC,MAAM,CAAC,GAAG,SAAS,OAAO,EACxB,OAAO,CAAC,EAAE,GAAG,GACZ,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;CAKlD;AAED,eAAO,MAAM,cAAc,GAAI,EAAE,SAAS,kBAAkB,EAAE,OAAO,mBAClD,EAAE,kBACH,cAAc,CAAC,EAAE,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,gBACzC,MAAM,eAAe,CAAC,EAAE,CAAC,iBACxB,aAAa,kBACZ,OAAO,wCASxB,CAAC"}
|
@@ -1,22 +0,0 @@
|
|
1
|
-
export class ServiceFactoryInternal {
|
2
|
-
_schemaValidator;
|
3
|
-
configInjector;
|
4
|
-
serviceToken;
|
5
|
-
entityManager;
|
6
|
-
globalOptions;
|
7
|
-
constructor(_schemaValidator, configInjector, serviceToken, entityManager, globalOptions) {
|
8
|
-
this._schemaValidator = _schemaValidator;
|
9
|
-
this.configInjector = configInjector;
|
10
|
-
this.serviceToken = serviceToken;
|
11
|
-
this.entityManager = entityManager;
|
12
|
-
this.globalOptions = globalOptions;
|
13
|
-
}
|
14
|
-
create(options) {
|
15
|
-
return this.configInjector.resolve(this.serviceToken, {
|
16
|
-
entityManager: this.entityManager.fork(options ?? this.globalOptions)
|
17
|
-
});
|
18
|
-
}
|
19
|
-
}
|
20
|
-
export const ServiceFactory = (schemaValidator, configInjector, serviceToken, entityManager, globalOptions) => {
|
21
|
-
return new ServiceFactoryInternal(schemaValidator, configInjector, serviceToken, entityManager, globalOptions);
|
22
|
-
};
|
@@ -1,23 +0,0 @@
|
|
1
|
-
import { AnySchemaValidator, IdiomaticSchema, Schema } from '@forklaunch/validator';
|
2
|
-
export declare enum Lifetime {
|
3
|
-
Singleton = 0,
|
4
|
-
Transient = 1,
|
5
|
-
Scoped = 2
|
6
|
-
}
|
7
|
-
export type Singleton<Value> = {
|
8
|
-
lifetime: Lifetime.Singleton;
|
9
|
-
value: Value;
|
10
|
-
};
|
11
|
-
export type Constructed<Args, Return> = {
|
12
|
-
lifetime: Lifetime.Transient | Lifetime.Scoped;
|
13
|
-
factory: (args: Args, resolve: <T extends keyof Args>(token: T, context?: Record<string, unknown>) => Args[T], context: Record<string, unknown>) => Return;
|
14
|
-
};
|
15
|
-
export type Constructor = new (...args: never[]) => unknown;
|
16
|
-
export type SchemaConstructor<SV extends AnySchemaValidator> = new (...args: unknown[]) => IdiomaticSchema<SV>;
|
17
|
-
export type Function = (...args: never[]) => unknown;
|
18
|
-
export type SchemaFunction<SV extends AnySchemaValidator> = (args: unknown) => IdiomaticSchema<SV>;
|
19
|
-
export type ConfigValidator<SV extends AnySchemaValidator> = Record<string, Function | SchemaFunction<SV> | Constructor | SchemaConstructor<SV> | IdiomaticSchema<SV>>;
|
20
|
-
export type ResolvedConfigValidator<SV extends AnySchemaValidator, CV extends ConfigValidator<SV>> = {
|
21
|
-
[M in keyof CV]: CV[M] extends SchemaConstructor<SV> ? Schema<InstanceType<CV[M]>, SV> : CV[M] extends SchemaFunction<SV> ? Schema<ReturnType<CV[M]>, SV> : CV[M] extends Function ? ReturnType<CV[M]> : CV[M] extends Constructor ? InstanceType<CV[M]> : Schema<CV[M], SV>;
|
22
|
-
};
|
23
|
-
//# sourceMappingURL=serviceFactory.types.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"serviceFactory.types.d.ts","sourceRoot":"","sources":["../../../../src/services/types/serviceFactory.types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,MAAM,EACP,MAAM,uBAAuB,CAAC;AAE/B,oBAAY,QAAQ;IAClB,SAAS,IAAA;IACT,SAAS,IAAA;IACT,MAAM,IAAA;CACP;AAED,MAAM,MAAM,SAAS,CAAC,KAAK,IAAI;IAC7B,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC;IAC7B,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,IAAI;IACtC,QAAQ,EAAE,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/C,OAAO,EAAE,CACP,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,CAAC,CAAC,SAAS,MAAM,IAAI,EAC5B,KAAK,EAAE,CAAC,EACR,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,IAAI,CAAC,CAAC,CAAC,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC;AAC5D,MAAM,MAAM,iBAAiB,CAAC,EAAE,SAAS,kBAAkB,IAAI,KAC7D,GAAG,IAAI,EAAE,OAAO,EAAE,KACf,eAAe,CAAC,EAAE,CAAC,CAAC;AACzB,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC;AACrD,MAAM,MAAM,cAAc,CAAC,EAAE,SAAS,kBAAkB,IAAI,CAC1D,IAAI,EAAE,OAAO,KACV,eAAe,CAAC,EAAE,CAAC,CAAC;AAEzB,MAAM,MAAM,eAAe,CAAC,EAAE,SAAS,kBAAkB,IAAI,MAAM,CACjE,MAAM,EACJ,QAAQ,GACR,cAAc,CAAC,EAAE,CAAC,GAClB,WAAW,GACX,iBAAiB,CAAC,EAAE,CAAC,GACrB,eAAe,CAAC,EAAE,CAAC,CACtB,CAAC;AAEF,MAAM,MAAM,uBAAuB,CACjC,EAAE,SAAS,kBAAkB,EAC7B,EAAE,SAAS,eAAe,CAAC,EAAE,CAAC,IAC5B;KACD,CAAC,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,iBAAiB,CAAC,EAAE,CAAC,GAChD,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAC/B,EAAE,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,EAAE,CAAC,GAC9B,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAC7B,EAAE,CAAC,CAAC,CAAC,SAAS,QAAQ,GACpB,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GACjB,EAAE,CAAC,CAAC,CAAC,SAAS,WAAW,GACvB,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GACnB,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;CAC5B,CAAC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"serviceFactory.test.d.ts","sourceRoot":"","sources":["../../tests/serviceFactory.test.ts"],"names":[],"mappings":""}
|
@@ -1,36 +0,0 @@
|
|
1
|
-
import { number, SchemaValidator, string } from '@forklaunch/validator/typebox';
|
2
|
-
import { ConfigInjector } from '../src/services/serviceFactory';
|
3
|
-
import { Lifetime } from '../src/services/types/serviceFactory.types';
|
4
|
-
class X {
|
5
|
-
a;
|
6
|
-
b;
|
7
|
-
constructor(a, b) {
|
8
|
-
this.a = a;
|
9
|
-
this.b = b;
|
10
|
-
}
|
11
|
-
}
|
12
|
-
// build in cycle detection during runtime
|
13
|
-
const x = new ConfigInjector(SchemaValidator(), {
|
14
|
-
a: string,
|
15
|
-
b: number,
|
16
|
-
c: X
|
17
|
-
}, {
|
18
|
-
a: {
|
19
|
-
lifetime: Lifetime.Singleton,
|
20
|
-
value: 'a'
|
21
|
-
},
|
22
|
-
b: {
|
23
|
-
lifetime: Lifetime.Transient,
|
24
|
-
factory: ({ a }) => Number(a)
|
25
|
-
},
|
26
|
-
c: {
|
27
|
-
lifetime: Lifetime.Transient,
|
28
|
-
factory: ({ a }, resolve) => {
|
29
|
-
const b = () => resolve('b');
|
30
|
-
return new X(a, b);
|
31
|
-
}
|
32
|
-
}
|
33
|
-
});
|
34
|
-
const u = x.resolve('a');
|
35
|
-
const v = x.resolve('b');
|
36
|
-
const w = x.resolve('c');
|