@kaspernj/api-maker 1.0.2148 → 1.0.2149
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.
|
@@ -20,5 +20,7 @@ export default class CacheKeyGenerator {
|
|
|
20
20
|
cacheKey(): any;
|
|
21
21
|
/** feedModel. */
|
|
22
22
|
feedModel(model: any, md5: any): void;
|
|
23
|
+
/** @returns {number | string} */
|
|
24
|
+
modelIdentity(model: any): number | string;
|
|
23
25
|
}
|
|
24
26
|
//# sourceMappingURL=cache-key-generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-key-generator.d.ts","sourceRoot":"/src/","sources":["cache-key-generator.js"],"names":[],"mappings":"AAEA,kDAAkD;AAClD;IACE,mBAAmB;IACnB,wBAOC;IANC,WAAkB;IAClB,iBAAwB;IACxB,eAAoB;IAGpB,sBAAyB;IAG3B,aAAa;IACb,aAMC;IAED,uBAAuB;IACvB,6CAIC;IAED,mBAAmB;IACnB,qDAGC;IAED,uBAAuB;IACvB,4DAIC;IAED,kBAAkB;IAClB,6BAsBC;IAED,gBAAgB;IAChB,gBAYC;IAED,iBAAiB;IACjB,sCAmBC;CACF"}
|
|
1
|
+
{"version":3,"file":"cache-key-generator.d.ts","sourceRoot":"/src/","sources":["cache-key-generator.js"],"names":[],"mappings":"AAEA,kDAAkD;AAClD;IACE,mBAAmB;IACnB,wBAOC;IANC,WAAkB;IAClB,iBAAwB;IACxB,eAAoB;IAGpB,sBAAyB;IAG3B,aAAa;IACb,aAMC;IAED,uBAAuB;IACvB,6CAIC;IAED,mBAAmB;IACnB,qDAGC;IAED,uBAAuB;IACvB,4DAIC;IAED,kBAAkB;IAClB,6BAsBC;IAED,gBAAgB;IAChB,gBAYC;IAED,iBAAiB;IACjB,sCAmBC;IAED,iCAAiC;IACjC,2BADc,MAAM,GAAG,MAAM,CAa5B;CACF"}
|
|
@@ -25,11 +25,11 @@ export default class CacheKeyGenerator {
|
|
|
25
25
|
/** recordModel. */
|
|
26
26
|
recordModel(relationshipType, model) {
|
|
27
27
|
this.allModels.push(model);
|
|
28
|
-
this.readModels[relationshipType][
|
|
28
|
+
this.readModels[relationshipType][this.modelIdentity(model)] = true;
|
|
29
29
|
}
|
|
30
30
|
/** isModelRecorded. */
|
|
31
31
|
isModelRecorded(relationshipType, model) {
|
|
32
|
-
if (
|
|
32
|
+
if (this.modelIdentity(model) in this.readModels[relationshipType]) {
|
|
33
33
|
return true;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
@@ -71,7 +71,7 @@ export default class CacheKeyGenerator {
|
|
|
71
71
|
md5.append("--model--");
|
|
72
72
|
md5.append(model.modelClassData().name);
|
|
73
73
|
md5.append("--unique-key--");
|
|
74
|
-
md5.append(
|
|
74
|
+
md5.append(this.modelIdentity(model));
|
|
75
75
|
if (model.markedForDestruction()) {
|
|
76
76
|
md5.append("--marked-for-destruction--");
|
|
77
77
|
}
|
|
@@ -83,5 +83,16 @@ export default class CacheKeyGenerator {
|
|
|
83
83
|
md5.append(`${model.readAttributeUnderscore(attributeName)}`);
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
|
+
/** @returns {number | string} */
|
|
87
|
+
modelIdentity(model) {
|
|
88
|
+
const primaryKeyName = model.modelClass().primaryKey();
|
|
89
|
+
if (model.isAttributeLoaded(primaryKeyName)) {
|
|
90
|
+
const primaryKeyValue = model.primaryKey();
|
|
91
|
+
if (primaryKeyValue !== null && primaryKeyValue !== undefined && primaryKeyValue !== "") {
|
|
92
|
+
return primaryKeyValue;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return model.uniqueKey();
|
|
96
|
+
}
|
|
86
97
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUta2V5LWdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsiY2FjaGUta2V5LWdlbmVyYXRvci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxXQUFXLENBQUE7QUFFaEMsa0RBQWtEO0FBQ2xELE1BQU0sQ0FBQyxPQUFPLE9BQU8saUJBQWlCO0lBQ3BDLG1CQUFtQjtJQUNuQixZQUFZLEtBQUs7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUE7UUFDcEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3BELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFBO0lBQzNCLENBQUM7SUFFRCxhQUFhO0lBQ2IsS0FBSztRQUNILE1BQU0sR0FBRyxHQUFHLElBQUksUUFBUSxFQUFFLENBQUE7UUFFMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBRS9CLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFBO0lBQ2xCLENBQUM7SUFFRCx1QkFBdUI7SUFDdkIsZUFBZSxDQUFDLGdCQUFnQjtRQUM5QixJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLFdBQVcs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QTtRQUMxQyxDQUFDO1FBRUQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUUxQixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUE7UUFFckMsS0FBSyxNQUFNLGFBQWEsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUN2QyxHQUFHLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1lBQ3pCLEdBQUcsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7WUFDM0IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDL0QsQ0FBQztJQUNILENBQUM7SUFFRCxpQ0FBaUM7SUFDakMsYUFBYSxDQUFDLEtBQUs7UUFDakIsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBRXRELElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDNUMsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFBO1lBRTFDLElBQUksZUFBZSxLQUFLLElBQUksSUFBSSxlQUFlLEtBQUssU0FBUyxJQUFJLGVBQWUsS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDeEYsT0FBTyxlQUFlLENBQUE7WUFDeEIsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU3BhcmtNRDUgZnJvbSBcInNwYXJrLW1kNVwiXG5cbi8qKiBHZW5lcmF0ZXMgbG9jYWwvZnVsbCBjYWNoZSBrZXlzIGZvciBtb2RlbHMuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDYWNoZUtleUdlbmVyYXRvciB7XG4gIC8qKiBDb25zdHJ1Y3Rvci4gKi9cbiAgY29uc3RydWN0b3IobW9kZWwpIHtcbiAgICB0aGlzLm1vZGVsID0gbW9kZWxcbiAgICB0aGlzLmFsbE1vZGVscyA9IFttb2RlbF1cbiAgICB0aGlzLnJlYWRNb2RlbHMgPSB7fVxuICAgIHRoaXMucmVjb3JkTW9kZWxUeXBlKG1vZGVsLm1vZGVsQ2xhc3NEYXRhKCkubmFtZSlcbiAgICB0aGlzLnJlY29yZE1vZGVsKG1vZGVsLm1vZGVsQ2xhc3NEYXRhKCkubmFtZSwgbW9kZWwpXG4gICAgdGhpcy5maWxsZWRNb2RlbHMgPSBmYWxzZVxuICB9XG5cbiAgLyoqIGxvY2FsLiAqL1xuICBsb2NhbCgpIHtcbiAgICBjb25zdCBtZDUgPSBuZXcgU3BhcmtNRDUoKVxuXG4gICAgdGhpcy5mZWVkTW9kZWwodGhpcy5tb2RlbCwgbWQ1KVxuXG4gICAgcmV0dXJuIG1kNS5lbmQoKVxuICB9XG5cbiAgLyoqIHJlY29yZE1vZGVsVHlwZS4gKi9cbiAgcmVjb3JkTW9kZWxUeXBlKHJlbGF0aW9uc2hpcFR5cGUpIHtcbiAgICBpZiAoIShyZWxhdGlvbnNoaXBUeXBlIGluIHRoaXMucmVhZE1vZGVscykpIHtcbiAgICAgIHRoaXMucmVhZE1vZGVsc1tyZWxhdGlvbnNoaXBUeXBlXSA9IHt9XG4gICAgfVxuICB9XG5cbiAgLyoqIHJlY29yZE1vZGVsLiAqL1xuICByZWNvcmRNb2RlbChyZWxhdGlvbnNoaXBUeXBlLCBtb2RlbCkge1xuICAgIHRoaXMuYWxsTW9kZWxzLnB1c2gobW9kZWwpXG4gICAgdGhpcy5yZWFkTW9kZWxzW3JlbGF0aW9uc2hpcFR5cGVdW3RoaXMubW9kZWxJZGVudGl0eShtb2RlbCldID0gdHJ1ZVxuICB9XG5cbiAgLyoqIGlzTW9kZWxSZWNvcmRlZC4gKi9cbiAgaXNNb2RlbFJlY29yZGVkKHJlbGF0aW9uc2hpcFR5cGUsIG1vZGVsKSB7XG4gICAgaWYgKHRoaXMubW9kZWxJZGVudGl0eShtb2RlbCkgaW4gdGhpcy5yZWFkTW9kZWxzW3JlbGF0aW9uc2hpcFR5cGVdKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIC8qKiBmaWxsTW9kZWxzLiAqL1xuICBmaWxsTW9kZWxzKG1vZGVsKSB7XG4gICAgZm9yIChjb25zdCByZWxhdGlvbnNoaXBUeXBlIGluIG1vZGVsLnJlbGF0aW9uc2hpcHMpIHtcbiAgICAgIHRoaXMucmVjb3JkTW9kZWxUeXBlKHJlbGF0aW9uc2hpcFR5cGUpXG5cbiAgICAgIGNvbnN0IGxvYWRlZFJlbGF0aW9uc2hpcCA9IG1vZGVsLnJlbGF0aW9uc2hpcHNbcmVsYXRpb25zaGlwVHlwZV1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobG9hZGVkUmVsYXRpb25zaGlwKSkgeyAvLyBoYXNfbWFueVxuICAgICAgICBmb3IgKGNvbnN0IGFub3RoZXJNb2RlbCBvZiBsb2FkZWRSZWxhdGlvbnNoaXApIHtcbiAgICAgICAgICBpZiAoIXRoaXMuaXNNb2RlbFJlY29yZGVkKHJlbGF0aW9uc2hpcFR5cGUsIGFub3RoZXJNb2RlbCkpIHtcbiAgICAgICAgICAgIHRoaXMucmVjb3JkTW9kZWwocmVsYXRpb25zaGlwVHlwZSwgYW5vdGhlck1vZGVsKVxuICAgICAgICAgICAgdGhpcy5maWxsTW9kZWxzKGFub3RoZXJNb2RlbClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAobG9hZGVkUmVsYXRpb25zaGlwKSB7IC8vIGJlbG9uZ3NfdG8sIGhhc19vbmVcbiAgICAgICAgaWYgKCF0aGlzLmlzTW9kZWxSZWNvcmRlZChyZWxhdGlvbnNoaXBUeXBlLCBsb2FkZWRSZWxhdGlvbnNoaXApKSB7XG4gICAgICAgICAgdGhpcy5yZWNvcmRNb2RlbChyZWxhdGlvbnNoaXBUeXBlLCBsb2FkZWRSZWxhdGlvbnNoaXApXG4gICAgICAgICAgdGhpcy5maWxsTW9kZWxzKGxvYWRlZFJlbGF0aW9uc2hpcClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZmlsbGVkTW9kZWxzID0gdHJ1ZVxuICB9XG5cbiAgLyoqIGNhY2hlS2V5LiAqL1xuICBjYWNoZUtleSgpIHtcbiAgICBpZiAoIXRoaXMuZmlsbGVkTW9kZWxzKSB7XG4gICAgICB0aGlzLmZpbGxNb2RlbHModGhpcy5tb2RlbClcbiAgICB9XG5cbiAgICBjb25zdCBtZDUgPSBuZXcgU3BhcmtNRDUoKVxuXG4gICAgZm9yIChjb25zdCBtb2RlbCBvZiB0aGlzLmFsbE1vZGVscykge1xuICAgICAgdGhpcy5mZWVkTW9kZWwobW9kZWwsIG1kNSlcbiAgICB9XG5cbiAgICByZXR1cm4gbWQ1LmVuZCgpXG4gIH1cblxuICAvKiogZmVlZE1vZGVsLiAqL1xuICBmZWVkTW9kZWwobW9kZWwsIG1kNSkge1xuICAgIG1kNS5hcHBlbmQoXCItLW1vZGVsLS1cIilcbiAgICBtZDUuYXBwZW5kKG1vZGVsLm1vZGVsQ2xhc3NEYXRhKCkubmFtZSlcbiAgICBtZDUuYXBwZW5kKFwiLS11bmlxdWUta2V5LS1cIilcbiAgICBtZDUuYXBwZW5kKHRoaXMubW9kZWxJZGVudGl0eShtb2RlbCkpXG5cbiAgICBpZiAobW9kZWwubWFya2VkRm9yRGVzdHJ1Y3Rpb24oKSkge1xuICAgICAgbWQ1LmFwcGVuZChcIi0tbWFya2VkLWZvci1kZXN0cnVjdGlvbi0tXCIpXG4gICAgfVxuXG4gICAgbWQ1LmFwcGVuZChcIi1hdHRyaWJ1dGVzLVwiKVxuXG4gICAgY29uc3QgYXR0cmlidXRlcyA9IG1vZGVsLmF0dHJpYnV0ZXMoKVxuXG4gICAgZm9yIChjb25zdCBhdHRyaWJ1dGVOYW1lIGluIGF0dHJpYnV0ZXMpIHtcbiAgICAgIG1kNS5hcHBlbmQoYXR0cmlidXRlTmFtZSlcbiAgICAgIG1kNS5hcHBlbmQoXCItLWF0dHJpYnV0ZS0tXCIpXG4gICAgICBtZDUuYXBwZW5kKGAke21vZGVsLnJlYWRBdHRyaWJ1dGVVbmRlcnNjb3JlKGF0dHJpYnV0ZU5hbWUpfWApXG4gICAgfVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtudW1iZXIgfCBzdHJpbmd9ICovXG4gIG1vZGVsSWRlbnRpdHkobW9kZWwpIHtcbiAgICBjb25zdCBwcmltYXJ5S2V5TmFtZSA9IG1vZGVsLm1vZGVsQ2xhc3MoKS5wcmltYXJ5S2V5KClcblxuICAgIGlmIChtb2RlbC5pc0F0dHJpYnV0ZUxvYWRlZChwcmltYXJ5S2V5TmFtZSkpIHtcbiAgICAgIGNvbnN0IHByaW1hcnlLZXlWYWx1ZSA9IG1vZGVsLnByaW1hcnlLZXkoKVxuXG4gICAgICBpZiAocHJpbWFyeUtleVZhbHVlICE9PSBudWxsICYmIHByaW1hcnlLZXlWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByaW1hcnlLZXlWYWx1ZSAhPT0gXCJcIikge1xuICAgICAgICByZXR1cm4gcHJpbWFyeUtleVZhbHVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZGVsLnVuaXF1ZUtleSgpXG4gIH1cbn1cbiJdfQ==
|