@forklaunch/core 0.2.17 → 0.2.19

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.
@@ -2,6 +2,6 @@ import { defineConfig } from 'vitest/config';
2
2
  export default defineConfig({
3
3
  test: {
4
4
  globals: true,
5
- exclude: ['**/lib/**', '**/node_modules/**']
5
+ exclude: ['**/lib/**', '**/dist/**', '**/node_modules/**']
6
6
  }
7
7
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forklaunch/core",
3
- "version": "0.2.17",
3
+ "version": "0.2.19",
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/validator": "0.3.7",
27
- "@forklaunch/common": "0.1.9"
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,6 +0,0 @@
1
- export var Lifetime;
2
- (function (Lifetime) {
3
- Lifetime[Lifetime["Singleton"] = 0] = "Singleton";
4
- Lifetime[Lifetime["Transient"] = 1] = "Transient";
5
- Lifetime[Lifetime["Scoped"] = 2] = "Scoped";
6
- })(Lifetime || (Lifetime = {}));
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=serviceFactory.test.d.ts.map
@@ -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');