@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.
- package/dist/cjs/AggregationBuilder.cjs +31 -0
- package/dist/cjs/Coordinate.cjs +37 -0
- package/dist/cjs/Definition.cjs +46 -0
- package/dist/cjs/EventCoordinator.cjs +35 -0
- package/dist/cjs/Instance.cjs +40 -0
- package/dist/cjs/KeyMaster.cjs +91 -0
- package/dist/cjs/Operations.cjs +29 -0
- package/dist/cjs/Options.cjs +39 -0
- package/dist/cjs/QueryBuilder.cjs +188 -0
- package/dist/cjs/ReferenceBuilder.cjs +34 -0
- package/dist/cjs/RowProcessor.cjs +41 -0
- package/dist/cjs/contained/Instance.cjs +21 -0
- package/dist/cjs/contained/index.cjs +10 -0
- package/dist/cjs/index.cjs +23 -0
- package/dist/cjs/logger.cjs +10 -0
- package/dist/cjs/ops/all.cjs +62 -0
- package/dist/cjs/ops/create.cjs +23 -0
- package/dist/cjs/ops/find.cjs +45 -0
- package/dist/cjs/ops/get.cjs +49 -0
- package/dist/cjs/ops/one.cjs +26 -0
- package/dist/cjs/ops/remove.cjs +72 -0
- package/dist/cjs/ops/update.cjs +59 -0
- package/dist/cjs/primary/Instance.cjs +31 -0
- package/dist/cjs/primary/index.cjs +10 -0
- package/dist/cjs/util/general.cjs +52 -0
- package/dist/es/AggregationBuilder.js +27 -0
- package/dist/es/Coordinate.js +13 -0
- package/dist/es/Definition.js +23 -0
- package/dist/es/EventCoordinator.js +30 -0
- package/dist/es/Instance.js +17 -0
- package/dist/es/KeyMaster.js +86 -0
- package/dist/es/Operations.js +25 -0
- package/dist/es/Options.js +16 -0
- package/dist/{src → es}/QueryBuilder.js +67 -46
- package/dist/es/ReferenceBuilder.js +30 -0
- package/dist/es/RowProcessor.js +37 -0
- package/dist/es/contained/Instance.js +17 -0
- package/dist/es/contained/index.js +2 -0
- package/dist/es/index.js +10 -0
- package/dist/es/logger.js +6 -0
- package/dist/{src → es}/ops/all.js +25 -14
- package/dist/es/ops/create.js +19 -0
- package/dist/es/ops/find.js +41 -0
- package/dist/es/ops/get.js +45 -0
- package/dist/es/ops/one.js +22 -0
- package/dist/es/ops/remove.js +68 -0
- package/dist/es/ops/update.js +55 -0
- package/dist/es/primary/Instance.js +27 -0
- package/dist/es/primary/index.js +2 -0
- package/dist/es/util/general.js +47 -0
- package/dist/index.cjs +810 -0
- package/dist/index.cjs.map +1 -0
- package/dist/types/AggregationBuilder.d.ts +4 -0
- package/dist/{src → types}/Definition.d.ts +2 -2
- package/dist/{src → types}/Instance.d.ts +2 -2
- package/dist/{src → types}/KeyMaster.d.ts +1 -2
- package/dist/{src → types}/Operations.d.ts +4 -4
- package/dist/{src → types}/Options.d.ts +15 -4
- package/dist/types/ReferenceBuilder.d.ts +3 -0
- package/dist/types/RowProcessor.d.ts +5 -0
- package/dist/{src → types}/contained/Instance.d.ts +2 -1
- package/dist/types/logger.d.ts +2 -0
- package/dist/types/ops/all.d.ts +5 -0
- package/dist/{src → types}/ops/create.d.ts +5 -4
- package/dist/types/ops/find.d.ts +5 -0
- package/dist/{src → types}/ops/get.d.ts +2 -1
- package/dist/types/ops/one.d.ts +5 -0
- package/dist/types/ops/remove.d.ts +5 -0
- package/dist/types/ops/update.d.ts +5 -0
- package/dist/{src → types}/primary/Instance.d.ts +2 -1
- package/dist/types/util/general.d.ts +4 -0
- package/package.json +45 -35
- package/dist/src/Coordinate.js +0 -7
- package/dist/src/Coordinate.js.map +0 -1
- package/dist/src/Definition.js +0 -16
- package/dist/src/Definition.js.map +0 -1
- package/dist/src/EventCoordinator.js +0 -56
- package/dist/src/EventCoordinator.js.map +0 -1
- package/dist/src/Instance.js +0 -14
- package/dist/src/Instance.js.map +0 -1
- package/dist/src/KeyMaster.js +0 -58
- package/dist/src/KeyMaster.js.map +0 -1
- package/dist/src/Operations.js +0 -22
- package/dist/src/Operations.js.map +0 -1
- package/dist/src/Options.js +0 -16
- package/dist/src/Options.js.map +0 -1
- package/dist/src/QueryBuilder.js.map +0 -1
- package/dist/src/RowProcessor.d.ts +0 -3
- package/dist/src/RowProcessor.js +0 -11
- package/dist/src/RowProcessor.js.map +0 -1
- package/dist/src/contained/Instance.js +0 -14
- package/dist/src/contained/Instance.js.map +0 -1
- package/dist/src/contained/index.js +0 -2
- package/dist/src/contained/index.js.map +0 -1
- package/dist/src/index.js +0 -8
- package/dist/src/index.js.map +0 -1
- package/dist/src/logger.d.ts +0 -2
- package/dist/src/logger.js +0 -4
- package/dist/src/logger.js.map +0 -1
- package/dist/src/ops/all.d.ts +0 -4
- package/dist/src/ops/all.js.map +0 -1
- package/dist/src/ops/create.js +0 -14
- package/dist/src/ops/create.js.map +0 -1
- package/dist/src/ops/find.d.ts +0 -4
- package/dist/src/ops/find.js +0 -26
- package/dist/src/ops/find.js.map +0 -1
- package/dist/src/ops/get.js +0 -36
- package/dist/src/ops/get.js.map +0 -1
- package/dist/src/ops/one.d.ts +0 -4
- package/dist/src/ops/one.js +0 -17
- package/dist/src/ops/one.js.map +0 -1
- package/dist/src/ops/remove.d.ts +0 -5
- package/dist/src/ops/remove.js +0 -56
- package/dist/src/ops/remove.js.map +0 -1
- package/dist/src/ops/update.d.ts +0 -4
- package/dist/src/ops/update.js +0 -49
- package/dist/src/ops/update.js.map +0 -1
- package/dist/src/primary/Instance.js +0 -17
- package/dist/src/primary/Instance.js.map +0 -1
- package/dist/src/primary/index.js +0 -2
- package/dist/src/primary/index.js.map +0 -1
- package/eslint.config.mjs +0 -70
- package/src/Coordinate.ts +0 -16
- package/src/Definition.ts +0 -49
- package/src/EventCoordinator.ts +0 -103
- package/src/Instance.ts +0 -45
- package/src/KeyMaster.ts +0 -90
- package/src/Operations.ts +0 -42
- package/src/Options.ts +0 -41
- package/src/QueryBuilder.ts +0 -208
- package/src/RowProcessor.ts +0 -23
- package/src/contained/Instance.ts +0 -45
- package/src/contained/index.ts +0 -1
- package/src/index.ts +0 -7
- package/src/logger.ts +0 -5
- package/src/ops/all.ts +0 -76
- package/src/ops/create.ts +0 -40
- package/src/ops/find.ts +0 -49
- package/src/ops/get.ts +0 -67
- package/src/ops/one.ts +0 -37
- package/src/ops/remove.ts +0 -81
- package/src/ops/update.ts +0 -78
- package/src/primary/Instance.ts +0 -41
- package/src/primary/index.ts +0 -1
- /package/dist/{src → types}/Coordinate.d.ts +0 -0
- /package/dist/{src → types}/EventCoordinator.d.ts +0 -0
- /package/dist/{src → types}/QueryBuilder.d.ts +0 -0
- /package/dist/{src → types}/contained/index.d.ts +0 -0
- /package/dist/{src → types}/index.d.ts +0 -0
- /package/dist/{src → types}/primary/index.d.ts +0 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { abbrevIK, isPriKey, isComKey, validateKeys } from '@fjell/core';
|
|
2
|
+
import { removeEvents } from '../EventCoordinator.js';
|
|
3
|
+
import { removeKey } from '../KeyMaster.js';
|
|
4
|
+
import LibLogger from '../logger.js';
|
|
5
|
+
import { processRow } from '../RowProcessor.js';
|
|
6
|
+
import { stringifyJSON } from '../util/general.js';
|
|
7
|
+
import { NotFoundError } from '@fjell/lib';
|
|
8
|
+
|
|
9
|
+
const logger = LibLogger.get('sequelize', 'ops', 'update');
|
|
10
|
+
const getUpdateOperation = (models, definition, registry)=>{
|
|
11
|
+
const { options: { references, aggregations } } = definition;
|
|
12
|
+
const update = async (key, item)=>{
|
|
13
|
+
const { coordinate } = definition;
|
|
14
|
+
const { kta } = coordinate;
|
|
15
|
+
logger.debug('update: %s, %j', abbrevIK(key), item);
|
|
16
|
+
// Find the object we're updating
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
const model = models[0];
|
|
19
|
+
let response;
|
|
20
|
+
if (isPriKey(key)) {
|
|
21
|
+
// Find the model by using the PK
|
|
22
|
+
const priKey = key;
|
|
23
|
+
response = await model.findByPk(priKey.pk);
|
|
24
|
+
} else if (isComKey(key)) {
|
|
25
|
+
var _comKey_loc_, _comKey_loc_1;
|
|
26
|
+
const comKey = key;
|
|
27
|
+
// Find the model by using both of the identifiers.
|
|
28
|
+
response = await model.findOne({
|
|
29
|
+
where: {
|
|
30
|
+
[(comKey === null || comKey === void 0 ? void 0 : (_comKey_loc_ = comKey.loc[0]) === null || _comKey_loc_ === void 0 ? void 0 : _comKey_loc_.kt) + 'Id']: comKey === null || comKey === void 0 ? void 0 : (_comKey_loc_1 = comKey.loc[0]) === null || _comKey_loc_1 === void 0 ? void 0 : _comKey_loc_1.lk,
|
|
31
|
+
id: comKey === null || comKey === void 0 ? void 0 : comKey.pk
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
if (response) {
|
|
36
|
+
// Remove the key and events
|
|
37
|
+
let updateProps = removeKey(item);
|
|
38
|
+
updateProps = removeEvents(item);
|
|
39
|
+
logger.default('Response: %s', stringifyJSON(response));
|
|
40
|
+
logger.default('Update Properties: %s', stringifyJSON(updateProps));
|
|
41
|
+
// Update the object
|
|
42
|
+
response = await response.update(updateProps);
|
|
43
|
+
// Populate the key and events
|
|
44
|
+
const processedItem = await processRow(response, kta, references, aggregations, registry);
|
|
45
|
+
const returnItem = validateKeys(processedItem, kta);
|
|
46
|
+
return returnItem;
|
|
47
|
+
} else {
|
|
48
|
+
throw new NotFoundError('update', coordinate, key);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
return update;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export { getUpdateOperation };
|
|
55
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlcyI6W10sInNvdXJjZXNDb250ZW50IjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Primary } from '@fjell/lib';
|
|
2
|
+
import { createDefinition } from '../Definition.js';
|
|
3
|
+
import { createOperations } from '../Operations.js';
|
|
4
|
+
import LibLogger from '../logger.js';
|
|
5
|
+
|
|
6
|
+
const logger = LibLogger.get('lib-sequelize', 'primary', 'instance');
|
|
7
|
+
function createInstance(keyType, models, libOptions = {}, scopes = [], registry) {
|
|
8
|
+
logger.debug('createInstance', {
|
|
9
|
+
keyType,
|
|
10
|
+
models,
|
|
11
|
+
libOptions,
|
|
12
|
+
scopes
|
|
13
|
+
});
|
|
14
|
+
const definition = createDefinition([
|
|
15
|
+
keyType
|
|
16
|
+
], scopes, libOptions);
|
|
17
|
+
const operations = createOperations(models, definition, registry);
|
|
18
|
+
return {
|
|
19
|
+
definition,
|
|
20
|
+
operations: Primary.wrapOperations(operations, definition, registry),
|
|
21
|
+
models,
|
|
22
|
+
registry
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { createInstance };
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdGFuY2UuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7In0=
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */ /* eslint-disable no-undefined */ const clean = (obj)=>{
|
|
2
|
+
return Object.fromEntries(Object.entries(obj).filter(([_, v])=>v !== undefined));
|
|
3
|
+
};
|
|
4
|
+
//Recursive implementation of jSON.stringify;
|
|
5
|
+
const stringifyJSON = function(obj, visited = new Set()) {
|
|
6
|
+
const arrOfKeyVals = [];
|
|
7
|
+
const arrVals = [];
|
|
8
|
+
let objKeys = [];
|
|
9
|
+
/*********CHECK FOR PRIMITIVE TYPES**********/ if (typeof obj === 'number' || typeof obj === 'boolean' || obj === null) return '' + obj;
|
|
10
|
+
else if (typeof obj === 'string') return '"' + obj + '"';
|
|
11
|
+
/*********DETECT CIRCULAR REFERENCES**********/ if (obj instanceof Object && visited.has(obj)) {
|
|
12
|
+
return '"(circular)"';
|
|
13
|
+
} else if (Array.isArray(obj)) {
|
|
14
|
+
//check for empty array
|
|
15
|
+
if (obj[0] === undefined) return '[]';
|
|
16
|
+
else {
|
|
17
|
+
// Add array to visited before processing its elements
|
|
18
|
+
visited.add(obj);
|
|
19
|
+
obj.forEach(function(el) {
|
|
20
|
+
arrVals.push(stringifyJSON(el, visited));
|
|
21
|
+
});
|
|
22
|
+
return '[' + arrVals + ']';
|
|
23
|
+
}
|
|
24
|
+
} else if (obj instanceof Object) {
|
|
25
|
+
// Add object to visited before processing its properties
|
|
26
|
+
visited.add(obj);
|
|
27
|
+
//get object keys
|
|
28
|
+
objKeys = Object.keys(obj);
|
|
29
|
+
//set key output;
|
|
30
|
+
objKeys.forEach(function(key) {
|
|
31
|
+
const keyOut = '"' + key + '":';
|
|
32
|
+
const keyValOut = obj[key];
|
|
33
|
+
//skip functions and undefined properties
|
|
34
|
+
if (keyValOut instanceof Function || keyValOut === undefined) return; // Skip this entry entirely instead of pushing an empty string
|
|
35
|
+
else if (typeof keyValOut === 'string') arrOfKeyVals.push(keyOut + '"' + keyValOut + '"');
|
|
36
|
+
else if (typeof keyValOut === 'boolean' || typeof keyValOut === 'number' || keyValOut === null) arrOfKeyVals.push(keyOut + keyValOut);
|
|
37
|
+
else if (keyValOut instanceof Object) {
|
|
38
|
+
arrOfKeyVals.push(keyOut + stringifyJSON(keyValOut, visited));
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
return '{' + arrOfKeyVals + '}';
|
|
42
|
+
}
|
|
43
|
+
return '';
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export { clean, stringifyJSON };
|
|
47
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC5qcyIsInNvdXJjZXMiOltdLCJzb3VyY2VzQ29udGVudCI6W10sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9
|