graphile-config 0.0.1-0.6 → 0.0.1-1.2
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/CHANGELOG.md +18 -0
- package/dist/hooks.d.ts +2 -2
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +51 -33
- package/dist/hooks.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# graphile-config
|
|
2
2
|
|
|
3
|
+
## 0.0.1-1.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#297](https://github.com/benjie/postgraphile-private/pull/297)
|
|
8
|
+
[`b4eaf89f4`](https://github.com/benjie/postgraphile-private/commit/b4eaf89f401ca207de08770361d07903f6bb9cb0)
|
|
9
|
+
Thanks [@benjie](https://github.com/benjie)! - AsyncHooks can now execute
|
|
10
|
+
synchronously if all registered hooks are synchronous. May impact ordering of
|
|
11
|
+
fields/types in GraphQL schema.
|
|
12
|
+
|
|
13
|
+
## 0.0.1-1.1
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- [#260](https://github.com/benjie/postgraphile-private/pull/260)
|
|
18
|
+
[`d5312e6b9`](https://github.com/benjie/postgraphile-private/commit/d5312e6b968fbeb46d074b82a41b4bdbc166598c)
|
|
19
|
+
Thanks [@benjie](https://github.com/benjie)! - TypeScript v5 is now required
|
|
20
|
+
|
|
3
21
|
## 0.0.1-0.6
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
package/dist/hooks.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare class AsyncHooks<THooks extends HookObject<THooks>> {
|
|
|
9
9
|
* Hooks can _mutate_ the argument, they cannot return a replacement. This
|
|
10
10
|
* allows us to completely side-step the problem of recursive calls.
|
|
11
11
|
*/
|
|
12
|
-
process<THookName extends keyof THooks>(event: THookName, ...args: Parameters<THooks[THookName] extends PluginHook<infer U> ? U : never>): Promise<void>;
|
|
12
|
+
process<THookName extends keyof THooks>(event: THookName, ...args: Parameters<THooks[THookName] extends PluginHook<infer U> ? U : never>): void | Promise<void>;
|
|
13
13
|
}
|
|
14
|
-
export declare function applyHooks<THooks extends HookObject<THooks>>(plugins: GraphileConfig.Plugin[], hooksRetriever: (plugin: GraphileConfig.Plugin) => Partial<THooks> | undefined, applyHookCallback: <THookName extends keyof THooks>(hookName: THookName, hookFn: THooks[THookName] extends PluginHook<infer U> ? U : never, plugin: GraphileConfig.Plugin) => void): void;
|
|
14
|
+
export declare function applyHooks<THooks extends HookObject<THooks>>(plugins: GraphileConfig.Plugin[] | undefined, hooksRetriever: (plugin: GraphileConfig.Plugin) => Partial<THooks> | undefined, applyHookCallback: <THookName extends keyof THooks>(hookName: THookName, hookFn: THooks[THookName] extends PluginHook<infer U> ? U : never, plugin: GraphileConfig.Plugin) => void): void;
|
|
15
15
|
//# sourceMappingURL=hooks.d.ts.map
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAoB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAoB,MAAM,iBAAiB,CAAC;AAKpE,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,MAAM,CAChC,MAAM,CAAC,EACP,UAAU,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CACpC,CAAC;AAEF,qBAAa,UAAU,CAAC,MAAM,SAAS,UAAU,CAAC,MAAM,CAAC;IACvD,SAAS,EAAE;SACR,GAAG,IAAI,MAAM,MAAM,CAAC,CAAC,EAAE,KAAK,CAC3B,MAAM,CAAC,MAAM,MAAM,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAC7D;KACF,CAAuB;IAExB,IAAI,CAAC,SAAS,SAAS,MAAM,MAAM,EACjC,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAC5D,IAAI;IAKP;;;OAGG;IACH,OAAO,CAAC,SAAS,SAAS,MAAM,MAAM,EACpC,KAAK,EAAE,SAAS,EAChB,GAAG,IAAI,EAAE,UAAU,CACjB,MAAM,CAAC,SAAS,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAC1D,GACA,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CA2BxB;AAED,wBAAgB,UAAU,CAAC,MAAM,SAAS,UAAU,CAAC,MAAM,CAAC,EAC1D,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,GAAG,SAAS,EAC5C,cAAc,EAAE,CACd,MAAM,EAAE,cAAc,CAAC,MAAM,KAC1B,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,EAChC,iBAAiB,EAAE,CAAC,SAAS,SAAS,MAAM,MAAM,EAChD,QAAQ,EAAE,SAAS,EACnB,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EACjE,MAAM,EAAE,cAAc,CAAC,MAAM,KAC1B,IAAI,GACR,IAAI,CA0EN"}
|
package/dist/hooks.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.applyHooks = exports.AsyncHooks = void 0;
|
|
4
4
|
const sort_js_1 = require("./sort.js");
|
|
5
|
+
const isDev = process.env.GRAPHILE_ENV === "development";
|
|
5
6
|
class AsyncHooks {
|
|
6
7
|
callbacks = Object.create(null);
|
|
7
8
|
hook(event, fn) {
|
|
@@ -12,14 +13,29 @@ class AsyncHooks {
|
|
|
12
13
|
* Hooks can _mutate_ the argument, they cannot return a replacement. This
|
|
13
14
|
* allows us to completely side-step the problem of recursive calls.
|
|
14
15
|
*/
|
|
15
|
-
|
|
16
|
-
const [arg, ...rest] = args;
|
|
16
|
+
process(event, ...args) {
|
|
17
17
|
const callbacks = this.callbacks[event];
|
|
18
|
-
if (callbacks) {
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
if (!callbacks) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const l = callbacks.length;
|
|
22
|
+
let chain = undefined;
|
|
23
|
+
for (let i = 0; i < l; i++) {
|
|
24
|
+
const callback = callbacks[i];
|
|
25
|
+
if (chain !== undefined) {
|
|
26
|
+
chain = chain.then(() => callback.apply(null, args));
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
const result = callback.apply(null, args);
|
|
30
|
+
if (result != null) {
|
|
31
|
+
if (isDev && typeof result.then !== "function") {
|
|
32
|
+
throw new Error(`Hook '${event}' returned invalid value of type ${typeof result} - must be 'undefined' or a Promise/PromiseLike.`);
|
|
33
|
+
}
|
|
34
|
+
chain = result;
|
|
35
|
+
}
|
|
21
36
|
}
|
|
22
37
|
}
|
|
38
|
+
return chain;
|
|
23
39
|
}
|
|
24
40
|
}
|
|
25
41
|
exports.AsyncHooks = AsyncHooks;
|
|
@@ -27,37 +43,39 @@ function applyHooks(plugins, hooksRetriever, applyHookCallback) {
|
|
|
27
43
|
// Normalize all the hooks and gather them into collections
|
|
28
44
|
const allHooks = Object.create(null);
|
|
29
45
|
let uid = 0;
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
const keys = Object.keys(hooks);
|
|
36
|
-
for (const key of keys) {
|
|
37
|
-
const hookSpecRaw = hooks[key];
|
|
38
|
-
if (!hookSpecRaw) {
|
|
46
|
+
if (plugins) {
|
|
47
|
+
for (const plugin of plugins) {
|
|
48
|
+
const hooks = hooksRetriever(plugin);
|
|
49
|
+
if (!hooks) {
|
|
39
50
|
continue;
|
|
40
51
|
}
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
52
|
+
const keys = Object.keys(hooks);
|
|
53
|
+
for (const key of keys) {
|
|
54
|
+
const hookSpecRaw = hooks[key];
|
|
55
|
+
if (!hookSpecRaw) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
// TypeScript nonsense
|
|
59
|
+
const isPluginHookObject = (v) => typeof v !== "function";
|
|
60
|
+
const isPluginHookFunction = (v) => typeof v === "function";
|
|
61
|
+
const callback = (isPluginHookFunction(hookSpecRaw) ? hookSpecRaw : hookSpecRaw.callback);
|
|
62
|
+
const { provides, before, after } = isPluginHookObject(hookSpecRaw)
|
|
63
|
+
? hookSpecRaw
|
|
64
|
+
: {};
|
|
65
|
+
if (!allHooks[key]) {
|
|
66
|
+
allHooks[key] = [];
|
|
67
|
+
}
|
|
68
|
+
// We need to give each hook a unique ID
|
|
69
|
+
const id = String(uid++);
|
|
70
|
+
allHooks[key].push({
|
|
71
|
+
id,
|
|
72
|
+
plugin,
|
|
73
|
+
callback,
|
|
74
|
+
provides: [...(provides || []), id],
|
|
75
|
+
before: before || [],
|
|
76
|
+
after: after || [],
|
|
77
|
+
});
|
|
50
78
|
}
|
|
51
|
-
// We need to give each hook a unique ID
|
|
52
|
-
const id = String(uid++);
|
|
53
|
-
allHooks[key].push({
|
|
54
|
-
id,
|
|
55
|
-
plugin,
|
|
56
|
-
callback,
|
|
57
|
-
provides: [...(provides || []), id],
|
|
58
|
-
before: before || [],
|
|
59
|
-
after: after || [],
|
|
60
|
-
});
|
|
61
79
|
}
|
|
62
80
|
}
|
|
63
81
|
// Sort the collections according to provides, before and after.
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":";;;AACA,uCAAwD;
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "graphile-config",
|
|
3
|
-
"version": "0.0.1-
|
|
3
|
+
"version": "0.0.1-1.2",
|
|
4
4
|
"description": "Standard plugin interface and helpers to be used across the Graphile stack.",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"homepage": "https://graphile.org/graphile-build/",
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@types/interpret": "^1.1.1",
|
|
42
|
-
"@types/node": "^
|
|
42
|
+
"@types/node": "^18.15.5",
|
|
43
43
|
"@types/semver": "^7.3.9",
|
|
44
44
|
"chalk": "^4.1.2",
|
|
45
45
|
"debug": "^4.3.3",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@types/debug": "^4.1.7",
|
|
59
59
|
"@types/jest": "^27.5.1",
|
|
60
|
-
"jest": "^28.1.
|
|
60
|
+
"jest": "^28.1.3",
|
|
61
61
|
"ts-node": "^10.9.1",
|
|
62
62
|
"typescript": "^5.0.0-beta"
|
|
63
63
|
}
|