@fjell/lib-sequelize 4.3.4 → 4.4.1

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 (150) hide show
  1. package/dist/cjs/AggregationBuilder.cjs +31 -0
  2. package/dist/cjs/Coordinate.cjs +37 -0
  3. package/dist/cjs/Definition.cjs +46 -0
  4. package/dist/cjs/EventCoordinator.cjs +35 -0
  5. package/dist/cjs/Instance.cjs +40 -0
  6. package/dist/cjs/KeyMaster.cjs +91 -0
  7. package/dist/cjs/Operations.cjs +29 -0
  8. package/dist/cjs/Options.cjs +39 -0
  9. package/dist/cjs/QueryBuilder.cjs +188 -0
  10. package/dist/cjs/ReferenceBuilder.cjs +34 -0
  11. package/dist/cjs/RowProcessor.cjs +41 -0
  12. package/dist/cjs/contained/Instance.cjs +21 -0
  13. package/dist/cjs/contained/index.cjs +10 -0
  14. package/dist/cjs/index.cjs +23 -0
  15. package/dist/cjs/logger.cjs +10 -0
  16. package/dist/cjs/ops/all.cjs +62 -0
  17. package/dist/cjs/ops/create.cjs +23 -0
  18. package/dist/cjs/ops/find.cjs +45 -0
  19. package/dist/cjs/ops/get.cjs +49 -0
  20. package/dist/cjs/ops/one.cjs +26 -0
  21. package/dist/cjs/ops/remove.cjs +72 -0
  22. package/dist/cjs/ops/update.cjs +59 -0
  23. package/dist/cjs/primary/Instance.cjs +31 -0
  24. package/dist/cjs/primary/index.cjs +10 -0
  25. package/dist/cjs/util/general.cjs +52 -0
  26. package/dist/es/AggregationBuilder.js +27 -0
  27. package/dist/es/Coordinate.js +13 -0
  28. package/dist/es/Definition.js +23 -0
  29. package/dist/es/EventCoordinator.js +30 -0
  30. package/dist/es/Instance.js +17 -0
  31. package/dist/es/KeyMaster.js +86 -0
  32. package/dist/es/Operations.js +25 -0
  33. package/dist/es/Options.js +16 -0
  34. package/dist/{src → es}/QueryBuilder.js +67 -46
  35. package/dist/es/ReferenceBuilder.js +30 -0
  36. package/dist/es/RowProcessor.js +37 -0
  37. package/dist/es/contained/Instance.js +17 -0
  38. package/dist/es/contained/index.js +2 -0
  39. package/dist/es/index.js +10 -0
  40. package/dist/es/logger.js +6 -0
  41. package/dist/{src → es}/ops/all.js +25 -14
  42. package/dist/es/ops/create.js +19 -0
  43. package/dist/es/ops/find.js +41 -0
  44. package/dist/es/ops/get.js +45 -0
  45. package/dist/es/ops/one.js +22 -0
  46. package/dist/es/ops/remove.js +68 -0
  47. package/dist/es/ops/update.js +55 -0
  48. package/dist/es/primary/Instance.js +27 -0
  49. package/dist/es/primary/index.js +2 -0
  50. package/dist/es/util/general.js +47 -0
  51. package/dist/index.cjs +810 -0
  52. package/dist/index.cjs.map +1 -0
  53. package/dist/types/AggregationBuilder.d.ts +4 -0
  54. package/dist/{src → types}/Definition.d.ts +2 -2
  55. package/dist/{src → types}/Instance.d.ts +2 -2
  56. package/dist/{src → types}/KeyMaster.d.ts +1 -2
  57. package/dist/{src → types}/Operations.d.ts +4 -4
  58. package/dist/{src → types}/Options.d.ts +15 -4
  59. package/dist/types/ReferenceBuilder.d.ts +3 -0
  60. package/dist/types/RowProcessor.d.ts +5 -0
  61. package/dist/{src → types}/contained/Instance.d.ts +2 -1
  62. package/dist/types/logger.d.ts +2 -0
  63. package/dist/types/ops/all.d.ts +5 -0
  64. package/dist/{src → types}/ops/create.d.ts +5 -4
  65. package/dist/types/ops/find.d.ts +5 -0
  66. package/dist/{src → types}/ops/get.d.ts +2 -1
  67. package/dist/types/ops/one.d.ts +5 -0
  68. package/dist/types/ops/remove.d.ts +5 -0
  69. package/dist/types/ops/update.d.ts +5 -0
  70. package/dist/{src → types}/primary/Instance.d.ts +2 -1
  71. package/dist/types/util/general.d.ts +4 -0
  72. package/package.json +45 -35
  73. package/dist/src/Coordinate.js +0 -7
  74. package/dist/src/Coordinate.js.map +0 -1
  75. package/dist/src/Definition.js +0 -16
  76. package/dist/src/Definition.js.map +0 -1
  77. package/dist/src/EventCoordinator.js +0 -56
  78. package/dist/src/EventCoordinator.js.map +0 -1
  79. package/dist/src/Instance.js +0 -14
  80. package/dist/src/Instance.js.map +0 -1
  81. package/dist/src/KeyMaster.js +0 -58
  82. package/dist/src/KeyMaster.js.map +0 -1
  83. package/dist/src/Operations.js +0 -22
  84. package/dist/src/Operations.js.map +0 -1
  85. package/dist/src/Options.js +0 -16
  86. package/dist/src/Options.js.map +0 -1
  87. package/dist/src/QueryBuilder.js.map +0 -1
  88. package/dist/src/RowProcessor.d.ts +0 -3
  89. package/dist/src/RowProcessor.js +0 -11
  90. package/dist/src/RowProcessor.js.map +0 -1
  91. package/dist/src/contained/Instance.js +0 -14
  92. package/dist/src/contained/Instance.js.map +0 -1
  93. package/dist/src/contained/index.js +0 -2
  94. package/dist/src/contained/index.js.map +0 -1
  95. package/dist/src/index.js +0 -8
  96. package/dist/src/index.js.map +0 -1
  97. package/dist/src/logger.d.ts +0 -2
  98. package/dist/src/logger.js +0 -4
  99. package/dist/src/logger.js.map +0 -1
  100. package/dist/src/ops/all.d.ts +0 -4
  101. package/dist/src/ops/all.js.map +0 -1
  102. package/dist/src/ops/create.js +0 -14
  103. package/dist/src/ops/create.js.map +0 -1
  104. package/dist/src/ops/find.d.ts +0 -4
  105. package/dist/src/ops/find.js +0 -26
  106. package/dist/src/ops/find.js.map +0 -1
  107. package/dist/src/ops/get.js +0 -36
  108. package/dist/src/ops/get.js.map +0 -1
  109. package/dist/src/ops/one.d.ts +0 -4
  110. package/dist/src/ops/one.js +0 -17
  111. package/dist/src/ops/one.js.map +0 -1
  112. package/dist/src/ops/remove.d.ts +0 -5
  113. package/dist/src/ops/remove.js +0 -56
  114. package/dist/src/ops/remove.js.map +0 -1
  115. package/dist/src/ops/update.d.ts +0 -4
  116. package/dist/src/ops/update.js +0 -49
  117. package/dist/src/ops/update.js.map +0 -1
  118. package/dist/src/primary/Instance.js +0 -17
  119. package/dist/src/primary/Instance.js.map +0 -1
  120. package/dist/src/primary/index.js +0 -2
  121. package/dist/src/primary/index.js.map +0 -1
  122. package/eslint.config.mjs +0 -70
  123. package/src/Coordinate.ts +0 -16
  124. package/src/Definition.ts +0 -49
  125. package/src/EventCoordinator.ts +0 -103
  126. package/src/Instance.ts +0 -45
  127. package/src/KeyMaster.ts +0 -90
  128. package/src/Operations.ts +0 -42
  129. package/src/Options.ts +0 -41
  130. package/src/QueryBuilder.ts +0 -208
  131. package/src/RowProcessor.ts +0 -23
  132. package/src/contained/Instance.ts +0 -45
  133. package/src/contained/index.ts +0 -1
  134. package/src/index.ts +0 -7
  135. package/src/logger.ts +0 -5
  136. package/src/ops/all.ts +0 -76
  137. package/src/ops/create.ts +0 -40
  138. package/src/ops/find.ts +0 -49
  139. package/src/ops/get.ts +0 -67
  140. package/src/ops/one.ts +0 -37
  141. package/src/ops/remove.ts +0 -81
  142. package/src/ops/update.ts +0 -78
  143. package/src/primary/Instance.ts +0 -41
  144. package/src/primary/index.ts +0 -1
  145. /package/dist/{src → types}/Coordinate.d.ts +0 -0
  146. /package/dist/{src → types}/EventCoordinator.d.ts +0 -0
  147. /package/dist/{src → types}/QueryBuilder.d.ts +0 -0
  148. /package/dist/{src → types}/contained/index.d.ts +0 -0
  149. /package/dist/{src → types}/index.d.ts +0 -0
  150. /package/dist/{src → types}/primary/index.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC"}
@@ -1,2 +0,0 @@
1
- declare const LibLogger: import("@fjell/logging").Logger;
2
- export default LibLogger;
@@ -1,4 +0,0 @@
1
- import Logging from '@fjell/logging';
2
- const LibLogger = Logging.getLogger('@fjell/lib-sequelize');
3
- export default LibLogger;
4
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAErC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;AAE5D,eAAe,SAAS,CAAC"}
@@ -1,4 +0,0 @@
1
- import { Definition } from "../Definition";
2
- import { Item, ItemQuery, LocKeyArray } from "@fjell/core";
3
- import { ModelStatic } from "sequelize";
4
- export declare const getAllOperation: <V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(models: ModelStatic<any>[], definition: Definition<V, S, L1, L2, L3, L4, L5>) => (itemQuery: ItemQuery, locations?: LocKeyArray<L1, L2, L3, L4, L5> | [] | undefined) => Promise<V[]>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"all.js","sourceRoot":"","sources":["../../../src/ops/all.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,SAAS,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAA4B,EAAE,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAExD,MAAM,CAAC,MAAM,eAAe,GAAG,CAQ7B,MAA0B,EAAE,UAAgD,EAAE,EAAE;IAEhF,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;IAElC,eAAe;IACf,MAAM,GAAG,GAAG,KAAK,EACf,SAAoB,EACpB,SAA4D,EAE9C,EAAE;QAChB,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAChD,MAAM,GAAG,GAAyC,SAAS,IAAI,EAAE,CAAC;QAElE,kCAAkC;QAClC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,0BAA0B;QAC1B,aAAa;QACb,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAExB,0BAA0B;QAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAE7C,8DAA8D;QAC9D,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAG,CAAC;YACtB,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,EAAG,CAAC;gBACpC,MAAM,WAAW,GAA0B,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBAC1E,OAAO,CAAC,KAAK,GAAG;oBACd,GAAG,OAAO,CAAC,KAAK;oBAChB,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;wBACxB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;qBACnB;iBACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,oEAAoE,EAAE,UAAU,CAAC,CAAC;gBAC/F,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAErE,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEnD,4DAA4D;QAE5D,sBAAsB;QACtB,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAQ,CAAC;IAC/G,CAAC,CAAA;IAED,OAAO,GAAG,CAAC;AAEb,CAAC,CAAA"}
@@ -1,14 +0,0 @@
1
- import LibLogger from '../logger';
2
- const logger = LibLogger.get('sequelize', 'ops', 'create');
3
- export const getCreateOperation = (
4
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
5
- models,
6
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
7
- definition) => {
8
- const create = async (item, options) => {
9
- logger.default('Create', { item, options });
10
- throw new Error('Not implemented');
11
- };
12
- return create;
13
- };
14
- //# sourceMappingURL=create.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/ops/create.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,UAAU,CAAC;AAIjC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,kBAAkB,GAAG;AAS9B,6DAA6D;AAC7D,MAA0B;AAC1B,6DAA6D;AAC7D,UAAgD,EAChD,EAAE;IAEJ,MAAM,MAAM,GAAG,KAAK,EAClB,IAA+C,EAC/C,OAMC,EACW,EAAE;QACd,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAE5C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC,CAAA;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAA"}
@@ -1,4 +0,0 @@
1
- import { Item, LocKeyArray } from "@fjell/core";
2
- import { Definition } from "../Definition";
3
- import { ModelStatic } from "sequelize";
4
- export declare const getFindOperation: <V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(models: ModelStatic<any>[], definition: Definition<V, S, L1, L2, L3, L4, L5>) => (finder: string, finderParams: Record<string, string | number | boolean | Date | Array<string | number | boolean | Date>>, locations?: LocKeyArray<L1, L2, L3, L4, L5> | []) => Promise<V[]>;
@@ -1,26 +0,0 @@
1
- import LibLogger from '../logger';
2
- const logger = LibLogger.get('sequelize', 'ops', 'find');
3
- export const getFindOperation = (models, definition) => {
4
- const { options } = definition;
5
- const find = async (finder, finderParams, locations) => {
6
- logger.default('Find', { finder, finderParams, locations });
7
- // Note that we execute the createFinders function here because we want to make sure we're always getting the
8
- // most up to date methods.
9
- if (options.finders && options.finders[finder]) {
10
- const finderMethod = options.finders[finder];
11
- if (finderMethod) {
12
- return finderMethod(finderParams, locations);
13
- }
14
- else {
15
- logger.error(`Finder %s not found`, finder);
16
- throw new Error(`Finder ${finder} not found`);
17
- }
18
- }
19
- else {
20
- logger.error(`No finders have been defined for this lib`);
21
- throw new Error(`No finders found`);
22
- }
23
- };
24
- return find;
25
- };
26
- //# sourceMappingURL=find.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"find.js","sourceRoot":"","sources":["../../../src/ops/find.ts"],"names":[],"mappings":"AAGA,OAAO,SAAS,MAAM,UAAU,CAAC;AAGjC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAS5B,MAA0B,EAC1B,UAAgD,EAChD,EAAE;IAEJ,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;IAE/B,MAAM,IAAI,GAAG,KAAK,EAChB,MAAc,EACd,YAAwG,EACxG,SAAgD,EAElC,EAAE;QAChB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC;QAE5D,6GAA6G;QAC7G,2BAA2B;QAC3B,IAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,MAAM,YAAY,GAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,YAAY,CAAC,YAAY,EAAE,SAAS,CAAiB,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;gBAC5C,MAAM,IAAI,KAAK,CAAC,UAAU,MAAM,YAAY,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CAAA;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAA"}
@@ -1,36 +0,0 @@
1
- import { isComKey, isPriKey, isValidItemKey, validateKeys } from '@fjell/core';
2
- import LibLogger from '../logger';
3
- import { processRow } from '../RowProcessor';
4
- import { NotFoundError } from '@fjell/lib';
5
- const logger = LibLogger.get('sequelize', 'ops', 'get');
6
- export const getGetOperation = (models, definition) => {
7
- const { coordinate } = definition;
8
- const { kta } = coordinate;
9
- const get = async (key) => {
10
- logger.default('Get', { key });
11
- if (!isValidItemKey(key)) {
12
- logger.error('Key for Get is not a valid ItemKey: %j', key);
13
- throw new Error('Key for Get is not a valid ItemKey');
14
- }
15
- const itemKey = key;
16
- // @ts-ignore
17
- const model = models[0];
18
- let item;
19
- if (isPriKey(itemKey)) {
20
- item = await model.findByPk(itemKey.pk);
21
- }
22
- else if (isComKey(itemKey)) {
23
- const comKey = itemKey;
24
- // TODO: This should probably interrogate the model?
25
- item = await model.findOne({ where: { id: comKey.pk, [comKey?.loc[0]?.kt + 'Id']: comKey?.loc[0]?.lk } });
26
- }
27
- if (!item) {
28
- throw new NotFoundError('get', coordinate, key);
29
- }
30
- else {
31
- return validateKeys(processRow(item, kta), kta);
32
- }
33
- };
34
- return get;
35
- };
36
- //# sourceMappingURL=get.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/ops/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,QAAQ,EACR,cAAc,EAGd,YAAY,EACb,MAAM,aAAa,CAAC;AAErB,OAAO,SAAS,MAAM,UAAU,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAExD,MAAM,CAAC,MAAM,eAAe,GAAG,CAS3B,MAA+B,EAC/B,UAAgD,EAChD,EAAE;IAEJ,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;IAClC,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;IAE3B,MAAM,GAAG,GAAG,KAAK,EACf,GAA8C,EAClC,EAAE;QACd,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC;QAEpB,aAAa;QACb,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAExB,IAAI,IAAI,CAAC;QAET,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAG,CAAC;YACvB,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAE,OAAqB,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC;aAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAG,CAAC;YAC9B,MAAM,MAAM,GAAG,OAAwC,CAAC;YACxD,oDAAoD;YACpD,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5G,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,aAAa,CAAwB,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,OAAO,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAM,CAAC;QACvD,CAAC;IACH,CAAC,CAAA;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAA"}
@@ -1,4 +0,0 @@
1
- import { Item, ItemQuery, LocKeyArray } from "@fjell/core";
2
- import { Definition } from "../Definition";
3
- import { ModelStatic } from "sequelize";
4
- export declare const getOneOperation: <V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(models: ModelStatic<any>[], definition: Definition<V, S, L1, L2, L3, L4, L5>) => (itemQuery: ItemQuery, locations?: LocKeyArray<L1, L2, L3, L4, L5> | []) => Promise<V | null>;
@@ -1,17 +0,0 @@
1
- import LibLogger from '../logger';
2
- import { getAllOperation } from "./all";
3
- const logger = LibLogger.get('sequelize', 'ops', 'one');
4
- export const getOneOperation = (models, definition) => {
5
- const one = async (itemQuery, locations = []) => {
6
- logger.default('One', { itemQuery, locations });
7
- const items = await getAllOperation(models, definition)(itemQuery, locations);
8
- if (items.length > 0) {
9
- return items[0];
10
- }
11
- else {
12
- return null;
13
- }
14
- };
15
- return one;
16
- };
17
- //# sourceMappingURL=one.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"one.js","sourceRoot":"","sources":["../../../src/ops/one.ts"],"names":[],"mappings":"AAGA,OAAO,SAAS,MAAM,UAAU,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAExC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAExD,MAAM,CAAC,MAAM,eAAe,GAAG,CAS3B,MAA0B,EAC1B,UAAgD,EAChD,EAAE;IACJ,MAAM,GAAG,GAAG,KAAK,EACf,SAAoB,EACpB,YAAkD,EAAE,EACjC,EAAE;QACrB,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAEhD,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC9E,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,CAAC,CAAM,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAA;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAA"}
@@ -1,5 +0,0 @@
1
- import { ComKey, PriKey } from "@fjell/core";
2
- import { Item } from "@fjell/core";
3
- import { Definition } from "../Definition";
4
- import { ModelStatic } from "sequelize";
5
- export declare const getRemoveOperation: <V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(models: ModelStatic<any>[], definition: Definition<V, S, L1, L2, L3, L4, L5>) => (key: PriKey<S> | ComKey<S, L1, L2, L3, L4, L5>) => Promise<V>;
@@ -1,56 +0,0 @@
1
- import { isValidItemKey } from "@fjell/core";
2
- import { abbrevIK, isComKey, isPriKey } from "@fjell/core";
3
- import { populateEvents } from "../EventCoordinator";
4
- import { populateKey } from "../KeyMaster";
5
- import LibLogger from '../logger';
6
- const logger = LibLogger.get('sequelize', 'ops', 'remove');
7
- export const getRemoveOperation = (models, definition) => {
8
- const { coordinate, options } = definition;
9
- const { kta } = coordinate;
10
- const remove = async (key) => {
11
- logger.default('Remove', { key });
12
- if (!isValidItemKey(key)) {
13
- logger.error('Key for Remove is not a valid ItemKey: %j', key);
14
- throw new Error('Key for Remove is not a valid ItemKey');
15
- }
16
- // @ts-ignore
17
- const model = models[0];
18
- let item;
19
- let returnItem;
20
- logger.debug('remove: %s', abbrevIK(key));
21
- if (isPriKey(key)) {
22
- item = await model.findByPk(key.pk);
23
- }
24
- else if (isComKey(key)) {
25
- const comKey = key;
26
- item = await model.findOne({ where: { id: comKey.pk, [comKey?.loc[0]?.kt + 'Id']: comKey?.loc[0]?.lk } });
27
- }
28
- const isDeletedAttribute = model.getAttributes().isDeleted;
29
- const deletedAtAttribute = model.getAttributes().deletedAt;
30
- if (isDeletedAttribute || deletedAtAttribute) {
31
- if (model.getAttributes().isDeleted) {
32
- item.isDeleted = true;
33
- }
34
- if (model.getAttributes().deletedAt) {
35
- item.deletedAt = new Date();
36
- }
37
- // Save the object
38
- await item?.save();
39
- returnItem = item?.get({ plain: true });
40
- returnItem = populateKey(returnItem, kta);
41
- returnItem = populateEvents(returnItem);
42
- }
43
- else if (options.deleteOnRemove) {
44
- await item?.destroy();
45
- returnItem = item?.get({ plain: true });
46
- returnItem = populateKey(returnItem, kta);
47
- returnItem = populateEvents(returnItem);
48
- }
49
- else {
50
- throw new Error('No deletedAt or isDeleted attribute found in model, and deleteOnRemove is not set');
51
- }
52
- return returnItem;
53
- };
54
- return remove;
55
- };
56
- //# sourceMappingURL=remove.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/ops/remove.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { ComKey, Item, PriKey, TypesProperties } from "@fjell/core";
2
- import { Definition } from "../Definition";
3
- import { ModelStatic } from "sequelize";
4
- export declare const getUpdateOperation: <V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(models: ModelStatic<any>[], definition: Definition<V, S, L1, L2, L3, L4, L5>) => (key: PriKey<S> | ComKey<S, L1, L2, L3, L4, L5>, item: TypesProperties<V, S, L1, L2, L3, L4, L5>) => Promise<V>;
@@ -1,49 +0,0 @@
1
- import { abbrevIK, isComKey } from "@fjell/core";
2
- import { isPriKey } from "@fjell/core";
3
- import { populateEvents, removeEvents } from "../EventCoordinator";
4
- import { populateKey, removeKey } from "../KeyMaster";
5
- import LibLogger from '../logger';
6
- import { NotFoundError } from "@fjell/lib";
7
- const logger = LibLogger.get('sequelize', 'ops', 'update');
8
- export const getUpdateOperation = (models, definition) => {
9
- const update = async (key, item) => {
10
- const { coordinate } = definition;
11
- const { kta } = coordinate;
12
- logger.debug('update: %s, %j', abbrevIK(key), item);
13
- // Find the object we're updating
14
- // @ts-ignore
15
- const model = models[0];
16
- let response;
17
- if (isPriKey(key)) {
18
- // Find the model by using the PK
19
- const priKey = key;
20
- response = await model.findByPk(priKey.pk);
21
- }
22
- else if (isComKey(key)) {
23
- const comKey = key;
24
- // Find the model by using both of the identifiers.
25
- response = await model.findOne({ where: {
26
- [comKey?.loc[0]?.kt + 'Id']: comKey?.loc[0]?.lk,
27
- id: comKey?.pk
28
- } });
29
- }
30
- if (response) {
31
- // Remove the key and events
32
- let updateProps = removeKey(item);
33
- updateProps = removeEvents(item);
34
- // Update the object
35
- response = { ...response, ...updateProps };
36
- await response?.save();
37
- // Populate the key and events
38
- let returnItem = response?.get({ plain: true });
39
- returnItem = populateKey(returnItem, kta);
40
- returnItem = populateEvents(returnItem);
41
- return returnItem;
42
- }
43
- else {
44
- throw new NotFoundError('update', coordinate, key);
45
- }
46
- };
47
- return update;
48
- };
49
- //# sourceMappingURL=update.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/ops/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAkB,MAAM,aAAa,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKvC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,SAAS,MAAM,UAAU,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAS9B,MAA0B,EAC1B,UAAgD,EAChD,EAAE;IAEJ,MAAM,MAAM,GAAG,KAAK,EAClB,GAA8C,EAC9C,IAA+C,EACnC,EAAE;QACd,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;QAClC,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;QAE3B,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QACpD,iCAAiC;QACjC,aAAa;QACb,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAExB,IAAI,QAAQ,CAAC;QAEb,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAG,CAAC;YACrB,iCAAiC;YAC/B,MAAM,MAAM,GAAG,GAAgB,CAAC;YAChC,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAG,CAAC;YAC1B,MAAM,MAAM,GAAG,GAAoC,CAAC;YACpD,mDAAmD;YACnD,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE;oBACtC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC/C,EAAE,EAAE,MAAM,EAAE,EAAE;iBACf,EAAE,CAAC,CAAC;QACP,CAAC;QAED,IAAI,QAAQ,EAAG,CAAC;YAEd,4BAA4B;YAC5B,IAAI,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;YACjC,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YAEjC,oBAAoB;YACpB,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;YAC3C,MAAM,QAAQ,EAAE,IAAI,EAAE,CAAC;YAEvB,8BAA8B;YAC9B,IAAI,UAAU,GAAG,QAAQ,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAA0C,CAAC;YACzF,UAAU,GAAG,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC1C,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;YACxC,OAAO,UAAe,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,aAAa,CAAwB,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QAC5E,CAAC;IAEH,CAAC,CAAA;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAA"}
@@ -1,17 +0,0 @@
1
- import { Primary } from '@fjell/lib';
2
- import { createDefinition } from '../Definition';
3
- import { createOperations } from '../Operations';
4
- import LibLogger from '../logger';
5
- const logger = LibLogger.get('lib-sequelize', 'primary', 'instance');
6
- // eslint-disable-next-line max-params
7
- export function createInstance(keyType, models, libOptions = {}, scopes = []) {
8
- logger.debug('createInstance', { keyType, models, libOptions, scopes });
9
- const definition = createDefinition([keyType], scopes, libOptions);
10
- const operations = createOperations(models, definition);
11
- return {
12
- definition,
13
- operations: Primary.wrapOperations(operations, definition),
14
- models
15
- };
16
- }
17
- //# sourceMappingURL=Instance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Instance.js","sourceRoot":"","sources":["../../../src/primary/Instance.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIhD,OAAO,SAAS,MAAM,UAAU,CAAC;AAEjC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AASrE,sCAAsC;AACtC,MAAM,UAAU,cAAc,CAI5B,OAAU,EACV,MAA0B,EAC1B,aAA4B,EAAE,EAC9B,SAAmB,EAAE;IAErB,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAExD,OAAO;QACL,UAAU;QACV,UAAU,EAAE,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC;QAC1D,MAAM;KACW,CAAC;AAEtB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './Instance';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/primary/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
package/eslint.config.mjs DELETED
@@ -1,70 +0,0 @@
1
- import typescriptEslint from "@typescript-eslint/eslint-plugin";
2
- import tsParser from "@typescript-eslint/parser";
3
- import path from "node:path";
4
- import { fileURLToPath } from "node:url";
5
- import js from "@eslint/js";
6
- import { FlatCompat } from "@eslint/eslintrc";
7
-
8
- const __filename = fileURLToPath(import.meta.url);
9
- const __dirname = path.dirname(__filename);
10
- const compat = new FlatCompat({
11
- baseDirectory: __dirname,
12
- recommendedConfig: js.configs.recommended,
13
- allConfig: js.configs.all
14
- });
15
-
16
- export default [{
17
- ignores: ["**/dist", "**/node_modules"],
18
- }, ...compat.extends("plugin:@typescript-eslint/recommended"), {
19
- plugins: {
20
- "@typescript-eslint": typescriptEslint,
21
- },
22
-
23
- languageOptions: {
24
- parser: tsParser,
25
- },
26
-
27
- rules: {
28
- "@typescript-eslint/no-unused-expressions": "off",
29
- "no-console": 0,
30
- "no-unused-vars": "off",
31
-
32
- "max-len": ["error", {
33
- code: 120,
34
- }],
35
-
36
- "max-depth": ["error", 4],
37
- "max-params": ["error", 4],
38
- "max-lines": ["error", 500],
39
-
40
- "no-multiple-empty-lines": ["error", {
41
- max: 1,
42
- maxEOF: 1,
43
- }],
44
-
45
- "no-trailing-spaces": ["error", {
46
- skipBlankLines: true,
47
- }],
48
-
49
- indent: ["error", 2, {
50
- SwitchCase: 1,
51
- }],
52
-
53
- "sort-imports": ["error", {
54
- ignoreCase: true,
55
- ignoreDeclarationSort: true,
56
- ignoreMemberSort: false,
57
- memberSyntaxSortOrder: ["none", "all", "multiple", "single"],
58
- }],
59
-
60
- "no-var": "error",
61
- "no-undefined": "error",
62
- "@typescript-eslint/no-unused-vars": "error",
63
- "@typescript-eslint/ban-ts-comment": "off",
64
- "@typescript-eslint/no-explicit-any": "off",
65
-
66
- "no-restricted-imports": ["error", {
67
- patterns: ["..*", "src/*"],
68
- }],
69
- },
70
- }];
package/src/Coordinate.ts DELETED
@@ -1,16 +0,0 @@
1
- import { ItemTypeArray } from '@fjell/core';
2
- import * as Library from '@fjell/lib';
3
-
4
- export const SCOPE_SEQUELIZE = 'sequelize';
5
-
6
- export const createCoordinate = <
7
- S extends string,
8
- L1 extends string = never,
9
- L2 extends string = never,
10
- L3 extends string = never,
11
- L4 extends string = never,
12
- L5 extends string = never
13
- >(kta: ItemTypeArray<S, L1, L2, L3, L4, L5>, scopes?: string[]) => {
14
- const coordinate = Library.createCoordinate(kta,[SCOPE_SEQUELIZE, ...(scopes || [])])
15
- return coordinate;
16
- };
package/src/Definition.ts DELETED
@@ -1,49 +0,0 @@
1
- import {
2
- Item,
3
- ItemTypeArray
4
- } from '@fjell/core';
5
-
6
- import * as Library from '@fjell/lib';
7
- import { createCoordinate } from './Coordinate';
8
- import { createOptions } from './Options';
9
- import { Options } from './Options';
10
- import LibLogger from './logger';
11
-
12
- const logger = LibLogger.get('lib-sequelize', 'Definition');
13
-
14
- export interface Definition<
15
- V extends Item<S, L1, L2, L3, L4, L5>,
16
- S extends string,
17
- L1 extends string = never,
18
- L2 extends string = never,
19
- L3 extends string = never,
20
- L4 extends string = never,
21
- L5 extends string = never
22
- > extends Library.Definition<V, S, L1, L2, L3, L4, L5> {
23
- options: Options<V, S, L1, L2, L3, L4, L5>;
24
- }
25
-
26
- export function createDefinition<
27
- V extends Item<S, L1, L2, L3, L4, L5>,
28
- S extends string,
29
- L1 extends string = never,
30
- L2 extends string = never,
31
- L3 extends string = never,
32
- L4 extends string = never,
33
- L5 extends string = never
34
- >(
35
- kta: ItemTypeArray<S, L1, L2, L3, L4, L5>,
36
- scopes: string[],
37
- libOptions?: Options<V, S, L1, L2, L3, L4, L5>,
38
- ): Definition<V, S, L1, L2, L3, L4, L5> {
39
- logger.debug('createDefinition', { kta, scopes, libOptions });
40
- const coordinate = createCoordinate(kta, scopes);
41
- const options = createOptions(libOptions);
42
-
43
- const definition = Library.createDefinition(coordinate, options);
44
-
45
- return {
46
- ...definition,
47
- options,
48
- }
49
- }
@@ -1,103 +0,0 @@
1
- import {
2
- Evented,
3
- ItemProperties,
4
- ManagedEvents
5
- } from '@fjell/core';
6
- import deepmerge from 'deepmerge';
7
-
8
- import LibLogger from '@/logger';
9
-
10
- const logger = LibLogger.get("sequelize", "EventCoordinator");
11
-
12
- export const createEvents = <
13
- S extends string,
14
- L1 extends string = never,
15
- L2 extends string = never,
16
- L3 extends string = never,
17
- L4 extends string = never,
18
- L5 extends string = never
19
- >(item: ItemProperties<S, L1, L2, L3, L4, L5>):
20
- ItemProperties<S, L1, L2, L3, L4, L5> => {
21
- logger.default('Creating Events', { item });
22
- const currentDate = new Date();
23
-
24
- let events = item.events;
25
-
26
- if (events) {
27
- if (!events.created) {
28
- events = deepmerge(events, { created: { at: currentDate } });
29
- }
30
- if (!events.updated) {
31
- events = deepmerge(events, { updated: { at: currentDate } });
32
- }
33
- if (!events.deleted) {
34
- events = deepmerge(events, { deleted: { at: null } });
35
- }
36
-
37
- } else {
38
- events = {
39
- created: { at: currentDate },
40
- updated: { at: currentDate },
41
- deleted: { at: null },
42
- };
43
- }
44
-
45
- return deepmerge(item, { events }) as
46
- ItemProperties<S, L1, L2, L3, L4, L5>;
47
- }
48
-
49
- export const updateEvents = <
50
- S extends string,
51
- L1 extends string = never,
52
- L2 extends string = never,
53
- L3 extends string = never,
54
- L4 extends string = never,
55
- L5 extends string = never
56
- >(item: ItemProperties<S, L1, L2, L3, L4, L5>):
57
- ItemProperties<S, L1, L2, L3, L4, L5> => {
58
- logger.default('Updating Events', { item });
59
- const currentDate = new Date();
60
- const events: Evented = {
61
- updated: { at: currentDate },
62
- };
63
-
64
- // TODO: This is clean-up code, we should remove it
65
- // If the event lacks a created data, let's just insert it here...
66
- if (!item.events || !item.events.created || !item.events.created.at) {
67
- events.created = { at: currentDate };
68
- }
69
-
70
- return deepmerge(item, { events }) as ItemProperties<S, L1, L2, L3, L4, L5>;
71
- }
72
- //#endregion
73
-
74
- export const populateEvents = <
75
- S extends string,
76
- L1 extends string = never,
77
- L2 extends string = never,
78
- L3 extends string = never,
79
- L4 extends string = never,
80
- L5 extends string = never
81
- >(item: ItemProperties<S, L1, L2, L3, L4, L5>): ItemProperties<S, L1, L2, L3, L4, L5> => {
82
- const events: ManagedEvents = {
83
- created: { at: item.createdAt },
84
- updated: { at: item.updatedAt },
85
- deleted: { at: null }
86
- };
87
- item.events = events;
88
- return item;
89
- }
90
-
91
- export const removeEvents = <
92
- S extends string,
93
- L1 extends string = never,
94
- L2 extends string = never,
95
- L3 extends string = never,
96
- L4 extends string = never,
97
- L5 extends string = never
98
- >(item: ItemProperties<S, L1, L2, L3, L4, L5>): ItemProperties<S, L1, L2, L3, L4, L5> => {
99
- logger.default('Removing Events', { item });
100
- delete item.events;
101
- return item;
102
- }
103
-
package/src/Instance.ts DELETED
@@ -1,45 +0,0 @@
1
- import * as Library from '@fjell/lib';
2
- import { Item, ItemTypeArray } from '@fjell/core';
3
- import { createDefinition } from './Definition';
4
- import { createOperations } from './Operations';
5
- import { ModelStatic } from 'sequelize';
6
- import { Options } from './Options';
7
-
8
- export interface Instance<
9
- V extends Item<S, L1, L2, L3, L4, L5>,
10
- S extends string,
11
- L1 extends string = never,
12
- L2 extends string = never,
13
- L3 extends string = never,
14
- L4 extends string = never,
15
- L5 extends string = never
16
- > extends Library.Instance<V, S, L1, L2, L3, L4, L5> {
17
- models: ModelStatic<any>[];
18
- }
19
-
20
- // eslint-disable-next-line max-params
21
- export function createInstance<
22
- V extends Item<S, L1, L2, L3, L4, L5>,
23
- S extends string,
24
- L1 extends string = never,
25
- L2 extends string = never,
26
- L3 extends string = never,
27
- L4 extends string = never,
28
- L5 extends string = never
29
- >(
30
- keyTypes: ItemTypeArray<S, L1, L2, L3, L4, L5>,
31
- models: ModelStatic<any>[],
32
- libOptions: Options<V, S, L1, L2, L3, L4, L5> = {},
33
- scopes: string[] = [],
34
- ): Instance<V, S, L1, L2, L3, L4, L5> {
35
-
36
- const definition = createDefinition(keyTypes, scopes, libOptions);
37
- const operations = createOperations(models, definition);
38
-
39
- return {
40
- definition,
41
- operations: Library.wrapOperations(operations, definition),
42
- models
43
- }
44
-
45
- }