@forklaunch/core 0.14.2 → 0.14.4
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/mappers/index.d.mts +26 -2
- package/lib/mappers/index.d.ts +26 -2
- package/lib/mappers/index.js +11 -2
- package/lib/mappers/index.js.map +1 -1
- package/lib/mappers/index.mjs +10 -2
- package/lib/mappers/index.mjs.map +1 -1
- package/lib/persistence/index.js +9 -2
- package/lib/persistence/index.js.map +1 -1
- package/lib/persistence/index.mjs +9 -2
- package/lib/persistence/index.mjs.map +1 -1
- package/package.json +4 -4
package/lib/mappers/index.d.mts
CHANGED
@@ -8,9 +8,33 @@ declare function requestMapper<SV extends AnySchemaValidator, DomainSchema exten
|
|
8
8
|
schema: DomainSchema;
|
9
9
|
} & typeof mapperDefinition;
|
10
10
|
declare function responseMapper<SV extends AnySchemaValidator, DomainSchema extends IdiomaticSchema<SV>, Entity, AdditionalArgs extends unknown[] = []>(schemaValidator: SV, domainSchema: DomainSchema, _entityConstructor: Constructor<Entity>, mapperDefinition: {
|
11
|
-
|
11
|
+
toDto: (entity: Entity, ...args: AdditionalArgs) => Promise<Schema<DomainSchema, SV>>;
|
12
12
|
}): Prettify<{
|
13
13
|
schema: DomainSchema;
|
14
14
|
} & typeof mapperDefinition>;
|
15
15
|
|
16
|
-
|
16
|
+
/**
|
17
|
+
* Maps a set of service schema factory functions to their instantiated schemas using the provided validator.
|
18
|
+
*
|
19
|
+
* @template T - An object whose values are functions that accept an options object containing a validator and return a schema.
|
20
|
+
* @template SV - The type of the schema validator.
|
21
|
+
*
|
22
|
+
* @param {T} schemas - An object mapping schema names to factory functions. Each factory function should accept an object with a `validator` property.
|
23
|
+
* @param {SV} validator - The schema validator instance to be passed to each schema factory function.
|
24
|
+
* @returns {{ [K in keyof T]: ReturnType<T[K]> }} An object mapping each schema name to its instantiated schema.
|
25
|
+
*
|
26
|
+
* @example
|
27
|
+
* const schemas = {
|
28
|
+
* UserSchemas: ({ validator }) => createUserSchemas(validator),
|
29
|
+
* ProductSchemas: ({ validator }) => createProductSchemas(validator)
|
30
|
+
* };
|
31
|
+
* const mapped = mapServiceSchemas(schemas, myValidator);
|
32
|
+
* // mapped.UserSchemas, mapped.ProductSchemas now contain the instantiated schemas
|
33
|
+
*/
|
34
|
+
declare function mapServiceSchemas<T extends Record<string, (options: {
|
35
|
+
validator: SV;
|
36
|
+
}) => unknown>, SV extends AnySchemaValidator>(schemas: T, validator: SV): {
|
37
|
+
[K in keyof T]: ReturnType<T[K]>;
|
38
|
+
};
|
39
|
+
|
40
|
+
export { mapServiceSchemas, requestMapper, responseMapper };
|
package/lib/mappers/index.d.ts
CHANGED
@@ -8,9 +8,33 @@ declare function requestMapper<SV extends AnySchemaValidator, DomainSchema exten
|
|
8
8
|
schema: DomainSchema;
|
9
9
|
} & typeof mapperDefinition;
|
10
10
|
declare function responseMapper<SV extends AnySchemaValidator, DomainSchema extends IdiomaticSchema<SV>, Entity, AdditionalArgs extends unknown[] = []>(schemaValidator: SV, domainSchema: DomainSchema, _entityConstructor: Constructor<Entity>, mapperDefinition: {
|
11
|
-
|
11
|
+
toDto: (entity: Entity, ...args: AdditionalArgs) => Promise<Schema<DomainSchema, SV>>;
|
12
12
|
}): Prettify<{
|
13
13
|
schema: DomainSchema;
|
14
14
|
} & typeof mapperDefinition>;
|
15
15
|
|
16
|
-
|
16
|
+
/**
|
17
|
+
* Maps a set of service schema factory functions to their instantiated schemas using the provided validator.
|
18
|
+
*
|
19
|
+
* @template T - An object whose values are functions that accept an options object containing a validator and return a schema.
|
20
|
+
* @template SV - The type of the schema validator.
|
21
|
+
*
|
22
|
+
* @param {T} schemas - An object mapping schema names to factory functions. Each factory function should accept an object with a `validator` property.
|
23
|
+
* @param {SV} validator - The schema validator instance to be passed to each schema factory function.
|
24
|
+
* @returns {{ [K in keyof T]: ReturnType<T[K]> }} An object mapping each schema name to its instantiated schema.
|
25
|
+
*
|
26
|
+
* @example
|
27
|
+
* const schemas = {
|
28
|
+
* UserSchemas: ({ validator }) => createUserSchemas(validator),
|
29
|
+
* ProductSchemas: ({ validator }) => createProductSchemas(validator)
|
30
|
+
* };
|
31
|
+
* const mapped = mapServiceSchemas(schemas, myValidator);
|
32
|
+
* // mapped.UserSchemas, mapped.ProductSchemas now contain the instantiated schemas
|
33
|
+
*/
|
34
|
+
declare function mapServiceSchemas<T extends Record<string, (options: {
|
35
|
+
validator: SV;
|
36
|
+
}) => unknown>, SV extends AnySchemaValidator>(schemas: T, validator: SV): {
|
37
|
+
[K in keyof T]: ReturnType<T[K]>;
|
38
|
+
};
|
39
|
+
|
40
|
+
export { mapServiceSchemas, requestMapper, responseMapper };
|
package/lib/mappers/index.js
CHANGED
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
20
20
|
// src/mappers/index.ts
|
21
21
|
var mappers_exports = {};
|
22
22
|
__export(mappers_exports, {
|
23
|
+
mapServiceSchemas: () => mapServiceSchemas,
|
23
24
|
requestMapper: () => requestMapper,
|
24
25
|
responseMapper: () => responseMapper
|
25
26
|
});
|
@@ -49,8 +50,8 @@ function responseMapper(schemaValidator, domainSchema, _entityConstructor, mappe
|
|
49
50
|
return {
|
50
51
|
...mapperDefinition,
|
51
52
|
schema: domainSchema,
|
52
|
-
|
53
|
-
const domain = await mapperDefinition.
|
53
|
+
toDto: async (entity, ...args) => {
|
54
|
+
const domain = await mapperDefinition.toDto(entity, ...args);
|
54
55
|
const parsedSchema = sv.parse(sv.schemify(domainSchema), domain);
|
55
56
|
if (!parsedSchema.ok) {
|
56
57
|
throw new Error((0, import_validator.prettyPrintParseErrors)(parsedSchema.errors, "DTO"));
|
@@ -59,8 +60,16 @@ function responseMapper(schemaValidator, domainSchema, _entityConstructor, mappe
|
|
59
60
|
}
|
60
61
|
};
|
61
62
|
}
|
63
|
+
|
64
|
+
// src/mappers/mapServiceSchemas.ts
|
65
|
+
function mapServiceSchemas(schemas, validator) {
|
66
|
+
return Object.fromEntries(
|
67
|
+
Object.entries(schemas).map(([key, value]) => [key, value({ validator })])
|
68
|
+
);
|
69
|
+
}
|
62
70
|
// Annotate the CommonJS export names for ESM import in node:
|
63
71
|
0 && (module.exports = {
|
72
|
+
mapServiceSchemas,
|
64
73
|
requestMapper,
|
65
74
|
responseMapper
|
66
75
|
});
|
package/lib/mappers/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/mappers/index.ts","../../src/mappers/mapper.ts"],"sourcesContent":["export * from './mapper';\n","import { Prettify } from '@forklaunch/common';\nimport {\n AnySchemaValidator,\n IdiomaticSchema,\n prettyPrintParseErrors,\n Schema,\n SchemaValidator\n} from '@forklaunch/validator';\nimport { Constructor } from '@mikro-orm/core';\n\nexport function requestMapper<\n SV extends AnySchemaValidator,\n DomainSchema extends IdiomaticSchema<SV>,\n Entity,\n AdditionalArgs extends unknown[] = []\n>(\n schemaValidator: SV,\n domainSchema: DomainSchema,\n _entityConstructor: Constructor<Entity>,\n mapperDefinition: {\n toEntity: (\n dto: Schema<DomainSchema, SV>,\n ...args: AdditionalArgs\n ) => Promise<Entity>;\n }\n): {\n schema: DomainSchema;\n} & typeof mapperDefinition {\n const sv = schemaValidator as SchemaValidator;\n return {\n ...mapperDefinition,\n schema: domainSchema,\n\n toEntity: async (\n dto: Schema<DomainSchema, SV>,\n ...args: AdditionalArgs\n ) => {\n const parsedSchema = sv.parse(sv.schemify(domainSchema), dto);\n if (!parsedSchema.ok) {\n throw new Error(prettyPrintParseErrors(parsedSchema.errors, 'DTO'));\n }\n return mapperDefinition.toEntity(\n dto as Schema<DomainSchema, SV>,\n ...(args as AdditionalArgs)\n );\n }\n };\n}\n\nexport function responseMapper<\n SV extends AnySchemaValidator,\n DomainSchema extends IdiomaticSchema<SV>,\n Entity,\n AdditionalArgs extends unknown[] = []\n>(\n schemaValidator: SV,\n domainSchema: DomainSchema,\n _entityConstructor: Constructor<Entity>,\n mapperDefinition: {\n
|
1
|
+
{"version":3,"sources":["../../src/mappers/index.ts","../../src/mappers/mapper.ts","../../src/mappers/mapServiceSchemas.ts"],"sourcesContent":["export * from './mapper';\nexport * from './mapServiceSchemas';\n","import { Prettify } from '@forklaunch/common';\nimport {\n AnySchemaValidator,\n IdiomaticSchema,\n prettyPrintParseErrors,\n Schema,\n SchemaValidator\n} from '@forklaunch/validator';\nimport { Constructor } from '@mikro-orm/core';\n\nexport function requestMapper<\n SV extends AnySchemaValidator,\n DomainSchema extends IdiomaticSchema<SV>,\n Entity,\n AdditionalArgs extends unknown[] = []\n>(\n schemaValidator: SV,\n domainSchema: DomainSchema,\n _entityConstructor: Constructor<Entity>,\n mapperDefinition: {\n toEntity: (\n dto: Schema<DomainSchema, SV>,\n ...args: AdditionalArgs\n ) => Promise<Entity>;\n }\n): {\n schema: DomainSchema;\n} & typeof mapperDefinition {\n const sv = schemaValidator as SchemaValidator;\n return {\n ...mapperDefinition,\n schema: domainSchema,\n\n toEntity: async (\n dto: Schema<DomainSchema, SV>,\n ...args: AdditionalArgs\n ) => {\n const parsedSchema = sv.parse(sv.schemify(domainSchema), dto);\n if (!parsedSchema.ok) {\n throw new Error(prettyPrintParseErrors(parsedSchema.errors, 'DTO'));\n }\n return mapperDefinition.toEntity(\n dto as Schema<DomainSchema, SV>,\n ...(args as AdditionalArgs)\n );\n }\n };\n}\n\nexport function responseMapper<\n SV extends AnySchemaValidator,\n DomainSchema extends IdiomaticSchema<SV>,\n Entity,\n AdditionalArgs extends unknown[] = []\n>(\n schemaValidator: SV,\n domainSchema: DomainSchema,\n _entityConstructor: Constructor<Entity>,\n mapperDefinition: {\n toDto: (\n entity: Entity,\n ...args: AdditionalArgs\n ) => Promise<Schema<DomainSchema, SV>>;\n }\n): Prettify<\n {\n schema: DomainSchema;\n } & typeof mapperDefinition\n> {\n const sv = schemaValidator as SchemaValidator;\n return {\n ...mapperDefinition,\n schema: domainSchema,\n\n toDto: async (entity: Entity, ...args: AdditionalArgs) => {\n const domain = await mapperDefinition.toDto(entity, ...args);\n const parsedSchema = sv.parse(sv.schemify(domainSchema), domain);\n if (!parsedSchema.ok) {\n throw new Error(prettyPrintParseErrors(parsedSchema.errors, 'DTO'));\n }\n return domain;\n }\n };\n}\n","import { AnySchemaValidator } from '@forklaunch/validator';\n\n/**\n * Maps a set of service schema factory functions to their instantiated schemas using the provided validator.\n *\n * @template T - An object whose values are functions that accept an options object containing a validator and return a schema.\n * @template SV - The type of the schema validator.\n *\n * @param {T} schemas - An object mapping schema names to factory functions. Each factory function should accept an object with a `validator` property.\n * @param {SV} validator - The schema validator instance to be passed to each schema factory function.\n * @returns {{ [K in keyof T]: ReturnType<T[K]> }} An object mapping each schema name to its instantiated schema.\n *\n * @example\n * const schemas = {\n * UserSchemas: ({ validator }) => createUserSchemas(validator),\n * ProductSchemas: ({ validator }) => createProductSchemas(validator)\n * };\n * const mapped = mapServiceSchemas(schemas, myValidator);\n * // mapped.UserSchemas, mapped.ProductSchemas now contain the instantiated schemas\n */\nexport function mapServiceSchemas<\n T extends Record<string, (options: { validator: SV }) => unknown>,\n SV extends AnySchemaValidator\n>(\n schemas: T,\n validator: SV\n): {\n [K in keyof T]: ReturnType<T[K]>;\n} {\n return Object.fromEntries(\n Object.entries(schemas).map(([key, value]) => [key, value({ validator })])\n ) as {\n [K in keyof T]: ReturnType<T[K]>;\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,uBAMO;AAGA,SAAS,cAMd,iBACA,cACA,oBACA,kBAQ0B;AAC1B,QAAM,KAAK;AACX,SAAO;AAAA,IACL,GAAG;AAAA,IACH,QAAQ;AAAA,IAER,UAAU,OACR,QACG,SACA;AACH,YAAM,eAAe,GAAG,MAAM,GAAG,SAAS,YAAY,GAAG,GAAG;AAC5D,UAAI,CAAC,aAAa,IAAI;AACpB,cAAM,IAAI,UAAM,yCAAuB,aAAa,QAAQ,KAAK,CAAC;AAAA,MACpE;AACA,aAAO,iBAAiB;AAAA,QACtB;AAAA,QACA,GAAI;AAAA,MACN;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,eAMd,iBACA,cACA,oBACA,kBAUA;AACA,QAAM,KAAK;AACX,SAAO;AAAA,IACL,GAAG;AAAA,IACH,QAAQ;AAAA,IAER,OAAO,OAAO,WAAmB,SAAyB;AACxD,YAAM,SAAS,MAAM,iBAAiB,MAAM,QAAQ,GAAG,IAAI;AAC3D,YAAM,eAAe,GAAG,MAAM,GAAG,SAAS,YAAY,GAAG,MAAM;AAC/D,UAAI,CAAC,aAAa,IAAI;AACpB,cAAM,IAAI,UAAM,yCAAuB,aAAa,QAAQ,KAAK,CAAC;AAAA,MACpE;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;AC/DO,SAAS,kBAId,SACA,WAGA;AACA,SAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAAA,EAC3E;AAGF;","names":[]}
|
package/lib/mappers/index.mjs
CHANGED
@@ -24,8 +24,8 @@ function responseMapper(schemaValidator, domainSchema, _entityConstructor, mappe
|
|
24
24
|
return {
|
25
25
|
...mapperDefinition,
|
26
26
|
schema: domainSchema,
|
27
|
-
|
28
|
-
const domain = await mapperDefinition.
|
27
|
+
toDto: async (entity, ...args) => {
|
28
|
+
const domain = await mapperDefinition.toDto(entity, ...args);
|
29
29
|
const parsedSchema = sv.parse(sv.schemify(domainSchema), domain);
|
30
30
|
if (!parsedSchema.ok) {
|
31
31
|
throw new Error(prettyPrintParseErrors(parsedSchema.errors, "DTO"));
|
@@ -34,7 +34,15 @@ function responseMapper(schemaValidator, domainSchema, _entityConstructor, mappe
|
|
34
34
|
}
|
35
35
|
};
|
36
36
|
}
|
37
|
+
|
38
|
+
// src/mappers/mapServiceSchemas.ts
|
39
|
+
function mapServiceSchemas(schemas, validator) {
|
40
|
+
return Object.fromEntries(
|
41
|
+
Object.entries(schemas).map(([key, value]) => [key, value({ validator })])
|
42
|
+
);
|
43
|
+
}
|
37
44
|
export {
|
45
|
+
mapServiceSchemas,
|
38
46
|
requestMapper,
|
39
47
|
responseMapper
|
40
48
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/mappers/mapper.ts"],"sourcesContent":["import { Prettify } from '@forklaunch/common';\nimport {\n AnySchemaValidator,\n IdiomaticSchema,\n prettyPrintParseErrors,\n Schema,\n SchemaValidator\n} from '@forklaunch/validator';\nimport { Constructor } from '@mikro-orm/core';\n\nexport function requestMapper<\n SV extends AnySchemaValidator,\n DomainSchema extends IdiomaticSchema<SV>,\n Entity,\n AdditionalArgs extends unknown[] = []\n>(\n schemaValidator: SV,\n domainSchema: DomainSchema,\n _entityConstructor: Constructor<Entity>,\n mapperDefinition: {\n toEntity: (\n dto: Schema<DomainSchema, SV>,\n ...args: AdditionalArgs\n ) => Promise<Entity>;\n }\n): {\n schema: DomainSchema;\n} & typeof mapperDefinition {\n const sv = schemaValidator as SchemaValidator;\n return {\n ...mapperDefinition,\n schema: domainSchema,\n\n toEntity: async (\n dto: Schema<DomainSchema, SV>,\n ...args: AdditionalArgs\n ) => {\n const parsedSchema = sv.parse(sv.schemify(domainSchema), dto);\n if (!parsedSchema.ok) {\n throw new Error(prettyPrintParseErrors(parsedSchema.errors, 'DTO'));\n }\n return mapperDefinition.toEntity(\n dto as Schema<DomainSchema, SV>,\n ...(args as AdditionalArgs)\n );\n }\n };\n}\n\nexport function responseMapper<\n SV extends AnySchemaValidator,\n DomainSchema extends IdiomaticSchema<SV>,\n Entity,\n AdditionalArgs extends unknown[] = []\n>(\n schemaValidator: SV,\n domainSchema: DomainSchema,\n _entityConstructor: Constructor<Entity>,\n mapperDefinition: {\n
|
1
|
+
{"version":3,"sources":["../../src/mappers/mapper.ts","../../src/mappers/mapServiceSchemas.ts"],"sourcesContent":["import { Prettify } from '@forklaunch/common';\nimport {\n AnySchemaValidator,\n IdiomaticSchema,\n prettyPrintParseErrors,\n Schema,\n SchemaValidator\n} from '@forklaunch/validator';\nimport { Constructor } from '@mikro-orm/core';\n\nexport function requestMapper<\n SV extends AnySchemaValidator,\n DomainSchema extends IdiomaticSchema<SV>,\n Entity,\n AdditionalArgs extends unknown[] = []\n>(\n schemaValidator: SV,\n domainSchema: DomainSchema,\n _entityConstructor: Constructor<Entity>,\n mapperDefinition: {\n toEntity: (\n dto: Schema<DomainSchema, SV>,\n ...args: AdditionalArgs\n ) => Promise<Entity>;\n }\n): {\n schema: DomainSchema;\n} & typeof mapperDefinition {\n const sv = schemaValidator as SchemaValidator;\n return {\n ...mapperDefinition,\n schema: domainSchema,\n\n toEntity: async (\n dto: Schema<DomainSchema, SV>,\n ...args: AdditionalArgs\n ) => {\n const parsedSchema = sv.parse(sv.schemify(domainSchema), dto);\n if (!parsedSchema.ok) {\n throw new Error(prettyPrintParseErrors(parsedSchema.errors, 'DTO'));\n }\n return mapperDefinition.toEntity(\n dto as Schema<DomainSchema, SV>,\n ...(args as AdditionalArgs)\n );\n }\n };\n}\n\nexport function responseMapper<\n SV extends AnySchemaValidator,\n DomainSchema extends IdiomaticSchema<SV>,\n Entity,\n AdditionalArgs extends unknown[] = []\n>(\n schemaValidator: SV,\n domainSchema: DomainSchema,\n _entityConstructor: Constructor<Entity>,\n mapperDefinition: {\n toDto: (\n entity: Entity,\n ...args: AdditionalArgs\n ) => Promise<Schema<DomainSchema, SV>>;\n }\n): Prettify<\n {\n schema: DomainSchema;\n } & typeof mapperDefinition\n> {\n const sv = schemaValidator as SchemaValidator;\n return {\n ...mapperDefinition,\n schema: domainSchema,\n\n toDto: async (entity: Entity, ...args: AdditionalArgs) => {\n const domain = await mapperDefinition.toDto(entity, ...args);\n const parsedSchema = sv.parse(sv.schemify(domainSchema), domain);\n if (!parsedSchema.ok) {\n throw new Error(prettyPrintParseErrors(parsedSchema.errors, 'DTO'));\n }\n return domain;\n }\n };\n}\n","import { AnySchemaValidator } from '@forklaunch/validator';\n\n/**\n * Maps a set of service schema factory functions to their instantiated schemas using the provided validator.\n *\n * @template T - An object whose values are functions that accept an options object containing a validator and return a schema.\n * @template SV - The type of the schema validator.\n *\n * @param {T} schemas - An object mapping schema names to factory functions. Each factory function should accept an object with a `validator` property.\n * @param {SV} validator - The schema validator instance to be passed to each schema factory function.\n * @returns {{ [K in keyof T]: ReturnType<T[K]> }} An object mapping each schema name to its instantiated schema.\n *\n * @example\n * const schemas = {\n * UserSchemas: ({ validator }) => createUserSchemas(validator),\n * ProductSchemas: ({ validator }) => createProductSchemas(validator)\n * };\n * const mapped = mapServiceSchemas(schemas, myValidator);\n * // mapped.UserSchemas, mapped.ProductSchemas now contain the instantiated schemas\n */\nexport function mapServiceSchemas<\n T extends Record<string, (options: { validator: SV }) => unknown>,\n SV extends AnySchemaValidator\n>(\n schemas: T,\n validator: SV\n): {\n [K in keyof T]: ReturnType<T[K]>;\n} {\n return Object.fromEntries(\n Object.entries(schemas).map(([key, value]) => [key, value({ validator })])\n ) as {\n [K in keyof T]: ReturnType<T[K]>;\n };\n}\n"],"mappings":";AACA;AAAA,EAGE;AAAA,OAGK;AAGA,SAAS,cAMd,iBACA,cACA,oBACA,kBAQ0B;AAC1B,QAAM,KAAK;AACX,SAAO;AAAA,IACL,GAAG;AAAA,IACH,QAAQ;AAAA,IAER,UAAU,OACR,QACG,SACA;AACH,YAAM,eAAe,GAAG,MAAM,GAAG,SAAS,YAAY,GAAG,GAAG;AAC5D,UAAI,CAAC,aAAa,IAAI;AACpB,cAAM,IAAI,MAAM,uBAAuB,aAAa,QAAQ,KAAK,CAAC;AAAA,MACpE;AACA,aAAO,iBAAiB;AAAA,QACtB;AAAA,QACA,GAAI;AAAA,MACN;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,eAMd,iBACA,cACA,oBACA,kBAUA;AACA,QAAM,KAAK;AACX,SAAO;AAAA,IACL,GAAG;AAAA,IACH,QAAQ;AAAA,IAER,OAAO,OAAO,WAAmB,SAAyB;AACxD,YAAM,SAAS,MAAM,iBAAiB,MAAM,QAAQ,GAAG,IAAI;AAC3D,YAAM,eAAe,GAAG,MAAM,GAAG,SAAS,YAAY,GAAG,MAAM;AAC/D,UAAI,CAAC,aAAa,IAAI;AACpB,cAAM,IAAI,MAAM,uBAAuB,aAAa,QAAQ,KAAK,CAAC;AAAA,MACpE;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;AC/DO,SAAS,kBAId,SACA,WAGA;AACA,SAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAAA,EAC3E;AAGF;","names":[]}
|
package/lib/persistence/index.js
CHANGED
@@ -41,7 +41,11 @@ var BaseEntity = class extends import_core.BaseEntity {
|
|
41
41
|
if (em) {
|
42
42
|
return em.create(this, data);
|
43
43
|
} else {
|
44
|
-
Object.assign(instance,
|
44
|
+
Object.assign(instance, {
|
45
|
+
...data,
|
46
|
+
createdAt: /* @__PURE__ */ new Date(),
|
47
|
+
updatedAt: /* @__PURE__ */ new Date()
|
48
|
+
});
|
45
49
|
}
|
46
50
|
return instance;
|
47
51
|
}
|
@@ -59,7 +63,10 @@ var BaseEntity = class extends import_core.BaseEntity {
|
|
59
63
|
if (em) {
|
60
64
|
return em.upsert(instance, data);
|
61
65
|
} else {
|
62
|
-
Object.assign(instance,
|
66
|
+
Object.assign(instance, {
|
67
|
+
...data,
|
68
|
+
updatedAt: /* @__PURE__ */ new Date()
|
69
|
+
});
|
63
70
|
}
|
64
71
|
return instance;
|
65
72
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/persistence/index.ts","../../src/persistence/base.entity.ts"],"sourcesContent":["export * from './base.entity';\n","import {\n Constructor,\n EntityData,\n EntityDTO,\n EntityManager,\n BaseEntity as MikroORMBaseEntity,\n RequiredEntityData,\n wrap\n} from '@mikro-orm/core';\n\n/**\n * BaseEntity class extending MikroORM's BaseEntity to provide\n * convenience static methods for entity creation, updating, and reading.\n */\nexport class BaseEntity extends MikroORMBaseEntity {\n /**\n * Create a new entity instance with the given data.\n *\n * @template T - Entity type extending BaseEntity\n * @param this - The constructor of the entity\n * @param data - Data required to create the entity\n * @param em - Optional MikroORM EntityManager. If passed, this will call em.create()\n * @returns A promise resolving to the created entity\n */\n static async create<T extends BaseEntity>(\n this: Constructor<T>,\n data: RequiredEntityData<T>,\n em?: EntityManager,\n ...constructorArgs: ConstructorParameters<Constructor<T>>\n ): Promise<T> {\n const instance = new this(...constructorArgs);\n if (em) {\n return em.create(this, data);\n } else {\n Object.assign(instance, data);\n }\n return instance;\n }\n\n /**\n * Update an existing entity instance with the given data.\n *\n * @template T - Entity type extending BaseEntity\n * @param this - The constructor of the entity\n * @param data - Partial data to update the entity\n * @param em - Optional MikroORM EntityManager. If passed, this will call em.upsert()\n * @returns A promise resolving to the updated entity\n */\n static async update<T extends BaseEntity>(\n this: Constructor<T>,\n data: EntityData<T>,\n em?: EntityManager,\n ...constructorArgs: ConstructorParameters<Constructor<T>>\n ): Promise<T> {\n const instance = new this(...constructorArgs);\n if (em) {\n return em.upsert(instance, data);\n } else {\n Object.assign(instance, data);\n }\n return instance;\n }\n\n /**\n * Reads the entity, initializing it if necessary, and returns its DTO representation.\n *\n * @param em - Optional MikroORM EntityManager for initialization. If passed, entity will synchronize with database\n * @returns A promise resolving to the entity's DTO (plain object representation)\n * @throws Error if the entity is not initialized and no EntityManager is provided\n */\n async read(em?: EntityManager): Promise<EntityDTO<this>> {\n if (em && !this.isInitialized()) {\n await this.init({ em });\n }\n return wrap(this).toPOJO();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,kBAQO;AAMA,IAAM,aAAN,cAAyB,YAAAA,WAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUjD,aAAa,OAEX,MACA,OACG,iBACS;AACZ,UAAM,WAAW,IAAI,KAAK,GAAG,eAAe;AAC5C,QAAI,IAAI;AACN,aAAO,GAAG,OAAO,MAAM,IAAI;AAAA,IAC7B,OAAO;AACL,aAAO,OAAO,UAAU,
|
1
|
+
{"version":3,"sources":["../../src/persistence/index.ts","../../src/persistence/base.entity.ts"],"sourcesContent":["export * from './base.entity';\n","import {\n Constructor,\n EntityData,\n EntityDTO,\n EntityManager,\n BaseEntity as MikroORMBaseEntity,\n RequiredEntityData,\n wrap\n} from '@mikro-orm/core';\n\n/**\n * BaseEntity class extending MikroORM's BaseEntity to provide\n * convenience static methods for entity creation, updating, and reading.\n */\nexport class BaseEntity extends MikroORMBaseEntity {\n /**\n * Create a new entity instance with the given data.\n *\n * @template T - Entity type extending BaseEntity\n * @param this - The constructor of the entity\n * @param data - Data required to create the entity\n * @param em - Optional MikroORM EntityManager. If passed, this will call em.create()\n * @returns A promise resolving to the created entity\n */\n static async create<T extends BaseEntity>(\n this: Constructor<T>,\n data: RequiredEntityData<T>,\n em?: EntityManager,\n ...constructorArgs: ConstructorParameters<Constructor<T>>\n ): Promise<T> {\n const instance = new this(...constructorArgs);\n if (em) {\n return em.create(this, data);\n } else {\n Object.assign(instance, {\n ...data,\n createdAt: new Date(),\n updatedAt: new Date()\n });\n }\n return instance;\n }\n\n /**\n * Update an existing entity instance with the given data.\n *\n * @template T - Entity type extending BaseEntity\n * @param this - The constructor of the entity\n * @param data - Partial data to update the entity\n * @param em - Optional MikroORM EntityManager. If passed, this will call em.upsert()\n * @returns A promise resolving to the updated entity\n */\n static async update<T extends BaseEntity>(\n this: Constructor<T>,\n data: EntityData<T>,\n em?: EntityManager,\n ...constructorArgs: ConstructorParameters<Constructor<T>>\n ): Promise<T> {\n const instance = new this(...constructorArgs);\n if (em) {\n return em.upsert(instance, data);\n } else {\n Object.assign(instance, {\n ...data,\n updatedAt: new Date()\n });\n }\n return instance;\n }\n\n /**\n * Reads the entity, initializing it if necessary, and returns its DTO representation.\n *\n * @param em - Optional MikroORM EntityManager for initialization. If passed, entity will synchronize with database\n * @returns A promise resolving to the entity's DTO (plain object representation)\n * @throws Error if the entity is not initialized and no EntityManager is provided\n */\n async read(em?: EntityManager): Promise<EntityDTO<this>> {\n if (em && !this.isInitialized()) {\n await this.init({ em });\n }\n return wrap(this).toPOJO();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,kBAQO;AAMA,IAAM,aAAN,cAAyB,YAAAA,WAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUjD,aAAa,OAEX,MACA,OACG,iBACS;AACZ,UAAM,WAAW,IAAI,KAAK,GAAG,eAAe;AAC5C,QAAI,IAAI;AACN,aAAO,GAAG,OAAO,MAAM,IAAI;AAAA,IAC7B,OAAO;AACL,aAAO,OAAO,UAAU;AAAA,QACtB,GAAG;AAAA,QACH,WAAW,oBAAI,KAAK;AAAA,QACpB,WAAW,oBAAI,KAAK;AAAA,MACtB,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,aAAa,OAEX,MACA,OACG,iBACS;AACZ,UAAM,WAAW,IAAI,KAAK,GAAG,eAAe;AAC5C,QAAI,IAAI;AACN,aAAO,GAAG,OAAO,UAAU,IAAI;AAAA,IACjC,OAAO;AACL,aAAO,OAAO,UAAU;AAAA,QACtB,GAAG;AAAA,QACH,WAAW,oBAAI,KAAK;AAAA,MACtB,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,KAAK,IAA8C;AACvD,QAAI,MAAM,CAAC,KAAK,cAAc,GAAG;AAC/B,YAAM,KAAK,KAAK,EAAE,GAAG,CAAC;AAAA,IACxB;AACA,eAAO,kBAAK,IAAI,EAAE,OAAO;AAAA,EAC3B;AACF;","names":["MikroORMBaseEntity"]}
|
@@ -18,7 +18,11 @@ var BaseEntity = class extends MikroORMBaseEntity {
|
|
18
18
|
if (em) {
|
19
19
|
return em.create(this, data);
|
20
20
|
} else {
|
21
|
-
Object.assign(instance,
|
21
|
+
Object.assign(instance, {
|
22
|
+
...data,
|
23
|
+
createdAt: /* @__PURE__ */ new Date(),
|
24
|
+
updatedAt: /* @__PURE__ */ new Date()
|
25
|
+
});
|
22
26
|
}
|
23
27
|
return instance;
|
24
28
|
}
|
@@ -36,7 +40,10 @@ var BaseEntity = class extends MikroORMBaseEntity {
|
|
36
40
|
if (em) {
|
37
41
|
return em.upsert(instance, data);
|
38
42
|
} else {
|
39
|
-
Object.assign(instance,
|
43
|
+
Object.assign(instance, {
|
44
|
+
...data,
|
45
|
+
updatedAt: /* @__PURE__ */ new Date()
|
46
|
+
});
|
40
47
|
}
|
41
48
|
return instance;
|
42
49
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/persistence/base.entity.ts"],"sourcesContent":["import {\n Constructor,\n EntityData,\n EntityDTO,\n EntityManager,\n BaseEntity as MikroORMBaseEntity,\n RequiredEntityData,\n wrap\n} from '@mikro-orm/core';\n\n/**\n * BaseEntity class extending MikroORM's BaseEntity to provide\n * convenience static methods for entity creation, updating, and reading.\n */\nexport class BaseEntity extends MikroORMBaseEntity {\n /**\n * Create a new entity instance with the given data.\n *\n * @template T - Entity type extending BaseEntity\n * @param this - The constructor of the entity\n * @param data - Data required to create the entity\n * @param em - Optional MikroORM EntityManager. If passed, this will call em.create()\n * @returns A promise resolving to the created entity\n */\n static async create<T extends BaseEntity>(\n this: Constructor<T>,\n data: RequiredEntityData<T>,\n em?: EntityManager,\n ...constructorArgs: ConstructorParameters<Constructor<T>>\n ): Promise<T> {\n const instance = new this(...constructorArgs);\n if (em) {\n return em.create(this, data);\n } else {\n Object.assign(instance, data);\n }\n return instance;\n }\n\n /**\n * Update an existing entity instance with the given data.\n *\n * @template T - Entity type extending BaseEntity\n * @param this - The constructor of the entity\n * @param data - Partial data to update the entity\n * @param em - Optional MikroORM EntityManager. If passed, this will call em.upsert()\n * @returns A promise resolving to the updated entity\n */\n static async update<T extends BaseEntity>(\n this: Constructor<T>,\n data: EntityData<T>,\n em?: EntityManager,\n ...constructorArgs: ConstructorParameters<Constructor<T>>\n ): Promise<T> {\n const instance = new this(...constructorArgs);\n if (em) {\n return em.upsert(instance, data);\n } else {\n Object.assign(instance, data);\n }\n return instance;\n }\n\n /**\n * Reads the entity, initializing it if necessary, and returns its DTO representation.\n *\n * @param em - Optional MikroORM EntityManager for initialization. If passed, entity will synchronize with database\n * @returns A promise resolving to the entity's DTO (plain object representation)\n * @throws Error if the entity is not initialized and no EntityManager is provided\n */\n async read(em?: EntityManager): Promise<EntityDTO<this>> {\n if (em && !this.isInitialized()) {\n await this.init({ em });\n }\n return wrap(this).toPOJO();\n }\n}\n"],"mappings":";AAAA;AAAA,EAKE,cAAc;AAAA,EAEd;AAAA,OACK;AAMA,IAAM,aAAN,cAAyB,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUjD,aAAa,OAEX,MACA,OACG,iBACS;AACZ,UAAM,WAAW,IAAI,KAAK,GAAG,eAAe;AAC5C,QAAI,IAAI;AACN,aAAO,GAAG,OAAO,MAAM,IAAI;AAAA,IAC7B,OAAO;AACL,aAAO,OAAO,UAAU,
|
1
|
+
{"version":3,"sources":["../../src/persistence/base.entity.ts"],"sourcesContent":["import {\n Constructor,\n EntityData,\n EntityDTO,\n EntityManager,\n BaseEntity as MikroORMBaseEntity,\n RequiredEntityData,\n wrap\n} from '@mikro-orm/core';\n\n/**\n * BaseEntity class extending MikroORM's BaseEntity to provide\n * convenience static methods for entity creation, updating, and reading.\n */\nexport class BaseEntity extends MikroORMBaseEntity {\n /**\n * Create a new entity instance with the given data.\n *\n * @template T - Entity type extending BaseEntity\n * @param this - The constructor of the entity\n * @param data - Data required to create the entity\n * @param em - Optional MikroORM EntityManager. If passed, this will call em.create()\n * @returns A promise resolving to the created entity\n */\n static async create<T extends BaseEntity>(\n this: Constructor<T>,\n data: RequiredEntityData<T>,\n em?: EntityManager,\n ...constructorArgs: ConstructorParameters<Constructor<T>>\n ): Promise<T> {\n const instance = new this(...constructorArgs);\n if (em) {\n return em.create(this, data);\n } else {\n Object.assign(instance, {\n ...data,\n createdAt: new Date(),\n updatedAt: new Date()\n });\n }\n return instance;\n }\n\n /**\n * Update an existing entity instance with the given data.\n *\n * @template T - Entity type extending BaseEntity\n * @param this - The constructor of the entity\n * @param data - Partial data to update the entity\n * @param em - Optional MikroORM EntityManager. If passed, this will call em.upsert()\n * @returns A promise resolving to the updated entity\n */\n static async update<T extends BaseEntity>(\n this: Constructor<T>,\n data: EntityData<T>,\n em?: EntityManager,\n ...constructorArgs: ConstructorParameters<Constructor<T>>\n ): Promise<T> {\n const instance = new this(...constructorArgs);\n if (em) {\n return em.upsert(instance, data);\n } else {\n Object.assign(instance, {\n ...data,\n updatedAt: new Date()\n });\n }\n return instance;\n }\n\n /**\n * Reads the entity, initializing it if necessary, and returns its DTO representation.\n *\n * @param em - Optional MikroORM EntityManager for initialization. If passed, entity will synchronize with database\n * @returns A promise resolving to the entity's DTO (plain object representation)\n * @throws Error if the entity is not initialized and no EntityManager is provided\n */\n async read(em?: EntityManager): Promise<EntityDTO<this>> {\n if (em && !this.isInitialized()) {\n await this.init({ em });\n }\n return wrap(this).toPOJO();\n }\n}\n"],"mappings":";AAAA;AAAA,EAKE,cAAc;AAAA,EAEd;AAAA,OACK;AAMA,IAAM,aAAN,cAAyB,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUjD,aAAa,OAEX,MACA,OACG,iBACS;AACZ,UAAM,WAAW,IAAI,KAAK,GAAG,eAAe;AAC5C,QAAI,IAAI;AACN,aAAO,GAAG,OAAO,MAAM,IAAI;AAAA,IAC7B,OAAO;AACL,aAAO,OAAO,UAAU;AAAA,QACtB,GAAG;AAAA,QACH,WAAW,oBAAI,KAAK;AAAA,QACpB,WAAW,oBAAI,KAAK;AAAA,MACtB,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,aAAa,OAEX,MACA,OACG,iBACS;AACZ,UAAM,WAAW,IAAI,KAAK,GAAG,eAAe;AAC5C,QAAI,IAAI;AACN,aAAO,GAAG,OAAO,UAAU,IAAI;AAAA,IACjC,OAAO;AACL,aAAO,OAAO,UAAU;AAAA,QACtB,GAAG;AAAA,QACH,WAAW,oBAAI,KAAK;AAAA,MACtB,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,KAAK,IAA8C;AACvD,QAAI,MAAM,CAAC,KAAK,cAAc,GAAG;AAC/B,YAAM,KAAK,KAAK,EAAE,GAAG,CAAC;AAAA,IACxB;AACA,WAAO,KAAK,IAAI,EAAE,OAAO;AAAA,EAC3B;AACF;","names":[]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@forklaunch/core",
|
3
|
-
"version": "0.14.
|
3
|
+
"version": "0.14.4",
|
4
4
|
"description": "forklaunch-js core package. Contains useful building blocks.",
|
5
5
|
"homepage": "https://github.com/forklaunch/forklaunch-js#readme",
|
6
6
|
"bugs": {
|
@@ -91,8 +91,8 @@
|
|
91
91
|
"pino-pretty": "^13.1.1",
|
92
92
|
"redis": "^5.8.2",
|
93
93
|
"uuid": "^11.1.0",
|
94
|
-
"@forklaunch/
|
95
|
-
"@forklaunch/
|
94
|
+
"@forklaunch/common": "0.6.4",
|
95
|
+
"@forklaunch/validator": "0.10.4"
|
96
96
|
},
|
97
97
|
"devDependencies": {
|
98
98
|
"@eslint/js": "^9.34.0",
|
@@ -101,7 +101,7 @@
|
|
101
101
|
"@types/jest": "^30.0.0",
|
102
102
|
"@types/qs": "^6.14.0",
|
103
103
|
"@types/uuid": "^10.0.0",
|
104
|
-
"@typescript/native-preview": "7.0.0-dev.
|
104
|
+
"@typescript/native-preview": "7.0.0-dev.20250830.1",
|
105
105
|
"globals": "^16.3.0",
|
106
106
|
"jest": "^30.1.1",
|
107
107
|
"jose": "5.10.0",
|