@arcaelas/dynamite 1.0.29 → 3.1.0
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/README.md +13 -13
- package/{src → build/cjs}/@types/index.d.ts +26 -1
- package/build/cjs/@types/index.js.map +1 -0
- package/{src → build/cjs}/core/client.d.ts +22 -19
- package/build/cjs/core/client.js +384 -0
- package/build/cjs/core/client.js.map +1 -0
- package/build/cjs/core/decorator.d.ts +50 -0
- package/build/cjs/core/decorator.js +52 -0
- package/build/cjs/core/decorator.js.map +1 -0
- package/build/cjs/core/table.d.ts +73 -0
- package/build/cjs/core/table.js +953 -0
- package/build/cjs/core/table.js.map +1 -0
- package/build/cjs/decorators/hooks.d.ts +35 -0
- package/build/cjs/decorators/hooks.js +50 -0
- package/build/cjs/decorators/hooks.js.map +1 -0
- package/build/cjs/decorators/indexes.d.ts +20 -0
- package/build/cjs/decorators/indexes.js +45 -0
- package/build/cjs/decorators/indexes.js.map +1 -0
- package/{src → build/cjs}/decorators/relations.d.ts +8 -7
- package/{src → build/cjs}/decorators/relations.js +9 -8
- package/build/cjs/decorators/relations.js.map +1 -0
- package/build/cjs/decorators/timestamps.d.ts +20 -0
- package/build/cjs/decorators/timestamps.js +34 -0
- package/build/cjs/decorators/timestamps.js.map +1 -0
- package/build/cjs/decorators/transforms.d.ts +41 -0
- package/build/cjs/decorators/transforms.js +98 -0
- package/build/cjs/decorators/transforms.js.map +1 -0
- package/{src → build/cjs}/index.d.ts +7 -3
- package/{src → build/cjs}/index.js +15 -6
- package/build/cjs/index.js.map +1 -0
- package/build/cjs/package.json +1 -0
- package/build/cjs/test/basic.d.ts +1 -0
- package/build/cjs/test/basic.js +248 -0
- package/build/cjs/test/basic.js.map +1 -0
- package/build/cjs/test/bulk.d.ts +1 -0
- package/build/cjs/test/bulk.js +108 -0
- package/build/cjs/test/bulk.js.map +1 -0
- package/build/cjs/test/contracts.d.ts +1 -0
- package/build/cjs/test/contracts.js +343 -0
- package/build/cjs/test/contracts.js.map +1 -0
- package/build/cjs/test/filters.d.ts +1 -0
- package/build/cjs/test/filters.js +190 -0
- package/build/cjs/test/filters.js.map +1 -0
- package/build/cjs/test/hooks.d.ts +1 -0
- package/build/cjs/test/hooks.js +191 -0
- package/build/cjs/test/hooks.js.map +1 -0
- package/build/cjs/test/index.js +38 -0
- package/build/cjs/test/index.js.map +1 -0
- package/build/cjs/test/query_scan.d.ts +1 -0
- package/build/cjs/test/query_scan.js +195 -0
- package/build/cjs/test/query_scan.js.map +1 -0
- package/build/cjs/test/relations.d.ts +1 -0
- package/build/cjs/test/relations.js +246 -0
- package/build/cjs/test/relations.js.map +1 -0
- package/build/cjs/test/transactions.d.ts +1 -0
- package/build/cjs/test/transactions.js +145 -0
- package/build/cjs/test/transactions.js.map +1 -0
- package/{src → build/cjs}/utils/relations.js +1 -8
- package/build/cjs/utils/relations.js.map +1 -0
- package/build/cjs/utils/ulid.d.ts +10 -0
- package/build/cjs/utils/ulid.js +55 -0
- package/build/cjs/utils/ulid.js.map +1 -0
- package/build/esm/@types/index.d.ts +213 -0
- package/build/esm/@types/index.js +8 -0
- package/build/esm/@types/index.js.map +1 -0
- package/build/esm/core/client.d.ts +96 -0
- package/build/esm/core/client.js +375 -0
- package/build/esm/core/client.js.map +1 -0
- package/build/esm/core/decorator.d.ts +50 -0
- package/build/esm/core/decorator.js +47 -0
- package/build/esm/core/decorator.js.map +1 -0
- package/build/esm/core/table.d.ts +73 -0
- package/build/esm/core/table.js +950 -0
- package/build/esm/core/table.js.map +1 -0
- package/build/esm/decorators/hooks.d.ts +35 -0
- package/build/esm/decorators/hooks.js +47 -0
- package/build/esm/decorators/hooks.js.map +1 -0
- package/build/esm/decorators/indexes.d.ts +20 -0
- package/build/esm/decorators/indexes.js +42 -0
- package/build/esm/decorators/indexes.js.map +1 -0
- package/build/esm/decorators/relations.d.ts +75 -0
- package/build/esm/decorators/relations.js +112 -0
- package/build/esm/decorators/relations.js.map +1 -0
- package/build/esm/decorators/timestamps.d.ts +20 -0
- package/build/esm/decorators/timestamps.js +31 -0
- package/build/esm/decorators/timestamps.js.map +1 -0
- package/build/esm/decorators/transforms.d.ts +41 -0
- package/build/esm/decorators/transforms.js +92 -0
- package/build/esm/decorators/transforms.js.map +1 -0
- package/build/esm/index.d.ts +19 -0
- package/build/esm/index.js +26 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/package.json +1 -0
- package/build/esm/test/basic.d.ts +1 -0
- package/build/esm/test/basic.js +245 -0
- package/build/esm/test/basic.js.map +1 -0
- package/build/esm/test/bulk.d.ts +1 -0
- package/build/esm/test/bulk.js +105 -0
- package/build/esm/test/bulk.js.map +1 -0
- package/build/esm/test/contracts.d.ts +1 -0
- package/build/esm/test/contracts.js +340 -0
- package/build/esm/test/contracts.js.map +1 -0
- package/build/esm/test/filters.d.ts +1 -0
- package/build/esm/test/filters.js +187 -0
- package/build/esm/test/filters.js.map +1 -0
- package/build/esm/test/hooks.d.ts +1 -0
- package/build/esm/test/hooks.js +188 -0
- package/build/esm/test/hooks.js.map +1 -0
- package/build/esm/test/index.d.ts +1 -0
- package/build/esm/test/index.js +33 -0
- package/build/esm/test/index.js.map +1 -0
- package/build/esm/test/query_scan.d.ts +1 -0
- package/build/esm/test/query_scan.js +192 -0
- package/build/esm/test/query_scan.js.map +1 -0
- package/build/esm/test/relations.d.ts +1 -0
- package/build/esm/test/relations.js +243 -0
- package/build/esm/test/relations.js.map +1 -0
- package/build/esm/test/transactions.d.ts +1 -0
- package/build/esm/test/transactions.js +142 -0
- package/build/esm/test/transactions.js.map +1 -0
- package/build/esm/utils/relations.d.ts +42 -0
- package/build/esm/utils/relations.js +207 -0
- package/build/esm/utils/relations.js.map +1 -0
- package/build/esm/utils/ulid.d.ts +10 -0
- package/build/esm/utils/ulid.js +52 -0
- package/build/esm/utils/ulid.js.map +1 -0
- package/package.json +31 -9
- package/src/core/client.js +0 -296
- package/src/core/decorator.d.ts +0 -29
- package/src/core/decorator.js +0 -103
- package/src/core/table.d.ts +0 -81
- package/src/core/table.js +0 -892
- package/src/decorators/indexes.d.ts +0 -38
- package/src/decorators/indexes.js +0 -59
- package/src/decorators/timestamps.d.ts +0 -54
- package/src/decorators/timestamps.js +0 -72
- package/src/decorators/transforms.d.ts +0 -99
- package/src/decorators/transforms.js +0 -166
- package/src/index.test.js +0 -37
- /package/{src → build/cjs}/@types/index.js +0 -0
- /package/{src/index.test.d.ts → build/cjs/test/index.d.ts} +0 -0
- /package/{src → build/cjs}/utils/relations.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../src/core/table.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file hooks.ts
|
|
3
|
+
* @description Lifecycle hook decorators: @BeforeCreate, @AfterCreate, @BeforeUpdate, @AfterUpdate, @BeforeDestroy, @AfterDestroy
|
|
4
|
+
* @description Decoradores de hooks de ciclo de vida: @BeforeCreate, @AfterCreate, @BeforeUpdate, @AfterUpdate, @BeforeDestroy, @AfterDestroy
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @description Runs before the record is created (opt-in via { hook: true }). `this` is the instance and may be mutated.
|
|
8
|
+
* @description Se ejecuta antes de crear el registro (opt-in con { hook: true }). `this` es la instancia y puede mutarse.
|
|
9
|
+
*/
|
|
10
|
+
export declare const BeforeCreate: () => (target: any, property_key: string | symbol) => void;
|
|
11
|
+
/**
|
|
12
|
+
* @description Runs after the record is created (opt-in via { hook: true }). `this` is the persisted instance.
|
|
13
|
+
* @description Se ejecuta después de crear el registro (opt-in con { hook: true }). `this` es la instancia persistida.
|
|
14
|
+
*/
|
|
15
|
+
export declare const AfterCreate: () => (target: any, property_key: string | symbol) => void;
|
|
16
|
+
/**
|
|
17
|
+
* @description Runs before the record is updated (opt-in via { hook: true }). Receives the changes delta as argument.
|
|
18
|
+
* @description Se ejecuta antes de actualizar el registro (opt-in con { hook: true }). Recibe el delta de cambios como argumento.
|
|
19
|
+
*/
|
|
20
|
+
export declare const BeforeUpdate: () => (target: any, property_key: string | symbol) => void;
|
|
21
|
+
/**
|
|
22
|
+
* @description Runs after the record is updated (opt-in via { hook: true }). Receives the changes delta as argument.
|
|
23
|
+
* @description Se ejecuta después de actualizar el registro (opt-in con { hook: true }). Recibe el delta de cambios como argumento.
|
|
24
|
+
*/
|
|
25
|
+
export declare const AfterUpdate: () => (target: any, property_key: string | symbol) => void;
|
|
26
|
+
/**
|
|
27
|
+
* @description Runs before the record is destroyed (opt-in via { hook: true }). `this` is the instance to remove.
|
|
28
|
+
* @description Se ejecuta antes de eliminar el registro (opt-in con { hook: true }). `this` es la instancia a eliminar.
|
|
29
|
+
*/
|
|
30
|
+
export declare const BeforeDestroy: () => (target: any, property_key: string | symbol) => void;
|
|
31
|
+
/**
|
|
32
|
+
* @description Runs after the record is destroyed (opt-in via { hook: true }). `this` is the removed instance.
|
|
33
|
+
* @description Se ejecuta después de eliminar el registro (opt-in con { hook: true }). `this` es la instancia eliminada.
|
|
34
|
+
*/
|
|
35
|
+
export declare const AfterDestroy: () => (target: any, property_key: string | symbol) => void;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file hooks.ts
|
|
3
|
+
* @description Lifecycle hook decorators: @BeforeCreate, @AfterCreate, @BeforeUpdate, @AfterUpdate, @BeforeDestroy, @AfterDestroy
|
|
4
|
+
* @description Decoradores de hooks de ciclo de vida: @BeforeCreate, @AfterCreate, @BeforeUpdate, @AfterUpdate, @BeforeDestroy, @AfterDestroy
|
|
5
|
+
*/
|
|
6
|
+
import { getSchema } from "../core/decorator.js";
|
|
7
|
+
/**
|
|
8
|
+
* @description Builds a method decorator that registers the method as a lifecycle hook of the given type.
|
|
9
|
+
* @description Construye un decorador de método que registra el método como hook de ciclo de vida del tipo dado.
|
|
10
|
+
* @param type Lifecycle hook type / Tipo de hook de ciclo de vida
|
|
11
|
+
*/
|
|
12
|
+
function hook(type) {
|
|
13
|
+
return () => (target, property_key) => {
|
|
14
|
+
getSchema(target.constructor).hooks[type].push(String(property_key));
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* @description Runs before the record is created (opt-in via { hook: true }). `this` is the instance and may be mutated.
|
|
19
|
+
* @description Se ejecuta antes de crear el registro (opt-in con { hook: true }). `this` es la instancia y puede mutarse.
|
|
20
|
+
*/
|
|
21
|
+
export const BeforeCreate = hook('beforeCreate');
|
|
22
|
+
/**
|
|
23
|
+
* @description Runs after the record is created (opt-in via { hook: true }). `this` is the persisted instance.
|
|
24
|
+
* @description Se ejecuta después de crear el registro (opt-in con { hook: true }). `this` es la instancia persistida.
|
|
25
|
+
*/
|
|
26
|
+
export const AfterCreate = hook('afterCreate');
|
|
27
|
+
/**
|
|
28
|
+
* @description Runs before the record is updated (opt-in via { hook: true }). Receives the changes delta as argument.
|
|
29
|
+
* @description Se ejecuta antes de actualizar el registro (opt-in con { hook: true }). Recibe el delta de cambios como argumento.
|
|
30
|
+
*/
|
|
31
|
+
export const BeforeUpdate = hook('beforeUpdate');
|
|
32
|
+
/**
|
|
33
|
+
* @description Runs after the record is updated (opt-in via { hook: true }). Receives the changes delta as argument.
|
|
34
|
+
* @description Se ejecuta después de actualizar el registro (opt-in con { hook: true }). Recibe el delta de cambios como argumento.
|
|
35
|
+
*/
|
|
36
|
+
export const AfterUpdate = hook('afterUpdate');
|
|
37
|
+
/**
|
|
38
|
+
* @description Runs before the record is destroyed (opt-in via { hook: true }). `this` is the instance to remove.
|
|
39
|
+
* @description Se ejecuta antes de eliminar el registro (opt-in con { hook: true }). `this` es la instancia a eliminar.
|
|
40
|
+
*/
|
|
41
|
+
export const BeforeDestroy = hook('beforeDestroy');
|
|
42
|
+
/**
|
|
43
|
+
* @description Runs after the record is destroyed (opt-in via { hook: true }). `this` is the removed instance.
|
|
44
|
+
* @description Se ejecuta después de eliminar el registro (opt-in con { hook: true }). `this` es la instancia eliminada.
|
|
45
|
+
*/
|
|
46
|
+
export const AfterDestroy = hook('afterDestroy');
|
|
47
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/decorators/hooks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C;;;;GAIG;AACH,SAAS,IAAI,CAAC,IAAc;IAC1B,OAAO,GAAG,EAAE,CAAC,CAAC,MAAW,EAAE,YAA6B,EAAQ,EAAE;QAChE,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;AAEnD;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file indexes.ts
|
|
3
|
+
* @description Index decorators: @Index, @IndexSort, @PrimaryKey
|
|
4
|
+
* @description Decoradores de índices: @Index, @IndexSort, @PrimaryKey
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @description Marks a property as Partition Key for a GSI
|
|
8
|
+
* @description Marca una propiedad como Partition Key de un GSI
|
|
9
|
+
*/
|
|
10
|
+
export declare const Index: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
|
|
11
|
+
/**
|
|
12
|
+
* @description Marks a property as Sort Key
|
|
13
|
+
* @description Marca una propiedad como Sort Key
|
|
14
|
+
*/
|
|
15
|
+
export declare const IndexSort: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
|
|
16
|
+
/**
|
|
17
|
+
* @description Primary key: Default(ulid) + NotNull + ULID validation + Index + IndexSort
|
|
18
|
+
* @description Clave primaria: Default(ulid) + NotNull + validación ULID + Index + IndexSort
|
|
19
|
+
*/
|
|
20
|
+
export declare const PrimaryKey: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file indexes.ts
|
|
3
|
+
* @description Index decorators: @Index, @IndexSort, @PrimaryKey
|
|
4
|
+
* @description Decoradores de índices: @Index, @IndexSort, @PrimaryKey
|
|
5
|
+
*/
|
|
6
|
+
import { decorator, SCHEMA } from "../core/decorator.js";
|
|
7
|
+
import { ulid } from "../utils/ulid.js";
|
|
8
|
+
const ULID_RE = /^[0-9A-HJKMNP-TV-Z]{26}$/;
|
|
9
|
+
/**
|
|
10
|
+
* @description Marks a property as Partition Key for a GSI
|
|
11
|
+
* @description Marca una propiedad como Partition Key de un GSI
|
|
12
|
+
*/
|
|
13
|
+
export const Index = decorator((_schema, col) => {
|
|
14
|
+
col.store.index = true;
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* @description Marks a property as Sort Key
|
|
18
|
+
* @description Marca una propiedad como Sort Key
|
|
19
|
+
*/
|
|
20
|
+
export const IndexSort = decorator((_schema, col) => {
|
|
21
|
+
col.store.indexSort = true;
|
|
22
|
+
});
|
|
23
|
+
/**
|
|
24
|
+
* @description Primary key: Default(ulid) + NotNull + ULID validation + Index + IndexSort
|
|
25
|
+
* @description Clave primaria: Default(ulid) + NotNull + validación ULID + Index + IndexSort
|
|
26
|
+
*/
|
|
27
|
+
export const PrimaryKey = decorator((table_class, col) => {
|
|
28
|
+
const schema = table_class[SCHEMA];
|
|
29
|
+
// Metadata: Index + primaryKey (IndexSort only when separate SK exists)
|
|
30
|
+
col.store.index = true;
|
|
31
|
+
col.store.primaryKey = true;
|
|
32
|
+
schema.primary_key = col.name;
|
|
33
|
+
// Set pipeline: immutable after first assignment, Default(ulid), validate ULID format
|
|
34
|
+
col.set.push((next, current) => {
|
|
35
|
+
const value = current ?? next ?? ulid();
|
|
36
|
+
if (typeof value !== 'string' || !ULID_RE.test(value)) {
|
|
37
|
+
throw new Error(`Invalid ULID for ${col.name}: '${value}'`);
|
|
38
|
+
}
|
|
39
|
+
return value;
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=indexes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexes.js","sourceRoot":"","sources":["../../../src/decorators/indexes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,MAAM,OAAO,GAAG,0BAA0B,CAAC;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;IAC9C,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;AACzB,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;IAClD,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE;IACvD,MAAM,MAAM,GAAI,WAAmB,CAAC,MAAM,CAAC,CAAC;IAE5C,wEAAwE;IACxE,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IACvB,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC;IAE9B,sFAAsF;IACtF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,OAAY,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,OAAO,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file relations.ts
|
|
3
|
+
* @description Decoradores de relaciones: @HasMany, @HasOne, @BelongsTo, @ManyToMany
|
|
4
|
+
* @autor Miguel Alejandro
|
|
5
|
+
* @fecha 2025-01-28
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* @description Decorador para relaciones uno a muchos (1:N)
|
|
9
|
+
* @param model Función que retorna la clase del modelo relacionado
|
|
10
|
+
* @param foreignKey Clave foránea en el modelo relacionado
|
|
11
|
+
* @param localKey Clave local (por defecto 'id')
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* class User extends Table<User> {
|
|
15
|
+
* @PrimaryKey() id: string;
|
|
16
|
+
*
|
|
17
|
+
* @HasMany(() => Post, 'id_user', 'id')
|
|
18
|
+
* declare posts: HasMany<Post>;
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare const HasMany: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
|
|
23
|
+
/**
|
|
24
|
+
* @description Decorador para relaciones uno a uno (1:1)
|
|
25
|
+
* @param model Función que retorna la clase del modelo relacionado
|
|
26
|
+
* @param foreignKey Clave foránea en el modelo relacionado
|
|
27
|
+
* @param localKey Clave local (por defecto 'id')
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* class User extends Table<User> {
|
|
31
|
+
* @PrimaryKey() id: string;
|
|
32
|
+
*
|
|
33
|
+
* @HasOne(() => Profile, 'id_user', 'id')
|
|
34
|
+
* declare profile: HasOne<Profile>;
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare const HasOne: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
|
|
39
|
+
/**
|
|
40
|
+
* @description Many-to-one relation (N:1)
|
|
41
|
+
* @description Relación muchos a uno (N:1)
|
|
42
|
+
* @param model () => RelatedClass
|
|
43
|
+
* @param foreignKey Key in the related model (default 'id')
|
|
44
|
+
* @param localKey Key in the current model that references the parent
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* class Post extends Table<Post> {
|
|
48
|
+
* @PrimaryKey() id: string;
|
|
49
|
+
* @Default('') id_user: string;
|
|
50
|
+
*
|
|
51
|
+
* @BelongsTo(() => User, 'id', 'id_user')
|
|
52
|
+
* declare author: NonAttribute<User>;
|
|
53
|
+
* }
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare const BelongsTo: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
|
|
57
|
+
/**
|
|
58
|
+
* @description Decorador para relaciones muchos a muchos (N:M)
|
|
59
|
+
* @param model Función que retorna la clase del modelo relacionado
|
|
60
|
+
* @param pivotTable Nombre de la tabla pivot
|
|
61
|
+
* @param foreignKey Clave foránea en la tabla pivot que apunta al modelo actual
|
|
62
|
+
* @param relatedKey Clave foránea en la tabla pivot que apunta al modelo relacionado
|
|
63
|
+
* @param localKey Clave local (por defecto 'id')
|
|
64
|
+
* @param relatedPK Clave primaria del modelo relacionado (por defecto 'id')
|
|
65
|
+
* @example
|
|
66
|
+
* ```typescript
|
|
67
|
+
* class User extends Table<User> {
|
|
68
|
+
* @PrimaryKey() id: string;
|
|
69
|
+
*
|
|
70
|
+
* @ManyToMany(() => Role, 'users_roles', 'user_id', 'role_id')
|
|
71
|
+
* declare roles: NonAttribute<Role[]>;
|
|
72
|
+
* }
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export declare const ManyToMany: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file relations.ts
|
|
3
|
+
* @description Decoradores de relaciones: @HasMany, @HasOne, @BelongsTo, @ManyToMany
|
|
4
|
+
* @autor Miguel Alejandro
|
|
5
|
+
* @fecha 2025-01-28
|
|
6
|
+
*/
|
|
7
|
+
import { decorator } from "../core/decorator.js";
|
|
8
|
+
/**
|
|
9
|
+
* @description Decorador para relaciones uno a muchos (1:N)
|
|
10
|
+
* @param model Función que retorna la clase del modelo relacionado
|
|
11
|
+
* @param foreignKey Clave foránea en el modelo relacionado
|
|
12
|
+
* @param localKey Clave local (por defecto 'id')
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* class User extends Table<User> {
|
|
16
|
+
* @PrimaryKey() id: string;
|
|
17
|
+
*
|
|
18
|
+
* @HasMany(() => Post, 'id_user', 'id')
|
|
19
|
+
* declare posts: HasMany<Post>;
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export const HasMany = decorator((_schema, col, params) => {
|
|
24
|
+
const [model, foreignKey, localKey = 'id'] = params;
|
|
25
|
+
col.store.relation = {
|
|
26
|
+
type: 'HasMany',
|
|
27
|
+
model,
|
|
28
|
+
foreignKey,
|
|
29
|
+
localKey
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* @description Decorador para relaciones uno a uno (1:1)
|
|
34
|
+
* @param model Función que retorna la clase del modelo relacionado
|
|
35
|
+
* @param foreignKey Clave foránea en el modelo relacionado
|
|
36
|
+
* @param localKey Clave local (por defecto 'id')
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* class User extends Table<User> {
|
|
40
|
+
* @PrimaryKey() id: string;
|
|
41
|
+
*
|
|
42
|
+
* @HasOne(() => Profile, 'id_user', 'id')
|
|
43
|
+
* declare profile: HasOne<Profile>;
|
|
44
|
+
* }
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export const HasOne = decorator((_schema, col, params) => {
|
|
48
|
+
const [model, foreignKey, localKey = 'id'] = params;
|
|
49
|
+
col.store.relation = {
|
|
50
|
+
type: 'HasOne',
|
|
51
|
+
model,
|
|
52
|
+
foreignKey,
|
|
53
|
+
localKey
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
/**
|
|
57
|
+
* @description Many-to-one relation (N:1)
|
|
58
|
+
* @description Relación muchos a uno (N:1)
|
|
59
|
+
* @param model () => RelatedClass
|
|
60
|
+
* @param foreignKey Key in the related model (default 'id')
|
|
61
|
+
* @param localKey Key in the current model that references the parent
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* class Post extends Table<Post> {
|
|
65
|
+
* @PrimaryKey() id: string;
|
|
66
|
+
* @Default('') id_user: string;
|
|
67
|
+
*
|
|
68
|
+
* @BelongsTo(() => User, 'id', 'id_user')
|
|
69
|
+
* declare author: NonAttribute<User>;
|
|
70
|
+
* }
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export const BelongsTo = decorator((_schema, col, params) => {
|
|
74
|
+
const [model, foreignKey = 'id', localKey = 'id'] = params;
|
|
75
|
+
col.store.relation = {
|
|
76
|
+
type: 'BelongsTo',
|
|
77
|
+
model,
|
|
78
|
+
foreignKey,
|
|
79
|
+
localKey
|
|
80
|
+
};
|
|
81
|
+
});
|
|
82
|
+
/**
|
|
83
|
+
* @description Decorador para relaciones muchos a muchos (N:M)
|
|
84
|
+
* @param model Función que retorna la clase del modelo relacionado
|
|
85
|
+
* @param pivotTable Nombre de la tabla pivot
|
|
86
|
+
* @param foreignKey Clave foránea en la tabla pivot que apunta al modelo actual
|
|
87
|
+
* @param relatedKey Clave foránea en la tabla pivot que apunta al modelo relacionado
|
|
88
|
+
* @param localKey Clave local (por defecto 'id')
|
|
89
|
+
* @param relatedPK Clave primaria del modelo relacionado (por defecto 'id')
|
|
90
|
+
* @example
|
|
91
|
+
* ```typescript
|
|
92
|
+
* class User extends Table<User> {
|
|
93
|
+
* @PrimaryKey() id: string;
|
|
94
|
+
*
|
|
95
|
+
* @ManyToMany(() => Role, 'users_roles', 'user_id', 'role_id')
|
|
96
|
+
* declare roles: NonAttribute<Role[]>;
|
|
97
|
+
* }
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
export const ManyToMany = decorator((_schema, col, params) => {
|
|
101
|
+
const [model, pivotTable, foreignKey, relatedKey, localKey = 'id', relatedPK = 'id'] = params;
|
|
102
|
+
col.store.relation = {
|
|
103
|
+
type: 'ManyToMany',
|
|
104
|
+
model,
|
|
105
|
+
foreignKey,
|
|
106
|
+
relatedKey,
|
|
107
|
+
pivotTable,
|
|
108
|
+
localKey,
|
|
109
|
+
relatedPK
|
|
110
|
+
};
|
|
111
|
+
});
|
|
112
|
+
//# sourceMappingURL=relations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relations.js","sourceRoot":"","sources":["../../../src/decorators/relations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;IACxD,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IACpD,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG;QACnB,IAAI,EAAE,SAAS;QACf,KAAK;QACL,UAAU;QACV,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;IACvD,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IACpD,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG;QACnB,IAAI,EAAE,QAAQ;QACd,KAAK;QACL,UAAU;QACV,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;IAC1D,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IAC3D,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG;QACnB,IAAI,EAAE,WAAW;QACjB,KAAK;QACL,UAAU;QACV,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;IAC3D,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,GAAG,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IAC9F,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG;QACnB,IAAI,EAAE,YAAY;QAClB,KAAK;QACL,UAAU;QACV,UAAU;QACV,UAAU;QACV,QAAQ;QACR,SAAS;KACV,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file timestamps.ts
|
|
3
|
+
* @description Timestamp decorators: @CreatedAt, @UpdatedAt, @DeleteAt
|
|
4
|
+
* @description Decoradores de timestamps: @CreatedAt, @UpdatedAt, @DeleteAt
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @description Auto-sets creation timestamp. Default + immutable after first assignment.
|
|
8
|
+
* @description Timestamp de creación automático. Default + inmutable tras primera asignación.
|
|
9
|
+
*/
|
|
10
|
+
export declare const CreatedAt: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
|
|
11
|
+
/**
|
|
12
|
+
* @description Auto-updates timestamp on every write. Always overwrites.
|
|
13
|
+
* @description Timestamp que se actualiza en cada escritura. Siempre sobreescribe.
|
|
14
|
+
*/
|
|
15
|
+
export declare const UpdatedAt: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
|
|
16
|
+
/**
|
|
17
|
+
* @description Marks column as soft delete flag. Used by destroy() and where().
|
|
18
|
+
* @description Marca columna como flag de soft delete. Usado por destroy() y where().
|
|
19
|
+
*/
|
|
20
|
+
export declare const DeleteAt: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file timestamps.ts
|
|
3
|
+
* @description Timestamp decorators: @CreatedAt, @UpdatedAt, @DeleteAt
|
|
4
|
+
* @description Decoradores de timestamps: @CreatedAt, @UpdatedAt, @DeleteAt
|
|
5
|
+
*/
|
|
6
|
+
import { decorator } from "../core/decorator.js";
|
|
7
|
+
/**
|
|
8
|
+
* @description Auto-sets creation timestamp. Default + immutable after first assignment.
|
|
9
|
+
* @description Timestamp de creación automático. Default + inmutable tras primera asignación.
|
|
10
|
+
*/
|
|
11
|
+
export const CreatedAt = decorator((_schema, col) => {
|
|
12
|
+
col.store.createdAt = true;
|
|
13
|
+
// Default in set: assigns now() when nullish. Preserves existing value (immutable).
|
|
14
|
+
col.set.push((next, current) => current ?? next ?? new Date().toISOString());
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* @description Auto-updates timestamp on every write. Always overwrites.
|
|
18
|
+
* @description Timestamp que se actualiza en cada escritura. Siempre sobreescribe.
|
|
19
|
+
*/
|
|
20
|
+
export const UpdatedAt = decorator((_schema, col) => {
|
|
21
|
+
col.store.updatedAt = true;
|
|
22
|
+
col.set.push((next) => next ?? new Date().toISOString());
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* @description Marks column as soft delete flag. Used by destroy() and where().
|
|
26
|
+
* @description Marca columna como flag de soft delete. Usado por destroy() y where().
|
|
27
|
+
*/
|
|
28
|
+
export const DeleteAt = decorator((_schema, col) => {
|
|
29
|
+
col.store.softDelete = true;
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=timestamps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timestamps.js","sourceRoot":"","sources":["../../../src/decorators/timestamps.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;IAClD,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAC3B,oFAAoF;IACpF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,OAAY,EAAE,EAAE,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACzF,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;IAClD,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAC3B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;IACjD,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;AAC9B,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file transforms.ts
|
|
3
|
+
* @description Primitive decorators: @Get, @Set, @Validate. Composed: @Default, @NotNull, @Name
|
|
4
|
+
* @description Decoradores primitivos: @Get, @Set, @Validate. Compuestos: @Default, @NotNull, @Name
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @description Output pipeline -- transforms value on read
|
|
8
|
+
* @description Pipeline de salida -- transforma el valor al leer
|
|
9
|
+
* @param fn (current) => any
|
|
10
|
+
*/
|
|
11
|
+
export declare const Get: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
|
|
12
|
+
/**
|
|
13
|
+
* @description Input pipeline -- transforms value on write
|
|
14
|
+
* @description Pipeline de entrada -- transforma el valor al escribir
|
|
15
|
+
* @param fn (next, current) => any
|
|
16
|
+
*/
|
|
17
|
+
export declare const Set: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
|
|
18
|
+
/**
|
|
19
|
+
* @description Validates value on write. Returns true to pass, or string as error message.
|
|
20
|
+
* @description Valida valor al escribir. Retorna true para pasar, o string como mensaje de error.
|
|
21
|
+
* @param validators (next, current) => true | string
|
|
22
|
+
*/
|
|
23
|
+
export declare const Validate: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
|
|
24
|
+
/**
|
|
25
|
+
* @description Assigns default value when nullish. Lives in set pipeline.
|
|
26
|
+
* @description Asigna valor default cuando es nullish. Vive en el set pipeline.
|
|
27
|
+
* @param val Static value or () => value
|
|
28
|
+
*/
|
|
29
|
+
export declare const Default: (val: any) => (target: any, propertyKey: string | symbol) => void;
|
|
30
|
+
/**
|
|
31
|
+
* @description Rejects null, undefined, and empty string. Composed from @Validate.
|
|
32
|
+
* @description Rechaza null, undefined y string vacío. Compuesto desde @Validate.
|
|
33
|
+
* @param msg Optional error message
|
|
34
|
+
*/
|
|
35
|
+
export declare const NotNull: (msg?: string) => (target: any, propertyKey: string | symbol) => void;
|
|
36
|
+
/**
|
|
37
|
+
* @description Renames table (on class) or column (on property)
|
|
38
|
+
* @description Renombra tabla (en clase) o columna (en propiedad)
|
|
39
|
+
* @param label Custom name
|
|
40
|
+
*/
|
|
41
|
+
export declare function Name(label: string): ClassDecorator & PropertyDecorator;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file transforms.ts
|
|
3
|
+
* @description Primitive decorators: @Get, @Set, @Validate. Composed: @Default, @NotNull, @Name
|
|
4
|
+
* @description Decoradores primitivos: @Get, @Set, @Validate. Compuestos: @Default, @NotNull, @Name
|
|
5
|
+
*/
|
|
6
|
+
import { decorator, getSchema } from "../core/decorator.js";
|
|
7
|
+
/**
|
|
8
|
+
* @description Output pipeline -- transforms value on read
|
|
9
|
+
* @description Pipeline de salida -- transforma el valor al leer
|
|
10
|
+
* @param fn (current) => any
|
|
11
|
+
*/
|
|
12
|
+
export const Get = decorator((_schema, col, params) => {
|
|
13
|
+
col.get.push(params[0]);
|
|
14
|
+
});
|
|
15
|
+
/**
|
|
16
|
+
* @description Input pipeline -- transforms value on write
|
|
17
|
+
* @description Pipeline de entrada -- transforma el valor al escribir
|
|
18
|
+
* @param fn (next, current) => any
|
|
19
|
+
*/
|
|
20
|
+
export const Set = decorator((_schema, col, params) => {
|
|
21
|
+
col.set.push(params[0]);
|
|
22
|
+
});
|
|
23
|
+
/**
|
|
24
|
+
* @description Validates value on write. Returns true to pass, or string as error message.
|
|
25
|
+
* @description Valida valor al escribir. Retorna true para pasar, o string como mensaje de error.
|
|
26
|
+
* @param validators (next, current) => true | string
|
|
27
|
+
*/
|
|
28
|
+
export const Validate = decorator((_schema, col, params) => {
|
|
29
|
+
const validators = params[0];
|
|
30
|
+
const list = Array.isArray(validators) ? validators : [validators];
|
|
31
|
+
if (!list.length || list.some((v) => typeof v !== 'function')) {
|
|
32
|
+
throw new TypeError('@Validate requires functions');
|
|
33
|
+
}
|
|
34
|
+
col.set.push((next, current) => {
|
|
35
|
+
for (const fn of list) {
|
|
36
|
+
const result = fn(next, current);
|
|
37
|
+
if (result !== true) {
|
|
38
|
+
throw new Error(typeof result === 'string' ? result : `Validation failed for '${col.name}'`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return next;
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
/**
|
|
45
|
+
* @description Assigns default value when nullish. Lives in set pipeline.
|
|
46
|
+
* @description Asigna valor default cuando es nullish. Vive en el set pipeline.
|
|
47
|
+
* @param val Static value or () => value
|
|
48
|
+
*/
|
|
49
|
+
export const Default = (val) => {
|
|
50
|
+
const fn = typeof val === 'function'
|
|
51
|
+
? (next) => next ?? val()
|
|
52
|
+
: (next) => next ?? val;
|
|
53
|
+
return Set(fn);
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* @description Rejects null, undefined, and empty string. Composed from @Validate.
|
|
57
|
+
* @description Rechaza null, undefined y string vacío. Compuesto desde @Validate.
|
|
58
|
+
* @param msg Optional error message
|
|
59
|
+
*/
|
|
60
|
+
export const NotNull = (msg) => {
|
|
61
|
+
return Validate((next) => {
|
|
62
|
+
if (next === null || next === undefined || (typeof next === 'string' && next.trim() === '')) {
|
|
63
|
+
return typeof msg === 'string' ? msg : false;
|
|
64
|
+
}
|
|
65
|
+
return true;
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* @description Renames table (on class) or column (on property)
|
|
70
|
+
* @description Renombra tabla (en clase) o columna (en propiedad)
|
|
71
|
+
* @param label Custom name
|
|
72
|
+
*/
|
|
73
|
+
export function Name(label) {
|
|
74
|
+
if (!label || typeof label !== 'string') {
|
|
75
|
+
throw new TypeError('@Name requires a non-empty string');
|
|
76
|
+
}
|
|
77
|
+
return (target, prop) => {
|
|
78
|
+
const ctor = prop === undefined ? target : target.constructor;
|
|
79
|
+
const schema = getSchema(ctor);
|
|
80
|
+
if (prop === undefined) {
|
|
81
|
+
schema.name = label;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
const key = String(prop);
|
|
85
|
+
if (!schema.columns[key]) {
|
|
86
|
+
schema.columns[key] = { name: key, get: [], set: [], store: {} };
|
|
87
|
+
}
|
|
88
|
+
schema.columns[key].name = label;
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=transforms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transforms.js","sourceRoot":"","sources":["../../../src/decorators/transforms.ts"],"names":[],"mappings":"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"}
|