@snowtop/ent 0.1.0-alpha40 → 0.1.0-alpha43
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/action/action.d.ts +1 -1
- package/action/orchestrator.js +1 -1
- package/core/context.js +2 -2
- package/core/ent.js +1 -1
- package/core/loaders/loader.js +5 -5
- package/core/logger.d.ts +1 -1
- package/core/logger.js +1 -0
- package/package.json +1 -1
- package/schema/struct_field.js +6 -0
package/action/action.d.ts
CHANGED
|
@@ -56,7 +56,7 @@ export interface Action<TEnt extends Ent<TViewer>, TBuilder extends Builder<TEnt
|
|
|
56
56
|
transformWrite?: (stmt: UpdateOperation<TEnt, TViewer>) => Promise<TransformedUpdateOperation<TEnt>> | TransformedUpdateOperation<TEnt> | null;
|
|
57
57
|
valid(): Promise<boolean>;
|
|
58
58
|
validX(): Promise<void>;
|
|
59
|
-
viewerForEntLoad?(data: Data): TViewer | Promise<TViewer>;
|
|
59
|
+
viewerForEntLoad?(data: Data, context?: Context<TViewer>): TViewer | Promise<TViewer>;
|
|
60
60
|
}
|
|
61
61
|
export declare function saveBuilder<TEnt extends Ent<TViewer>, TViewer extends Viewer>(builder: Builder<TEnt, TViewer>): Promise<void>;
|
|
62
62
|
export declare function saveBuilderX<TEnt extends Ent<TViewer>, TViewer extends Viewer>(builder: Builder<TEnt, TViewer>): Promise<void>;
|
package/action/orchestrator.js
CHANGED
|
@@ -615,7 +615,7 @@ class Orchestrator {
|
|
|
615
615
|
if (!action || !action.viewerForEntLoad) {
|
|
616
616
|
return this.options.viewer;
|
|
617
617
|
}
|
|
618
|
-
return action.viewerForEntLoad(data);
|
|
618
|
+
return action.viewerForEntLoad(data, action.builder.viewer.context);
|
|
619
619
|
}
|
|
620
620
|
async returnedRow() {
|
|
621
621
|
if (this.mainOp && this.mainOp.returnedRow) {
|
package/core/context.js
CHANGED
|
@@ -39,7 +39,7 @@ class ContextCache {
|
|
|
39
39
|
const key = this.getkey(options);
|
|
40
40
|
let rows = m.get(key);
|
|
41
41
|
if (rows) {
|
|
42
|
-
(0, logger_1.log)("
|
|
42
|
+
(0, logger_1.log)("cache", {
|
|
43
43
|
"cache-hit": key,
|
|
44
44
|
"tableName": options.tableName,
|
|
45
45
|
});
|
|
@@ -54,7 +54,7 @@ class ContextCache {
|
|
|
54
54
|
const key = this.getkey(options);
|
|
55
55
|
let row = m.get(key);
|
|
56
56
|
if (row) {
|
|
57
|
-
(0, logger_1.log)("
|
|
57
|
+
(0, logger_1.log)("cache", {
|
|
58
58
|
"cache-hit": key,
|
|
59
59
|
"tableName": options.tableName,
|
|
60
60
|
});
|
package/core/ent.js
CHANGED
package/core/loaders/loader.js
CHANGED
|
@@ -37,12 +37,12 @@ class cacheMap {
|
|
|
37
37
|
// might be a lot?
|
|
38
38
|
// TODO this is not the best log format
|
|
39
39
|
// was designed for ObjectLoader time. Now we have different needs e.g. count, assoc etc
|
|
40
|
-
(0, logger_1.log)("
|
|
40
|
+
(0, logger_1.log)("cache", {
|
|
41
41
|
"dataloader-cache-hit": key,
|
|
42
42
|
"tableName": this.options.tableName,
|
|
43
43
|
});
|
|
44
44
|
// } else {
|
|
45
|
-
// log("
|
|
45
|
+
// log("cache", {
|
|
46
46
|
// "dataloader-cache-miss": key,
|
|
47
47
|
// "tableName": options.tableName,
|
|
48
48
|
// });
|
|
@@ -50,21 +50,21 @@ class cacheMap {
|
|
|
50
50
|
return ret;
|
|
51
51
|
}
|
|
52
52
|
set(key, value) {
|
|
53
|
-
// log("
|
|
53
|
+
// log("cache", {
|
|
54
54
|
// "dataloader-cache-set": key,
|
|
55
55
|
// "tableName": options.tableName,
|
|
56
56
|
// });
|
|
57
57
|
return this.m.set(key, value);
|
|
58
58
|
}
|
|
59
59
|
delete(key) {
|
|
60
|
-
// log("
|
|
60
|
+
// log("cache", {
|
|
61
61
|
// "dataloader-cache-delete": key,
|
|
62
62
|
// "tableName": options.tableName,
|
|
63
63
|
// });
|
|
64
64
|
return this.m.delete(key);
|
|
65
65
|
}
|
|
66
66
|
clear() {
|
|
67
|
-
// log("
|
|
67
|
+
// log("cache", {
|
|
68
68
|
// "dataloader-cache-clear": true,
|
|
69
69
|
// "tableName": options.tableName,
|
|
70
70
|
// });
|
package/core/logger.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare type logType = "query" | "warn" | "info" | "error" | "debug";
|
|
1
|
+
declare type logType = "query" | "warn" | "info" | "error" | "debug" | "cache";
|
|
2
2
|
export declare function setLogLevels(levels: logType | logType[]): void;
|
|
3
3
|
export declare function clearLogLevels(): void;
|
|
4
4
|
export declare function log(level: logType, msg: any): void;
|
package/core/logger.js
CHANGED
package/package.json
CHANGED
package/schema/struct_field.js
CHANGED
|
@@ -83,6 +83,12 @@ class StructField extends field_1.BaseField {
|
|
|
83
83
|
}
|
|
84
84
|
promises.push(field.valid(val));
|
|
85
85
|
}
|
|
86
|
+
for (const k in obj) {
|
|
87
|
+
// extra undefined fields are invalid
|
|
88
|
+
if (this.options.fields[k] === undefined) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
86
92
|
if (!valid) {
|
|
87
93
|
return valid;
|
|
88
94
|
}
|