@decaf-ts/core 0.8.30 → 0.8.31

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.
Files changed (66) hide show
  1. package/README.md +1 -1
  2. package/dist/core.cjs +1 -1
  3. package/dist/core.cjs.map +1 -1
  4. package/dist/core.js +1 -1
  5. package/dist/core.js.map +1 -1
  6. package/lib/esm/identity/decorators.js +1 -1
  7. package/lib/esm/identity/decorators.js.map +1 -1
  8. package/lib/esm/index.d.ts +1 -1
  9. package/lib/esm/index.js +1 -1
  10. package/lib/esm/model/SequenceModel.js +2 -1
  11. package/lib/esm/model/SequenceModel.js.map +1 -1
  12. package/lib/esm/model/construction.d.ts +13 -0
  13. package/lib/esm/model/construction.js +286 -1
  14. package/lib/esm/model/construction.js.map +1 -1
  15. package/lib/esm/model/decorators.d.ts +1 -20
  16. package/lib/esm/model/decorators.js +9 -41
  17. package/lib/esm/model/decorators.js.map +1 -1
  18. package/lib/esm/model/index.d.ts +1 -0
  19. package/lib/esm/model/index.js +1 -0
  20. package/lib/esm/model/index.js.map +1 -1
  21. package/lib/esm/model/indexing.d.ts +20 -0
  22. package/lib/esm/model/indexing.js +37 -0
  23. package/lib/esm/model/indexing.js.map +1 -0
  24. package/lib/esm/persistence/Adapter.js +4 -2
  25. package/lib/esm/persistence/Adapter.js.map +1 -1
  26. package/lib/esm/repository/decorators.js +2 -1
  27. package/lib/esm/repository/decorators.js.map +1 -1
  28. package/lib/esm/tasks/TaskEngine.js +12 -5
  29. package/lib/esm/tasks/TaskEngine.js.map +1 -1
  30. package/lib/esm/tasks/TaskTracker.d.ts +2 -0
  31. package/lib/esm/tasks/TaskTracker.js +26 -3
  32. package/lib/esm/tasks/TaskTracker.js.map +1 -1
  33. package/lib/esm/tasks/models/TaskIOSerializer.d.ts +8 -2
  34. package/lib/esm/tasks/models/TaskIOSerializer.js +70 -30
  35. package/lib/esm/tasks/models/TaskIOSerializer.js.map +1 -1
  36. package/lib/identity/decorators.cjs +2 -2
  37. package/lib/identity/decorators.js.map +1 -1
  38. package/lib/index.cjs +1 -1
  39. package/lib/index.d.ts +1 -1
  40. package/lib/model/SequenceModel.cjs +2 -1
  41. package/lib/model/SequenceModel.js.map +1 -1
  42. package/lib/model/construction.cjs +293 -0
  43. package/lib/model/construction.d.ts +13 -0
  44. package/lib/model/construction.js.map +1 -1
  45. package/lib/model/decorators.cjs +7 -40
  46. package/lib/model/decorators.d.ts +1 -20
  47. package/lib/model/decorators.js.map +1 -1
  48. package/lib/model/index.cjs +1 -0
  49. package/lib/model/index.d.ts +1 -0
  50. package/lib/model/index.js.map +1 -1
  51. package/lib/model/indexing.cjs +40 -0
  52. package/lib/model/indexing.d.ts +20 -0
  53. package/lib/model/indexing.js.map +1 -0
  54. package/lib/persistence/Adapter.cjs +4 -2
  55. package/lib/persistence/Adapter.js.map +1 -1
  56. package/lib/repository/decorators.cjs +4 -3
  57. package/lib/repository/decorators.js.map +1 -1
  58. package/lib/tasks/TaskEngine.cjs +12 -5
  59. package/lib/tasks/TaskEngine.js.map +1 -1
  60. package/lib/tasks/TaskTracker.cjs +26 -3
  61. package/lib/tasks/TaskTracker.d.ts +2 -0
  62. package/lib/tasks/TaskTracker.js.map +1 -1
  63. package/lib/tasks/models/TaskIOSerializer.cjs +70 -30
  64. package/lib/tasks/models/TaskIOSerializer.d.ts +8 -2
  65. package/lib/tasks/models/TaskIOSerializer.js.map +1 -1
  66. package/package.json +1 -1
@@ -1,9 +1,9 @@
1
1
  import { Model, required } from "@decaf-ts/decorator-validation";
2
2
  import { DefaultSequenceOptions, } from "./../interfaces/SequenceOptions.js";
3
3
  import { DBKeys, generated, InternalError, onCreate, readonly, } from "@decaf-ts/db-decorators";
4
- import { index } from "./../model/decorators.js";
5
4
  import { OrderDirection } from "./../repository/constants.js";
6
5
  import { apply, Decoration, Metadata, prop, propMetadata, } from "@decaf-ts/decoration";
6
+ import { index } from "./../model/indexing.js";
7
7
  const defaultPkPriority = 60; // Default priority for primary key to run latter than other properties
8
8
  /**
9
9
  * @description Callback function for primary key creation
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/identity/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/identity/decorators.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export * from "./persistence";
21
21
  * @const VERSION
22
22
  * @memberOf module:core
23
23
  */
24
- export declare const VERSION = "0.8.29";
24
+ export declare const VERSION = "0.8.30";
25
25
  /**
26
26
  * @description Stores the current package version
27
27
  * @summary A constant representing the version of the core package
package/lib/esm/index.js CHANGED
@@ -31,7 +31,7 @@ export * from "./persistence/index.js";
31
31
  * @const VERSION
32
32
  * @memberOf module:core
33
33
  */
34
- export const VERSION = "0.8.29";
34
+ export const VERSION = "0.8.30";
35
35
  /**
36
36
  * @description Stores the current package version
37
37
  * @summary A constant representing the version of the core package
@@ -9,8 +9,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  import { model, required } from "@decaf-ts/decorator-validation";
11
11
  import { BaseModel } from "./BaseModel.js";
12
- import { index, table } from "./decorators.js";
12
+ import { table } from "./decorators.js";
13
13
  import { pk } from "./../identity/decorators.js";
14
+ import { index } from "./indexing.js";
14
15
  /**
15
16
  * @description RAM sequence model for auto-incrementing values
16
17
  * @summary A model class that represents a sequence in the RAM adapter. It stores the current value
@@ -1 +1 @@
1
- {"version":3,"file":"SequenceModel.js","sourceRoot":"","sources":["../../../src/model/SequenceModel.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAqB;AAC5C,OAAO,EAAE,EAAE,EAAE,oCAA+B;AAE5C;;;;;;;;;;;;;;;;;GAiBG;AAGI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAAS;IAe1C,YAAY,GAA6B;QACvC,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF,CAAA;AAbC;IADC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;;yCAC3B;AAQZ;IAFC,QAAQ,EAAE;IACV,KAAK,EAAE;;8CACkB;AAbf,aAAa;IAFzB,KAAK,CAAC,YAAY,CAAC;IACnB,KAAK,EAAE;;GACK,aAAa,CAkBzB"}
1
+ {"version":3,"file":"SequenceModel.js","sourceRoot":"","sources":["../../../src/model/SequenceModel.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,KAAK,EAAE,wBAAqB;AACrC,OAAO,EAAE,EAAE,EAAE,oCAA+B;AAC5C,OAAO,EAAE,KAAK,EAAE,sBAAmB;AACnC;;;;;;;;;;;;;;;;;GAiBG;AAGI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAAS;IAe1C,YAAY,GAA6B;QACvC,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF,CAAA;AAbC;IADC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;;yCAC3B;AAQZ;IAFC,QAAQ,EAAE;IACV,KAAK,EAAE;;8CACkB;AAbf,aAAa;IAFzB,KAAK,CAAC,YAAY,CAAC;IACnB,KAAK,EAAE;;GACK,aAAa,CAkBzB"}
@@ -1,6 +1,7 @@
1
1
  import { Model } from "@decaf-ts/decorator-validation";
2
2
  import { Repo } from "../repository/Repository";
3
3
  import { RelationsMetadata } from "./types";
4
+ import { Constructor } from "@decaf-ts/decoration";
4
5
  import { AdapterFlags, ContextOf } from "../persistence/types";
5
6
  import { Context } from "../persistence/Context";
6
7
  /**
@@ -323,6 +324,18 @@ export declare function oneToManyOnUpdate<M extends Model, R extends Repo<M>>(th
323
324
  * oneToManyOnDelete-->>Caller: void
324
325
  */
325
326
  export declare function oneToManyOnDelete<M extends Model, R extends Repo<M>>(this: R, context: ContextOf<R>, data: RelationsMetadata, key: keyof M, model: M): Promise<void>;
327
+ export declare function manyToOneOnCreate<M extends Model, R extends Repo<M>>(this: R, context: ContextOf<R>, data: RelationsMetadata, key: keyof M, model: M): Promise<void>;
328
+ export declare function validBidirectionalRelation<M extends Model>(model: M, data: RelationsMetadata): boolean;
329
+ export declare function manyToOneOnUpdate<M extends Model, R extends Repo<M>>(this: R, context: ContextOf<R>, data: RelationsMetadata, key: keyof M, model: M): Promise<void>;
330
+ export declare function manyToOneOnDelete<M extends Model, R extends Repo<M>>(this: R, context: ContextOf<R>, data: RelationsMetadata, key: keyof M, model: M): Promise<void>;
331
+ export declare function manyToManyOnCreate<M extends Model, R extends Repo<M>>(this: R, context: ContextOf<R>, data: RelationsMetadata, key: keyof M, modelA: M): Promise<void>;
332
+ export declare function getAndConstructJunctionTable(modelA: Model, modelB: Model | any, metadata?: RelationsMetadata): {
333
+ fkA: string;
334
+ fkB: string;
335
+ JunctionModel: Constructor<Model<false>>;
336
+ };
337
+ export declare function manyToManyOnUpdate<M extends Model, R extends Repo<M>>(this: R, context: ContextOf<R>, data: RelationsMetadata, key: keyof M, model: M): Promise<void>;
338
+ export declare function manyToManyOnDelete<M extends Model, R extends Repo<M>>(this: R, context: ContextOf<R>, data: RelationsMetadata, key: keyof M, model: M): Promise<void>;
326
339
  /**
327
340
  * @description Generates a key for caching populated model relationships
328
341
  * @summary Creates a unique key for storing and retrieving populated model relationships in the cache
@@ -1,9 +1,10 @@
1
- import { isEqual, Model, ValidationKeys, } from "@decaf-ts/decorator-validation";
1
+ import { model, isEqual, Model, required, ValidationKeys, } from "@decaf-ts/decorator-validation";
2
2
  import { Repository } from "./../repository/Repository.js";
3
3
  import { InternalError, NotFoundError } from "@decaf-ts/db-decorators";
4
4
  import { PersistenceKeys } from "./../persistence/constants.js";
5
5
  import { Cascade } from "./../repository/constants.js";
6
6
  import { Metadata } from "@decaf-ts/decoration";
7
+ import { pk } from "./../identity/decorators.js";
7
8
  /**
8
9
  * @description Creates or updates a model instance
9
10
  * @summary Determines whether to create a new model or update an existing one based on the presence of a primary key
@@ -193,6 +194,8 @@ export async function oneToOneOnCreate(context, data, key, model) {
193
194
  const propertyValue = model[key];
194
195
  if (!propertyValue)
195
196
  return;
197
+ if (!validBidirectionalRelation(model, data))
198
+ return;
196
199
  if (typeof propertyValue !== "object") {
197
200
  const innerRepo = repositoryFromTypeMetadata(model, key, this.adapter.alias);
198
201
  const read = await innerRepo.read(propertyValue, context);
@@ -393,6 +396,8 @@ export async function oneToManyOnCreate(context, data, key, model) {
393
396
  const propertyValues = model[key];
394
397
  if (!propertyValues || !propertyValues.length)
395
398
  return;
399
+ if (!validBidirectionalRelation(model, data))
400
+ return;
396
401
  const arrayType = typeof propertyValues[0];
397
402
  if (!propertyValues.every((item) => typeof item === arrayType))
398
403
  throw new InternalError(`Invalid operation. All elements of property ${key} must match the same type.`);
@@ -561,6 +566,286 @@ export async function oneToManyOnDelete(context, data, key, model) {
561
566
  }
562
567
  model[key] = ids;
563
568
  }
569
+ export async function manyToOneOnCreate(context, data, key, model) {
570
+ const propertyValue = model[key];
571
+ if (!propertyValue)
572
+ return;
573
+ if (!validBidirectionalRelation(model, data))
574
+ return;
575
+ const log = context.logger.for(manyToOneOnCreate);
576
+ // If it's a primitive value (ID), read the existing record
577
+ if (typeof propertyValue !== "object") {
578
+ const innerRepo = repositoryFromTypeMetadata(model, key, this.adapter.alias);
579
+ const read = await innerRepo.read(propertyValue);
580
+ await cacheModelForPopulate(context, model, key, propertyValue, read);
581
+ model[key] = propertyValue;
582
+ return;
583
+ }
584
+ const constructor = data.class instanceof Model ? data.class.constructor : data.class;
585
+ if (!constructor)
586
+ throw new InternalError(`Could not find model ${data.class}`);
587
+ log.info(`Creating or updating many-to-one model: ${JSON.stringify(propertyValue)}`);
588
+ const record = await createOrUpdate(propertyValue, context, this.adapter.alias);
589
+ const pk = Model.pk(record);
590
+ log.info(`caching: ${JSON.stringify(record)} under ${record[pk]}`);
591
+ await cacheModelForPopulate(context, model, key, record[pk], record);
592
+ model[key] = record[pk];
593
+ }
594
+ export function validBidirectionalRelation(model, data) {
595
+ let metaReverseRelation;
596
+ const relationConstructor = typeof data.class === "function" && data.class.name
597
+ ? data.class
598
+ : data.class();
599
+ // get the inverse relation metadata
600
+ const metaReverseRelationMeta = Metadata.get(relationConstructor, PersistenceKeys.RELATIONS);
601
+ if (metaReverseRelationMeta)
602
+ metaReverseRelation = Object.values(metaReverseRelationMeta)?.find((rel) => {
603
+ const relationConstructor = typeof rel.class === "function" && rel.class.name
604
+ ? rel.class
605
+ : rel.class();
606
+ return model instanceof relationConstructor;
607
+ });
608
+ // If populate is set to true on both sides, we should throw an error.
609
+ if (metaReverseRelation?.populate === true && data?.populate === true) {
610
+ throw new InternalError("Bidirectional populate is not allowed. Please set populate to false on one side of the relation.");
611
+ }
612
+ return true;
613
+ }
614
+ export async function manyToOneOnUpdate(context, data, key, model) {
615
+ const { cascade } = data;
616
+ if (cascade.update !== Cascade.CASCADE)
617
+ return;
618
+ return manyToOneOnCreate.apply(this, [
619
+ context,
620
+ data,
621
+ key,
622
+ model,
623
+ ]);
624
+ }
625
+ export async function manyToOneOnDelete(context, data, key, model) {
626
+ if (data.cascade.delete !== Cascade.CASCADE)
627
+ return;
628
+ const value = model[key];
629
+ if (!value)
630
+ return;
631
+ const isInstantiated = typeof value === "object";
632
+ const repo = isInstantiated
633
+ ? Repository.forModel(value, this.adapter.alias)
634
+ : repositoryFromTypeMetadata(model, key, this.adapter.alias);
635
+ const repoId = isInstantiated ? value[repo["pk"]] : value;
636
+ const deleted = await repo.delete(repoId);
637
+ await cacheModelForPopulate(context, model, key, repoId, deleted);
638
+ model[key] = repoId;
639
+ }
640
+ export async function manyToManyOnCreate(context, data, key, modelA) {
641
+ console.warn("DECORATOR manyToMany UNDER DEVELOPMENT");
642
+ const propertyValues = modelA[key];
643
+ if (!propertyValues || !propertyValues.length)
644
+ return;
645
+ if (!validBidirectionalRelation(modelA, data))
646
+ return;
647
+ const arrayType = typeof propertyValues[0];
648
+ if (!propertyValues.every((item) => typeof item === arrayType))
649
+ throw new InternalError(`Invalid operation. All elements of property ${key} must match the same type.`);
650
+ const log = context.logger.for(manyToManyOnCreate);
651
+ const uniqueValues = new Set([...propertyValues]);
652
+ // If it's a primitive value (ID), read the existing record
653
+ if (arrayType !== "object") {
654
+ const repo = repositoryFromTypeMetadata(modelA, key, this.adapter.alias);
655
+ const read = await repo.readAll([...uniqueValues.values()], context);
656
+ for (let i = 0; i < read.length; i++) {
657
+ const model = read[i];
658
+ log.info(`FOUND MANY TO MANY VALUE: ${JSON.stringify(model)}`);
659
+ await cacheModelForPopulate(context, model, key, [...uniqueValues.values()][i], read);
660
+ }
661
+ // Create junction table entries
662
+ await getOrCreateJunctionModel.apply(this, [
663
+ modelA,
664
+ [...propertyValues],
665
+ log,
666
+ context,
667
+ data,
668
+ ]);
669
+ modelA[key] = [...uniqueValues];
670
+ log.info(`SET MANY TO MANY IDS: ${modelA[key]}`);
671
+ return;
672
+ }
673
+ const pkName = Model.pk(propertyValues[0].constructor);
674
+ const result = new Set();
675
+ for (const propertyValue of propertyValues) {
676
+ log.info(`Creating or updating many-to-many model: ${JSON.stringify(propertyValue)}`);
677
+ const record = await createOrUpdate(propertyValue, context, this.adapter.alias);
678
+ log.info(`caching: ${JSON.stringify(record)} under ${record[pkName]}`);
679
+ await cacheModelForPopulate(context, modelA, key, record[pkName], record);
680
+ log.info(`Creating or updating many-to-many model: ${JSON.stringify(propertyValue)}`);
681
+ propertyValue.id = record.id;
682
+ result.add(record[pkName]);
683
+ }
684
+ // Get or generate the ID for modelA before persisting junction records
685
+ const modelPkName = Model.pk(modelA.constructor);
686
+ if (typeof modelA[modelPkName] === "undefined") {
687
+ const nextId = await getNextId(this, modelA, context);
688
+ modelA[modelPkName] = nextId;
689
+ }
690
+ // Create junction table entries
691
+ const JunctionModel = await getOrCreateJunctionModel.apply(this, [modelA, propertyValues, log, context, data]);
692
+ // This will require creating junction repository and storing the relationships
693
+ log.info(`Junction model created: ${JunctionModel.name}`);
694
+ modelA[key] = [...result];
695
+ }
696
+ async function getNextId(repo, modelA, context) {
697
+ // Get the next id for the model before it is persisted so we can put it in the junction table
698
+ const modelPkName = Model.pk(modelA.constructor);
699
+ const modelAId = modelA[modelPkName];
700
+ if (modelAId !== undefined) {
701
+ return modelAId;
702
+ }
703
+ const pkProps = Model.sequenceFor(modelA.constructor);
704
+ if (!pkProps?.name) {
705
+ pkProps.name = Model.sequenceName(modelA, "pk");
706
+ }
707
+ let sequence;
708
+ try {
709
+ // Access adapter through the public property 'db' or use type assertion
710
+ sequence = await repo.adapter.Sequence(pkProps);
711
+ return await sequence.next(context);
712
+ }
713
+ catch (e) {
714
+ throw new InternalError(`Failed to instantiate Sequence ${pkProps.name}: ${e}`);
715
+ }
716
+ }
717
+ async function getOrCreateJunctionModel(modelA, modelsB, log, context, metadata) {
718
+ const { JunctionModel, fkA, fkB } = getAndConstructJunctionTable(modelA, modelsB[0], metadata);
719
+ const recordIds = [];
720
+ for (const modelB of modelsB) {
721
+ log.info(`Creating or updating many-to-many junction model: ${JSON.stringify(modelB)}`);
722
+ // If it is a model, find and store fk content, else it is fk value directly
723
+ const junctionRegister = {
724
+ [fkA]: modelA instanceof Model
725
+ ? modelA[Model.pk(modelA.constructor)]
726
+ : modelA,
727
+ [fkB]: modelB instanceof Model
728
+ ? modelB[Model.pk(modelB.constructor)]
729
+ : modelB,
730
+ };
731
+ const record = await createOrUpdate(new JunctionModel(junctionRegister), context, this.adapter.alias);
732
+ if (record?.id)
733
+ recordIds.push(record.id);
734
+ }
735
+ if (recordIds.length === modelsB?.length) {
736
+ console.log(`All junction records created successfully for table ${JunctionModel?.name}`);
737
+ const repository = Repository.forModel(JunctionModel);
738
+ const results = await repository?.readAll(recordIds);
739
+ console.log("results:", results);
740
+ }
741
+ else
742
+ console.error(`Some junction records failed to be created for table ${JunctionModel?.name}`);
743
+ return JunctionModel;
744
+ }
745
+ export function getAndConstructJunctionTable(modelA, modelB, metadata) {
746
+ // Get the name of the table and fks
747
+ const modelAName = Model.tableName(modelA);
748
+ let modelBName;
749
+ if (modelB instanceof Model)
750
+ modelBName = Model.tableName(modelB);
751
+ else if (Model.isModel(modelB) &&
752
+ typeof modelB === "function") {
753
+ modelBName = modelB.name ? modelB.name : modelB()?.name;
754
+ }
755
+ else if (metadata?.class) {
756
+ const clazz = typeof metadata.class === "function" && !metadata.class.name
757
+ ? metadata.class()
758
+ : metadata.class;
759
+ modelBName = Model.tableName(clazz);
760
+ }
761
+ if (!modelAName || !modelBName)
762
+ throw new InternalError("Missing tablenames to create junction table");
763
+ const junctionTableName = metadata?.joinTable?.name
764
+ ? metadata?.joinTable?.name
765
+ : `${modelAName}_${modelBName}`;
766
+ const fkA = `${modelAName?.toLowerCase()}_fk`;
767
+ const fkB = `${modelBName?.toLowerCase()}_fk`;
768
+ // Anonymous class to be able to change name
769
+ const DynamicJunctionModel = class extends Model {
770
+ constructor(arg) {
771
+ super(arg);
772
+ }
773
+ };
774
+ Object.defineProperty(DynamicJunctionModel, "name", {
775
+ value: junctionTableName,
776
+ writable: false,
777
+ });
778
+ // Apply the decorators
779
+ pk({ type: Number })(DynamicJunctionModel.prototype, "id");
780
+ required()(DynamicJunctionModel.prototype, fkA);
781
+ required()(DynamicJunctionModel.prototype, fkB);
782
+ // Apply @model() decorator to the class
783
+ const DecoratedModel = model()(DynamicJunctionModel);
784
+ Metadata.set(DynamicJunctionModel, PersistenceKeys.TABLE, junctionTableName);
785
+ return {
786
+ fkA,
787
+ fkB,
788
+ JunctionModel: DecoratedModel,
789
+ };
790
+ }
791
+ export async function manyToManyOnUpdate(context, data, key, model) {
792
+ console.warn("method not yet implemented");
793
+ const { cascade } = data;
794
+ if (cascade.update !== Cascade.CASCADE)
795
+ return;
796
+ return manyToManyOnCreate.apply(this, [
797
+ context,
798
+ data,
799
+ key,
800
+ model,
801
+ ]);
802
+ }
803
+ export async function manyToManyOnDelete(context, data, key, model) {
804
+ console.warn("Method under development");
805
+ if (data.cascade.delete !== Cascade.CASCADE)
806
+ return;
807
+ const values = model[key];
808
+ if (!values || !values.length)
809
+ return;
810
+ const arrayType = typeof values[0];
811
+ const areAllSameType = values.every((item) => typeof item === arrayType);
812
+ if (!areAllSameType)
813
+ throw new InternalError(`Invalid operation. All elements of property ${key} must match the same type.`);
814
+ // Delete the values and the junction table entries
815
+ const clazz = typeof data.class === "function" && !data.class.name
816
+ ? data.class()
817
+ : data.class;
818
+ const isInstantiated = arrayType === "object";
819
+ const repo = isInstantiated
820
+ ? Repository.forModel(clazz, this.adapter.alias)
821
+ : repositoryFromTypeMetadata(model, key, this.adapter.alias);
822
+ const uniqueValues = new Set([
823
+ ...(isInstantiated
824
+ ? values.map((v) => v[repo["pk"]])
825
+ : values),
826
+ ]);
827
+ const ids = [...uniqueValues.values()];
828
+ let deleted;
829
+ try {
830
+ deleted = await repo.deleteAll(ids, context);
831
+ }
832
+ catch (e) {
833
+ context.logger.error(`Failed to delete all records`, e);
834
+ throw e;
835
+ }
836
+ let del;
837
+ for (let i = 0; i < deleted.length; i++) {
838
+ del = deleted[i];
839
+ try {
840
+ await cacheModelForPopulate(context, model, key, ids[i], del);
841
+ }
842
+ catch (e) {
843
+ context.logger.error(`Failed to cache record ${ids[i]} with key ${key} and model ${JSON.stringify(model, undefined, 2)} `, e);
844
+ throw e;
845
+ }
846
+ }
847
+ model[key] = ids;
848
+ }
564
849
  /**
565
850
  * @description Generates a key for caching populated model relationships
566
851
  * @summary Creates a unique key for storing and retrieving populated model relationships in the cache
@@ -1 +1 @@
1
- {"version":3,"file":"construction.js","sourceRoot":"","sources":["../../../src/model/construction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"construction.js","sourceRoot":"","sources":["../../../src/model/construction.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { OperationKeys } from "@decaf-ts/db-decorators";
2
- import { propMetadata, Constructor } from "@decaf-ts/decoration";
2
+ import { Constructor } from "@decaf-ts/decoration";
3
3
  import { CascadeMetadata } from "../repository/types";
4
- import { OrderDirection } from "../repository/constants";
5
4
  import { Model } from "@decaf-ts/decorator-validation";
6
5
  import type { Repo } from "../repository/Repository";
7
6
  import { JoinColumnOptions, JoinTableMultipleColumnsOptions, JoinTableOptions, RelationsMetadata } from "./types";
@@ -24,24 +23,6 @@ export declare function table<OPTS = string>(opts?: OPTS): (target: any, propert
24
23
  * @category Property Decorators
25
24
  */
26
25
  export declare function column<OPTS = string>(columnName?: OPTS): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
27
- /**
28
- * @description Creates an index on a model property for improved query performance
29
- * @summary Decorator that marks a property to be indexed in the database, optionally with specific directions and compositions
30
- * @param {OrderDirection[]} [directions] - Optional array of sort directions for the index
31
- * @param {string[]} [compositions] - Optional array of property names to create a composite index
32
- * @return {Function} A decorator function that can be applied to a class property
33
- * @function index
34
- * @category Property Decorators
35
- */
36
- export declare function index(): ReturnType<typeof propMetadata>;
37
- export declare function index(name: string): ReturnType<typeof propMetadata>;
38
- export declare function index(directions: OrderDirection[]): ReturnType<typeof propMetadata>;
39
- export declare function index(directions: OrderDirection[], name: string): ReturnType<typeof propMetadata>;
40
- export declare function index(directions: OrderDirection[], compositions: string[]): ReturnType<typeof propMetadata>;
41
- export declare function index(directions: readonly OrderDirection[], compositions: readonly string[]): ReturnType<typeof propMetadata>;
42
- export declare function index(directions: readonly OrderDirection[], compositions: readonly string[], name: string): ReturnType<typeof propMetadata>;
43
- export declare function index(compositions: string[]): ReturnType<typeof propMetadata>;
44
- export declare function index(compositions: string[], name: string): ReturnType<typeof propMetadata>;
45
26
  /**
46
27
  * @description Enforces uniqueness constraint during model creation and update
47
28
  * @summary Internal function used by the unique decorator to check if a property value already exists in the database
@@ -1,10 +1,10 @@
1
1
  import { afterAny, ConflictError, onCreate, onCreateUpdate, onDelete, onUpdate, generated, OperationKeys, timestamp, afterUpdate, } from "@decaf-ts/db-decorators";
2
2
  import { apply as newApply, Metadata, metadata as newMetadata, Decoration, propMetadata, prop, metadata, apply, } from "@decaf-ts/decoration";
3
3
  import { PersistenceKeys } from "./../persistence/constants.js";
4
- import { DefaultCascade, OrderDirection } from "./../repository/constants.js";
4
+ import { DefaultCascade } from "./../repository/constants.js";
5
5
  import { async, list, Model, type } from "@decaf-ts/decorator-validation";
6
6
  import { Condition } from "./../query/Condition.js";
7
- import { cascadeDelete, oneToManyOnCreate, oneToManyOnDelete, oneToManyOnUpdate, oneToOneOnCreate, oneToOneOnDelete, oneToOneOnUpdate, populate as pop, } from "./construction.js";
7
+ import { manyToManyOnCreate, manyToOneOnCreate, manyToOneOnDelete, manyToOneOnUpdate, cascadeDelete, oneToManyOnCreate, oneToManyOnDelete, oneToManyOnUpdate, oneToOneOnCreate, oneToOneOnDelete, oneToOneOnUpdate, populate as pop, } from "./construction.js";
8
8
  import { AuthorizationError } from "./../utils/errors.js";
9
9
  /**
10
10
  * @description Specifies the database table name for a model
@@ -47,38 +47,6 @@ export function column(columnName) {
47
47
  })
48
48
  .apply();
49
49
  }
50
- export function index(directions, compositions, name) {
51
- function index(directions, compositions, name) {
52
- return function index(obj, attr) {
53
- if (typeof directions === "string") {
54
- name = directions;
55
- directions = undefined;
56
- compositions = undefined;
57
- }
58
- if (typeof compositions === "string") {
59
- name = compositions;
60
- compositions = undefined;
61
- }
62
- if (!compositions && directions) {
63
- if (directions.find((d) => ![OrderDirection.ASC, OrderDirection.DSC].includes(d))) {
64
- compositions = directions;
65
- directions = undefined;
66
- }
67
- }
68
- return propMetadata(Metadata.key(`${PersistenceKeys.INDEX}${compositions && compositions?.length ? `.${compositions.join(".")}` : ""}`, attr), {
69
- directions: directions,
70
- compositions: compositions,
71
- name: name,
72
- })(obj, attr);
73
- };
74
- }
75
- return Decoration.for(PersistenceKeys.INDEX)
76
- .define({
77
- decorator: index,
78
- args: [directions, compositions, name],
79
- })
80
- .apply();
81
- }
82
50
  /**
83
51
  * @description Enforces uniqueness constraint during model creation and update
84
52
  * @summary Internal function used by the unique decorator to check if a property value already exists in the database
@@ -384,10 +352,10 @@ export function manyToOne(clazz, cascadeOptions = DefaultCascade, populate = tru
384
352
  prop(),
385
353
  relation(key, metadata),
386
354
  type([clazz, ...pkTypes]),
387
- // onCreate(oneToManyOnCreate, metadata),
388
- // onUpdate(oneToManyOnUpdate, metadata),
389
- // onDelete(oneToManyOnDelete, metadata),
390
- // afterAny(pop, metadata),
355
+ onCreate(manyToOneOnCreate, metadata),
356
+ onUpdate(manyToOneOnUpdate, metadata),
357
+ onDelete(manyToOneOnDelete, metadata),
358
+ afterAny(pop, metadata),
391
359
  ];
392
360
  return apply(...decs);
393
361
  }
@@ -444,10 +412,10 @@ export function manyToMany(clazz, cascadeOptions = DefaultCascade, populate = tr
444
412
  prop(),
445
413
  relation(key, metadata),
446
414
  list([clazz, ...pkTypes]),
447
- // onCreate(oneToManyOnCreate, metadata),
448
- // onUpdate(oneToManyOnUpdate, metadata),
415
+ onCreate(manyToManyOnCreate, metadata),
416
+ onUpdate(oneToManyOnUpdate, metadata),
449
417
  // onDelete(oneToManyOnDelete, metadata),
450
- // afterAll(populate, metadata),
418
+ afterAny(pop, metadata),
451
419
  ];
452
420
  return apply(...decs);
453
421
  }