graphile-config 0.0.1-beta.7 → 0.0.1-beta.9
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 +79 -0
- package/README.md +1 -0
- package/dist/functionality.d.ts +3 -0
- package/dist/functionality.d.ts.map +1 -0
- package/dist/functionality.js +58 -0
- package/dist/functionality.js.map +1 -0
- package/dist/hooks.d.ts +16 -7
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +6 -57
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +6 -3
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/middleware.d.ts +18 -0
- package/dist/middleware.d.ts.map +1 -0
- package/dist/middleware.js +71 -0
- package/dist/middleware.js.map +1 -0
- package/dist/resolvePresets.d.ts.map +1 -1
- package/dist/resolvePresets.js +34 -4
- package/dist/resolvePresets.js.map +1 -1
- package/dist/utils.d.ts +2 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +10 -0
- package/dist/utils.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,84 @@
|
|
|
1
1
|
# graphile-config
|
|
2
2
|
|
|
3
|
+
## 0.0.1-beta.9
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#2071](https://github.com/graphile/crystal/pull/2071)
|
|
8
|
+
[`582bd768f`](https://github.com/graphile/crystal/commit/582bd768fec403ce3284f293b85b9fd86e4d3f40)
|
|
9
|
+
Thanks [@benjie](https://github.com/benjie)! - `GrafastExecutionArgs` now
|
|
10
|
+
accepts `resolvedPreset` and `requestContext` directly; passing these through
|
|
11
|
+
additional arguments is now deprecated and support will be removed in a future
|
|
12
|
+
revision. This affects:
|
|
13
|
+
|
|
14
|
+
- `grafast()`
|
|
15
|
+
- `execute()`
|
|
16
|
+
- `subscribe()`
|
|
17
|
+
- `hookArgs()`
|
|
18
|
+
|
|
19
|
+
`graphile-config` has gained a middleware system which is more powerful than
|
|
20
|
+
it's AsyncHooks system. Old hooks can be emulated through the middleware
|
|
21
|
+
system safely since middleware is a superset of hooks' capabilities.
|
|
22
|
+
`applyHooks` has been renamed to `orderedApply` (because it applies to more
|
|
23
|
+
than just hooks), calling `applyHooks` will still work but is deprecated.
|
|
24
|
+
|
|
25
|
+
🚨 `grafast` no longer automatically reads your `graphile.config.ts` or
|
|
26
|
+
similar; you must do that yourself and pass the `resolvedPreset` to grafast
|
|
27
|
+
via the `args`. This is to aid in bundling of grafast since it should not need
|
|
28
|
+
to read from filesystem or dynamically load modules.
|
|
29
|
+
|
|
30
|
+
`grafast` no longer outputs performance warning when you set
|
|
31
|
+
`GRAPHILE_ENV=development`.
|
|
32
|
+
|
|
33
|
+
🚨 `plugin.grafast.hooks.args` is now `plugin.grafast.middleware.prepareArgs`,
|
|
34
|
+
and the signature has changed - you must be sure to call the `next()` function
|
|
35
|
+
and ctx/resolvedPreset can be extracted directly from `args`:
|
|
36
|
+
|
|
37
|
+
```diff
|
|
38
|
+
const plugin = {
|
|
39
|
+
grafast: {
|
|
40
|
+
- hooks: {
|
|
41
|
+
+ middleware: {
|
|
42
|
+
- args({ args, ctx, resolvedPreset }) {
|
|
43
|
+
+ prepareArgs(next, { args }) {
|
|
44
|
+
+ const { requestContext: ctx, resolvedPreset } = args;
|
|
45
|
+
// ...
|
|
46
|
+
+ return next();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Many more middleware have been added; use TypeScript's autocomplete to see
|
|
54
|
+
what's available until we have proper documentation for them.
|
|
55
|
+
|
|
56
|
+
`plugin.grafserv.hooks.*` are still supported but deprecated; instead use
|
|
57
|
+
middleware `plugin.grafserv.middleware.*` (note that call signatures have
|
|
58
|
+
changed slightly, similar to the diff above):
|
|
59
|
+
|
|
60
|
+
- `hooks.init` -> `middleware.setPreset`
|
|
61
|
+
- `hooks.processGraphQLRequestBody` -> `middleware.processGraphQLRequestBody`
|
|
62
|
+
- `hooks.ruruHTMLParts` -> `middleware.ruruHTMLParts`
|
|
63
|
+
|
|
64
|
+
A few TypeScript types related to Hooks have been renamed, but their old names
|
|
65
|
+
are still available, just deprecated. They will be removed in a future update:
|
|
66
|
+
|
|
67
|
+
- `HookObject` -> `FunctionalityObject`
|
|
68
|
+
- `PluginHook` -> `CallbackOrDescriptor`
|
|
69
|
+
- `PluginHookObject` -> `CallbackDescriptor`
|
|
70
|
+
- `PluginHookCallback` -> `UnwrapCallback`
|
|
71
|
+
|
|
72
|
+
## 0.0.1-beta.8
|
|
73
|
+
|
|
74
|
+
### Patch Changes
|
|
75
|
+
|
|
76
|
+
- [#2048](https://github.com/graphile/crystal/pull/2048)
|
|
77
|
+
[`db8ceed0f`](https://github.com/graphile/crystal/commit/db8ceed0f17923eb78ff09c9f3f28800a5c7e3b6)
|
|
78
|
+
Thanks [@benjie](https://github.com/benjie)! - Help detect more invalid
|
|
79
|
+
presets and plugins (bad imports) by forbidding keys starting with a capital
|
|
80
|
+
or the key `default`.
|
|
81
|
+
|
|
3
82
|
## 0.0.1-beta.7
|
|
4
83
|
|
|
5
84
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -130,6 +130,7 @@ And please give some love to our featured sponsors 🤩:
|
|
|
130
130
|
<td align="center"><a href="https://stellate.co/"><img src="https://graphile.org/images/sponsors/Stellate.png" width="90" height="90" alt="Stellate" /><br />Stellate</a> *</td>
|
|
131
131
|
</tr><tr>
|
|
132
132
|
<td align="center"><a href="https://gosteelhead.com/"><img src="https://graphile.org/images/sponsors/steelhead.svg" width="90" height="90" alt="Steelhead" /><br />Steelhead</a> *</td>
|
|
133
|
+
<td align="center"><a href="https://www.sylvera.com/"><img src="https://graphile.org/images/sponsors/sylvera.svg" width="90" height="90" alt="Sylvera" /><br />Sylvera</a> *</td>
|
|
133
134
|
</tr></table>
|
|
134
135
|
|
|
135
136
|
<em>\* Sponsors the entire Graphile suite</em>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { CallbackOrDescriptor, FunctionalityObject } from "./interfaces.js";
|
|
2
|
+
export declare function orderedApply<TFunctionality extends FunctionalityObject<TFunctionality>>(plugins: readonly GraphileConfig.Plugin[] | undefined, functionalityRetriever: (plugin: GraphileConfig.Plugin) => Partial<TFunctionality> | undefined, applyCallback: <TFunctionalityName extends keyof TFunctionality>(functionalityName: TFunctionalityName, hookFn: TFunctionality[TFunctionalityName] extends CallbackOrDescriptor<infer U> ? U : never, plugin: GraphileConfig.Plugin) => void): void;
|
|
3
|
+
//# sourceMappingURL=functionality.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functionality.d.ts","sourceRoot":"","sources":["../src/functionality.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,oBAAoB,EACpB,mBAAmB,EAEpB,MAAM,iBAAiB,CAAC;AAGzB,wBAAgB,YAAY,CAC1B,cAAc,SAAS,mBAAmB,CAAC,cAAc,CAAC,EAE1D,OAAO,EAAE,SAAS,cAAc,CAAC,MAAM,EAAE,GAAG,SAAS,EACrD,sBAAsB,EAAE,CACtB,MAAM,EAAE,cAAc,CAAC,MAAM,KAC1B,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,EACxC,aAAa,EAAE,CAAC,kBAAkB,SAAS,MAAM,cAAc,EAC7D,iBAAiB,EAAE,kBAAkB,EACrC,MAAM,EAAE,cAAc,CAAC,kBAAkB,CAAC,SAAS,oBAAoB,CACrE,MAAM,CAAC,CACR,GACG,CAAC,GACD,KAAK,EACT,MAAM,EAAE,cAAc,CAAC,MAAM,KAC1B,IAAI,GACR,IAAI,CAkFN"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.orderedApply = void 0;
|
|
4
|
+
const sort_js_1 = require("./sort.js");
|
|
5
|
+
function orderedApply(plugins, functionalityRetriever, applyCallback) {
|
|
6
|
+
// Normalize all the hooks and gather them into collections
|
|
7
|
+
const allFunctionalities = Object.create(null);
|
|
8
|
+
let uid = 0;
|
|
9
|
+
if (plugins) {
|
|
10
|
+
for (const plugin of plugins) {
|
|
11
|
+
const hooks = functionalityRetriever(plugin);
|
|
12
|
+
if (!hooks) {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
const keys = Object.keys(hooks);
|
|
16
|
+
for (const key of keys) {
|
|
17
|
+
const hookSpecRaw = hooks[key];
|
|
18
|
+
if (!hookSpecRaw) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
// TypeScript nonsense
|
|
22
|
+
const isCallbackDescriptor = (v) => typeof v !== "function";
|
|
23
|
+
const isCallback = (v) => typeof v === "function";
|
|
24
|
+
const callback = (isCallback(hookSpecRaw) ? hookSpecRaw : hookSpecRaw.callback);
|
|
25
|
+
const { provides, before, after } = isCallbackDescriptor(hookSpecRaw)
|
|
26
|
+
? hookSpecRaw
|
|
27
|
+
: {};
|
|
28
|
+
if (!allFunctionalities[key]) {
|
|
29
|
+
allFunctionalities[key] = [];
|
|
30
|
+
}
|
|
31
|
+
// We need to give each functionality a unique ID
|
|
32
|
+
const id = String(uid++);
|
|
33
|
+
allFunctionalities[key].push({
|
|
34
|
+
id,
|
|
35
|
+
plugin,
|
|
36
|
+
callback,
|
|
37
|
+
provides: [...(provides || []), id, plugin.name],
|
|
38
|
+
before: before || [],
|
|
39
|
+
after: after || [],
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Sort the collections according to provides, before and after.
|
|
45
|
+
for (const functionalityName in allFunctionalities) {
|
|
46
|
+
const functionalities = allFunctionalities[functionalityName];
|
|
47
|
+
if (!functionalities) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
const final = (0, sort_js_1.sortWithBeforeAfterProvides)(functionalities, "id");
|
|
51
|
+
// Finally we can register the functionalities
|
|
52
|
+
for (const functionality of final) {
|
|
53
|
+
applyCallback(functionalityName, functionality.callback, functionality.plugin);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.orderedApply = orderedApply;
|
|
58
|
+
//# sourceMappingURL=functionality.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functionality.js","sourceRoot":"","sources":["../src/functionality.ts"],"names":[],"mappings":";;;AAOA,uCAAwD;AAExD,SAAgB,YAAY,CAG1B,OAAqD,EACrD,sBAEwC,EACxC,aAQS;IAUT,2DAA2D;IAC3D,MAAM,kBAAkB,GAEpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,OAAO,EAAE;QACX,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,MAAM,KAAK,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK,EAAE;gBACV,SAAS;aACV;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAyC,CAAC;YACxE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACtB,MAAM,WAAW,GAA2C,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvE,IAAI,CAAC,WAAW,EAAE;oBAChB,SAAS;iBACV;gBAED,sBAAsB;gBACtB,MAAM,oBAAoB,GAAG,CAC3B,CAA0B,EACE,EAAE,CAAC,OAAO,CAAC,KAAK,UAAU,CAAC;gBACzD,MAAM,UAAU,GAAG,CACjB,CAA0B,EAClB,EAAE,CAAC,OAAO,CAAC,KAAK,UAAU,CAAC;gBAErC,MAAM,QAAQ,GAIF,CACV,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CACtD,CAAC;gBACT,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,oBAAoB,CAAC,WAAW,CAAC;oBACnE,CAAC,CAAC,WAAW;oBACb,CAAC,CAAE,EAA8D,CAAC;gBACpE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE;oBAC5B,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;iBAC9B;gBACD,iDAAiD;gBACjD,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;gBACzB,kBAAkB,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC;oBAC5B,EAAE;oBACF,MAAM;oBACN,QAAQ;oBACR,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC;oBAChD,MAAM,EAAE,MAAM,IAAI,EAAE;oBACpB,KAAK,EAAE,KAAK,IAAI,EAAE;iBACnB,CAAC,CAAC;aACJ;SACF;KACF;IAED,gEAAgE;IAChE,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE;QAClD,MAAM,eAAe,GAAG,kBAAkB,CAAC,iBAAiB,CAE/C,CAAC;QACd,IAAI,CAAC,eAAe,EAAE;YACpB,SAAS;SACV;QAED,MAAM,KAAK,GAAG,IAAA,qCAA2B,EAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAEjE,8CAA8C;QAC9C,KAAK,MAAM,aAAa,IAAI,KAAK,EAAE;YACjC,aAAa,CACX,iBAAiB,EACjB,aAAa,CAAC,QAAQ,EACtB,aAAa,CAAC,MAAM,CACrB,CAAC;SACH;KACF;AACH,CAAC;AAlGD,oCAkGC"}
|
package/dist/hooks.d.ts
CHANGED
|
@@ -1,15 +1,24 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export declare class AsyncHooks<THooks extends
|
|
1
|
+
import { orderedApply } from "./functionality.js";
|
|
2
|
+
import type { CallbackDescriptor, CallbackOrDescriptor, FunctionalityObject, PromiseOrDirect, UnwrapCallback } from "./interfaces.js";
|
|
3
|
+
export declare class AsyncHooks<THooks extends FunctionalityObject<THooks>> {
|
|
4
4
|
callbacks: {
|
|
5
|
-
[key in keyof THooks]?: Array<THooks[keyof THooks] extends
|
|
5
|
+
[key in keyof THooks]?: Array<THooks[keyof THooks] extends CallbackOrDescriptor<infer U> ? U : never>;
|
|
6
6
|
};
|
|
7
|
-
hook<THookName extends keyof THooks>(event: THookName, fn: THooks[THookName] extends
|
|
7
|
+
hook<THookName extends keyof THooks>(event: THookName, fn: THooks[THookName] extends CallbackOrDescriptor<infer U> ? U : never): void;
|
|
8
8
|
/**
|
|
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>(
|
|
12
|
+
process<THookName extends keyof THooks>(hookName: THookName, ...args: Parameters<THooks[THookName] extends CallbackOrDescriptor<infer U> ? U : never>): void | Promise<void>;
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
/** @deprecated Use FunctionalityObject */
|
|
15
|
+
export type HookObject<T> = FunctionalityObject<T>;
|
|
16
|
+
/** @deprecated Use `orderedApply` */
|
|
17
|
+
export declare const applyHooks: typeof orderedApply;
|
|
18
|
+
/** @deprecated Use CallbackDescriptor */
|
|
19
|
+
export type PluginHookObject<T extends (...args: any[]) => any> = CallbackDescriptor<T>;
|
|
20
|
+
/** @deprecated Use CallbackOrDescriptor */
|
|
21
|
+
export type PluginHook<T extends (...args: any[]) => PromiseOrDirect<UnwrapCallback<any> | void>> = CallbackOrDescriptor<T>;
|
|
22
|
+
/** @deprecated Use UnwrapCallback */
|
|
23
|
+
export type PluginHookCallback<T extends CallbackOrDescriptor<(...args: any[]) => any>> = UnwrapCallback<T>;
|
|
15
24
|
//# 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,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACf,MAAM,iBAAiB,CAAC;AAIzB,qBAAa,UAAU,CAAC,MAAM,SAAS,mBAAmB,CAAC,MAAM,CAAC;IAChE,SAAS,EAAE;SACR,GAAG,IAAI,MAAM,MAAM,CAAC,CAAC,EAAE,KAAK,CAC3B,MAAM,CAAC,MAAM,MAAM,CAAC,SAAS,oBAAoB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CACvE;KACF,CAAuB;IAExB,IAAI,CAAC,SAAS,SAAS,MAAM,MAAM,EACjC,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,oBAAoB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GACtE,IAAI;IAKP;;;OAGG;IACH,OAAO,CAAC,SAAS,SAAS,MAAM,MAAM,EACpC,QAAQ,EAAE,SAAS,EACnB,GAAG,IAAI,EAAE,UAAU,CACjB,MAAM,CAAC,SAAS,CAAC,SAAS,oBAAoB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CACpE,GACA,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CA2BxB;AAID,0CAA0C;AAC1C,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC;AACnD,qCAAqC;AACrC,eAAO,MAAM,UAAU,qBAAe,CAAC;AACvC,yCAAyC;AACzC,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,IAC5D,kBAAkB,CAAC,CAAC,CAAC,CAAC;AACxB,2CAA2C;AAC3C,MAAM,MAAM,UAAU,CACpB,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IACvE,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAC5B,qCAAqC;AACrC,MAAM,MAAM,kBAAkB,CAC5B,CAAC,SAAS,oBAAoB,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,IACrD,cAAc,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/hooks.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.applyHooks = exports.AsyncHooks = void 0;
|
|
4
|
-
const
|
|
4
|
+
const functionality_js_1 = require("./functionality.js");
|
|
5
5
|
const isDev = process.env.GRAPHILE_ENV === "development";
|
|
6
6
|
class AsyncHooks {
|
|
7
7
|
constructor() {
|
|
@@ -15,8 +15,8 @@ class AsyncHooks {
|
|
|
15
15
|
* Hooks can _mutate_ the argument, they cannot return a replacement. This
|
|
16
16
|
* allows us to completely side-step the problem of recursive calls.
|
|
17
17
|
*/
|
|
18
|
-
process(
|
|
19
|
-
const callbacks = this.callbacks[
|
|
18
|
+
process(hookName, ...args) {
|
|
19
|
+
const callbacks = this.callbacks[hookName];
|
|
20
20
|
if (!callbacks) {
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
@@ -31,7 +31,7 @@ class AsyncHooks {
|
|
|
31
31
|
const result = callback.apply(null, args);
|
|
32
32
|
if (result != null) {
|
|
33
33
|
if (isDev && typeof result.then !== "function") {
|
|
34
|
-
throw new Error(`Hook '${
|
|
34
|
+
throw new Error(`Hook '${hookName}' returned invalid value of type ${typeof result} - must be 'undefined' or a Promise/PromiseLike.`);
|
|
35
35
|
}
|
|
36
36
|
chain = result;
|
|
37
37
|
}
|
|
@@ -41,57 +41,6 @@ class AsyncHooks {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
exports.AsyncHooks = AsyncHooks;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const allHooks = Object.create(null);
|
|
47
|
-
let uid = 0;
|
|
48
|
-
if (plugins) {
|
|
49
|
-
for (const plugin of plugins) {
|
|
50
|
-
const hooks = hooksRetriever(plugin);
|
|
51
|
-
if (!hooks) {
|
|
52
|
-
continue;
|
|
53
|
-
}
|
|
54
|
-
const keys = Object.keys(hooks);
|
|
55
|
-
for (const key of keys) {
|
|
56
|
-
const hookSpecRaw = hooks[key];
|
|
57
|
-
if (!hookSpecRaw) {
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
// TypeScript nonsense
|
|
61
|
-
const isPluginHookObject = (v) => typeof v !== "function";
|
|
62
|
-
const isPluginHookFunction = (v) => typeof v === "function";
|
|
63
|
-
const callback = (isPluginHookFunction(hookSpecRaw) ? hookSpecRaw : hookSpecRaw.callback);
|
|
64
|
-
const { provides, before, after } = isPluginHookObject(hookSpecRaw)
|
|
65
|
-
? hookSpecRaw
|
|
66
|
-
: {};
|
|
67
|
-
if (!allHooks[key]) {
|
|
68
|
-
allHooks[key] = [];
|
|
69
|
-
}
|
|
70
|
-
// We need to give each hook a unique ID
|
|
71
|
-
const id = String(uid++);
|
|
72
|
-
allHooks[key].push({
|
|
73
|
-
id,
|
|
74
|
-
plugin,
|
|
75
|
-
callback,
|
|
76
|
-
provides: [...(provides || []), id, plugin.name],
|
|
77
|
-
before: before || [],
|
|
78
|
-
after: after || [],
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
// Sort the collections according to provides, before and after.
|
|
84
|
-
for (const hookName in allHooks) {
|
|
85
|
-
const hooks = allHooks[hookName];
|
|
86
|
-
if (!hooks) {
|
|
87
|
-
continue;
|
|
88
|
-
}
|
|
89
|
-
const final = (0, sort_js_1.sortWithBeforeAfterProvides)(hooks, "id");
|
|
90
|
-
// Finally we can register the hooks
|
|
91
|
-
for (const hook of final) {
|
|
92
|
-
applyHookCallback(hookName, hook.callback, hook.plugin);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
exports.applyHooks = applyHooks;
|
|
44
|
+
/** @deprecated Use `orderedApply` */
|
|
45
|
+
exports.applyHooks = functionality_js_1.orderedApply;
|
|
97
46
|
//# sourceMappingURL=hooks.js.map
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":";;;AAAA,yDAAkD;AASlD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,aAAa,CAAC;AAEzD,MAAa,UAAU;IAAvB;QACE,cAAS,GAIL,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IA8C1B,CAAC;IA5CC,IAAI,CACF,KAAgB,EAChB,EAAuE;QAEvE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,OAAO,CACL,QAAmB,EACnB,GAAG,IAEF;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE;YACd,OAAO;SACR;QACD,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;QAC3B,IAAI,KAAK,GAAG,SAAS,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;aACtD;iBAAM;gBACL,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC1C,IAAI,MAAM,IAAI,IAAI,EAAE;oBAClB,IAAI,KAAK,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;wBAC9C,MAAM,IAAI,KAAK,CACb,SACE,QACF,oCAAoC,OAAO,MAAM,kDAAkD,CACpG,CAAC;qBACH;oBACD,KAAK,GAAG,MAAM,CAAC;iBAChB;aACF;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAnDD,gCAmDC;AAMD,qCAAqC;AACxB,QAAA,UAAU,GAAG,+BAAY,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import "./interfaces.js";
|
|
2
2
|
export { GraphileConfig };
|
|
3
|
-
export {
|
|
4
|
-
export
|
|
3
|
+
export { orderedApply } from "./functionality.js";
|
|
4
|
+
export { applyHooks, AsyncHooks, HookObject, PluginHook, PluginHookObject, } from "./hooks.js";
|
|
5
|
+
export type { CallbackDescriptor, CallbackOrDescriptor, FunctionalityObject, } from "./interfaces.js";
|
|
6
|
+
export type { MiddlewareNext } from "./middleware.js";
|
|
7
|
+
export { Middleware } from "./middleware.js";
|
|
5
8
|
export { isResolvedPreset, resolvePresets } from "./resolvePresets.js";
|
|
6
9
|
export declare function sortedPlugins(plugins: GraphileConfig.Plugin[] | undefined): GraphileConfig.Plugin[];
|
|
7
10
|
declare global {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC;AAIzB,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC;AAIzB,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEvE,wBAAgB,aAAa,CAC3B,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,GAAG,SAAS,GAC3C,cAAc,CAAC,MAAM,EAAE,CAMzB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,cAAc,CAAC;QACvB,UAAU,MAAM;YACd,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,CAAC;YAChB,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;YACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;YACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;SACnB;QAED;;;;WAIG;QACH,UAAU,MAAM;YACd,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;YAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;YACnB,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;YACvC,aAAa,CAAC,EAAE,KAAK,CAAC;YACtB,cAAc,CAAC,EAAE,KAAK,CAAC;YACvB,WAAW,CAAC,EAAE,KAAK,CAAC;SAGrB;QAED,UAAU,cAAe,SAAQ,MAAM;YAErC,OAAO,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;YACnB,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;SACxC;KACF;CACF"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sortedPlugins = exports.resolvePresets = exports.isResolvedPreset = exports.AsyncHooks = exports.applyHooks = void 0;
|
|
3
|
+
exports.sortedPlugins = exports.resolvePresets = exports.isResolvedPreset = exports.Middleware = exports.AsyncHooks = exports.applyHooks = exports.orderedApply = void 0;
|
|
4
4
|
require("./interfaces.js");
|
|
5
5
|
const sort_js_1 = require("./sort.js");
|
|
6
|
+
var functionality_js_1 = require("./functionality.js");
|
|
7
|
+
Object.defineProperty(exports, "orderedApply", { enumerable: true, get: function () { return functionality_js_1.orderedApply; } });
|
|
6
8
|
var hooks_js_1 = require("./hooks.js");
|
|
7
9
|
Object.defineProperty(exports, "applyHooks", { enumerable: true, get: function () { return hooks_js_1.applyHooks; } });
|
|
8
10
|
Object.defineProperty(exports, "AsyncHooks", { enumerable: true, get: function () { return hooks_js_1.AsyncHooks; } });
|
|
11
|
+
var middleware_js_1 = require("./middleware.js");
|
|
12
|
+
Object.defineProperty(exports, "Middleware", { enumerable: true, get: function () { return middleware_js_1.Middleware; } });
|
|
9
13
|
var resolvePresets_js_1 = require("./resolvePresets.js");
|
|
10
14
|
Object.defineProperty(exports, "isResolvedPreset", { enumerable: true, get: function () { return resolvePresets_js_1.isResolvedPreset; } });
|
|
11
15
|
Object.defineProperty(exports, "resolvePresets", { enumerable: true, get: function () { return resolvePresets_js_1.resolvePresets; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2BAAyB;AAEzB,uCAAwD;AAIxD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2BAAyB;AAEzB,uCAAwD;AAIxD,uDAAkD;AAAzC,gHAAA,YAAY,OAAA;AACrB,uCAMoB;AALlB,sGAAA,UAAU,OAAA;AACV,sGAAA,UAAU,OAAA;AAWZ,iDAA6C;AAApC,2GAAA,UAAU,OAAA;AACnB,yDAAuE;AAA9D,qHAAA,gBAAgB,OAAA;AAAE,mHAAA,cAAc,OAAA;AAEzC,SAAgB,aAAa,CAC3B,OAA4C;IAE5C,IAAI,OAAO,EAAE;QACX,OAAO,IAAA,qCAA2B,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KACrD;SAAM;QACL,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AARD,sCAQC"}
|
package/dist/interfaces.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
export type
|
|
1
|
+
export type AnyCallback = (...args: any[]) => any;
|
|
2
|
+
export type CallbackDescriptor<T extends AnyCallback> = {
|
|
2
3
|
provides?: string[];
|
|
3
4
|
before?: string[];
|
|
4
5
|
after?: string[];
|
|
5
6
|
callback: T;
|
|
6
7
|
};
|
|
7
|
-
export type
|
|
8
|
-
export type
|
|
8
|
+
export type PromiseOrDirect<T> = T | PromiseLike<T>;
|
|
9
|
+
export type CallbackOrDescriptor<T extends AnyCallback> = T | CallbackDescriptor<T>;
|
|
10
|
+
export type UnwrapCallback<T extends CallbackOrDescriptor<AnyCallback>> = T extends CallbackOrDescriptor<infer U> ? U : never;
|
|
11
|
+
export type FunctionalityObject<T> = Record<keyof T, CallbackOrDescriptor<AnyCallback>>;
|
|
9
12
|
//# sourceMappingURL=interfaces.d.ts.map
|
package/dist/interfaces.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAElD,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,WAAW,IAAI;IACtD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,CAAC,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAEpD,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,WAAW,IAClD,CAAC,GACD,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAE1B,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,oBAAoB,CAAC,WAAW,CAAC,IACpE,CAAC,SAAS,oBAAoB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEtD,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,MAAM,CACzC,MAAM,CAAC,EACP,oBAAoB,CAAC,WAAW,CAAC,CAClC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { CallbackOrDescriptor, FunctionalityObject } from "./interfaces.js";
|
|
2
|
+
export interface MiddlewareNext<TRawResult, TAwaitedResult = Awaited<TRawResult>> {
|
|
3
|
+
(): TRawResult;
|
|
4
|
+
callback(callback: (error: object | null, result: TAwaitedResult) => TRawResult): TRawResult;
|
|
5
|
+
}
|
|
6
|
+
type ActivityFn<TActivities extends FunctionalityObject<TActivities>, TActivityName extends keyof TActivities> = TActivities[TActivityName] extends CallbackOrDescriptor<infer UFn> ? UFn : never;
|
|
7
|
+
type ActivityParameter<TActivities extends FunctionalityObject<TActivities>, TActivityName extends keyof TActivities> = TActivities[TActivityName] extends CallbackOrDescriptor<(arg: infer UArg) => any> ? UArg : never;
|
|
8
|
+
type RealActivityFn<TActivities extends FunctionalityObject<TActivities>, TActivityName extends keyof TActivities> = TActivities[TActivityName] extends CallbackOrDescriptor<(arg: infer UArg) => infer UResult> ? (next: MiddlewareNext<UResult>, arg: UArg) => UResult : never;
|
|
9
|
+
export declare class Middleware<TActivities extends FunctionalityObject<TActivities>> {
|
|
10
|
+
middleware: {
|
|
11
|
+
[key in keyof TActivities]?: Array<RealActivityFn<TActivities, key>>;
|
|
12
|
+
};
|
|
13
|
+
register<TActivityName extends keyof TActivities>(event: TActivityName, fn: RealActivityFn<TActivities, TActivityName>): void;
|
|
14
|
+
run<TActivityName extends keyof TActivities>(activityName: TActivityName, arg: ActivityParameter<TActivities, TActivityName>, activity: (arg: ActivityParameter<TActivities, TActivityName>) => ReturnType<ActivityFn<TActivities, TActivityName>>): ReturnType<ActivityFn<TActivities, TActivityName>>;
|
|
15
|
+
runSync<TActivityName extends keyof TActivities>(activityName: TActivityName, arg: ActivityParameter<TActivities, TActivityName>, activity: (arg: ActivityParameter<TActivities, TActivityName>) => ReturnType<ActivityFn<TActivities, TActivityName>>): ReturnType<ActivityFn<TActivities, TActivityName>>;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EAEpB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,cAAc,CAC7B,UAAU,EACV,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAEpC,IAAI,UAAU,CAAC;IACf,QAAQ,CACN,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,cAAc,KAAK,UAAU,GACrE,UAAU,CAAC;CACf;AAED,KAAK,UAAU,CACb,WAAW,SAAS,mBAAmB,CAAC,WAAW,CAAC,EACpD,aAAa,SAAS,MAAM,WAAW,IACrC,WAAW,CAAC,aAAa,CAAC,SAAS,oBAAoB,CAAC,MAAM,GAAG,CAAC,GAClE,GAAG,GACH,KAAK,CAAC;AACV,KAAK,iBAAiB,CACpB,WAAW,SAAS,mBAAmB,CAAC,WAAW,CAAC,EACpD,aAAa,SAAS,MAAM,WAAW,IACrC,WAAW,CAAC,aAAa,CAAC,SAAS,oBAAoB,CACzD,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,GAAG,CACzB,GACG,IAAI,GACJ,KAAK,CAAC;AAEV,KAAK,cAAc,CACjB,WAAW,SAAS,mBAAmB,CAAC,WAAW,CAAC,EACpD,aAAa,SAAS,MAAM,WAAW,IACrC,WAAW,CAAC,aAAa,CAAC,SAAS,oBAAoB,CACzD,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,MAAM,OAAO,CACnC,GACG,CAAC,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,KAAK,OAAO,GACrD,KAAK,CAAC;AAEV,qBAAa,UAAU,CAAC,WAAW,SAAS,mBAAmB,CAAC,WAAW,CAAC;IAC1E,UAAU,EAAE;SACT,GAAG,IAAI,MAAM,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;KACrE,CAAuB;IAExB,QAAQ,CAAC,aAAa,SAAS,MAAM,WAAW,EAC9C,KAAK,EAAE,aAAa,EACpB,EAAE,EAAE,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC,GAC7C,IAAI;IASP,GAAG,CAAC,aAAa,SAAS,MAAM,WAAW,EACzC,YAAY,EAAE,aAAa,EAC3B,GAAG,EAAE,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,EAClD,QAAQ,EAAE,CACR,GAAG,EAAE,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,KAC/C,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,GACtD,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAgBrD,OAAO,CAAC,aAAa,SAAS,MAAM,WAAW,EAC7C,YAAY,EAAE,aAAa,EAC3B,GAAG,EAAE,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,EAClD,QAAQ,EAAE,CACR,GAAG,EAAE,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,KAC/C,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,GACtD,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;CAgBtD"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Middleware = void 0;
|
|
4
|
+
const utils_js_1 = require("./utils.js");
|
|
5
|
+
class Middleware {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.middleware = Object.create(null);
|
|
8
|
+
}
|
|
9
|
+
register(event, fn) {
|
|
10
|
+
const list = this.middleware[event];
|
|
11
|
+
if (list !== undefined) {
|
|
12
|
+
list.push(fn);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
this.middleware[event] = [fn];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
run(activityName, arg, activity) {
|
|
19
|
+
const middleware = this.middleware[activityName];
|
|
20
|
+
if (middleware === undefined) {
|
|
21
|
+
return activity(arg);
|
|
22
|
+
}
|
|
23
|
+
const m = middleware.length - 1;
|
|
24
|
+
return executeMiddleware(activityName, true, middleware, activity, arg, 0, m);
|
|
25
|
+
}
|
|
26
|
+
runSync(activityName, arg, activity) {
|
|
27
|
+
const middleware = this.middleware[activityName];
|
|
28
|
+
if (middleware === undefined) {
|
|
29
|
+
return activity(arg);
|
|
30
|
+
}
|
|
31
|
+
const m = middleware.length - 1;
|
|
32
|
+
return executeMiddleware(activityName, false, middleware, activity, arg, 0, m);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.Middleware = Middleware;
|
|
36
|
+
function executeMiddleware(activityName, allowAsync, middlewareList, activity, arg, idx, maxIdx) {
|
|
37
|
+
const next = makeNext(idx === maxIdx
|
|
38
|
+
? () => activity(arg)
|
|
39
|
+
: () => executeMiddleware(activityName, allowAsync, middlewareList, activity, arg, idx + 1, maxIdx));
|
|
40
|
+
const middleware = middlewareList[idx];
|
|
41
|
+
const result = middleware(next, arg);
|
|
42
|
+
if (!allowAsync && (0, utils_js_1.isPromiseLike)(result)) {
|
|
43
|
+
throw new Error(`'${String(activityName)}' is a synchronous activity, all middleware must be synchronous but the middleware at index ${idx} returned a promise.`);
|
|
44
|
+
}
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
function makeNext(fn) {
|
|
48
|
+
let called = false;
|
|
49
|
+
const next = fn;
|
|
50
|
+
next.callback = (callback) => {
|
|
51
|
+
if (called) {
|
|
52
|
+
throw new Error(`next() was already called; don't call it twice!`);
|
|
53
|
+
}
|
|
54
|
+
called = true;
|
|
55
|
+
let result;
|
|
56
|
+
try {
|
|
57
|
+
result = fn();
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
return callback(error, undefined);
|
|
61
|
+
}
|
|
62
|
+
if ((0, utils_js_1.isPromiseLike)(result)) {
|
|
63
|
+
return result.then((result) => callback(null, result), callback);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
return callback(null, result);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
return next;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvePresets.d.ts","sourceRoot":"","sources":["../src/resolvePresets.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"resolvePresets.d.ts","sourceRoot":"","sources":["../src/resolvePresets.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC;AAuCzB,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,cAAc,CAAC,MAAM,GAC5B,MAAM,IAAI,cAAc,CAAC,cAAc,CAEzC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,EAC7C,cAAc,UAAO,GACpB,cAAc,CAAC,cAAc,CAkC/B"}
|
package/dist/resolvePresets.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.resolvePresets = exports.isResolvedPreset = void 0;
|
|
4
4
|
require("./interfaces.js");
|
|
5
5
|
const sort_js_1 = require("./sort.js");
|
|
6
|
-
const
|
|
6
|
+
const PROBABLY_A_PLUGIN_NOT_A_PRESET_KEYS = [
|
|
7
7
|
"name",
|
|
8
8
|
"experimental",
|
|
9
9
|
"provides",
|
|
@@ -14,7 +14,11 @@ const PRESET_FORBIDDEN_KEYS = [
|
|
|
14
14
|
"prependPlugins",
|
|
15
15
|
"skipPlugins",
|
|
16
16
|
];
|
|
17
|
-
const
|
|
17
|
+
const PROBABLY_A_PRESET_NOT_A_PLUGIN_KEYS = [
|
|
18
|
+
"plugins",
|
|
19
|
+
"disablePlugins",
|
|
20
|
+
"extends",
|
|
21
|
+
];
|
|
18
22
|
let inspect;
|
|
19
23
|
try {
|
|
20
24
|
inspect = require("util").inspect;
|
|
@@ -94,12 +98,28 @@ function assertPlugin(plugin) {
|
|
|
94
98
|
if (plugin.version != null && typeof plugin.version !== "string") {
|
|
95
99
|
throw new Error(`Expected plugin '${plugin.name}' to have a string 'version'; found ${inspect(plugin.version)}`);
|
|
96
100
|
}
|
|
97
|
-
|
|
101
|
+
const keys = Object.keys(plugin);
|
|
102
|
+
const forbiddenKeys = keys.filter(isForbiddenPluginKey);
|
|
103
|
+
if (forbiddenKeys.length) {
|
|
104
|
+
throw new Error(`Expected a GraphileConfig plugin, but found an object with forbidden keys ` +
|
|
105
|
+
`(e.g. keys starting with a capital letter, or a 'default' key). This typically indicates an ` +
|
|
106
|
+
`issue with ESM compatibility or import method, for example ` +
|
|
107
|
+
`doing \`import MyPlugin from 'my-plugin'\` instead of ` +
|
|
108
|
+
`\`import { MyPlugin } from 'my-plugin'\` or vice versa. ` +
|
|
109
|
+
`Forbidden keys: '${forbiddenKeys.join("', '")}', full value: '${inspect(plugin)}'`);
|
|
110
|
+
}
|
|
111
|
+
for (const forbiddenKey of PROBABLY_A_PRESET_NOT_A_PLUGIN_KEYS) {
|
|
98
112
|
if (plugin[forbiddenKey]) {
|
|
99
113
|
throw new Error(`Plugin '${plugin.name}' has '${forbiddenKey}' property which suggests it is a preset rather than a plugin. If it is indeed a preset you should add it to your preset via 'extends' rather than 'plugins'.`);
|
|
100
114
|
}
|
|
101
115
|
}
|
|
102
116
|
}
|
|
117
|
+
function isForbiddenPresetKey(key) {
|
|
118
|
+
return /^[A-Z_]/.test(key) || key === "default";
|
|
119
|
+
}
|
|
120
|
+
function isForbiddenPluginKey(key) {
|
|
121
|
+
return /^[A-Z_]/.test(key) || key === "default";
|
|
122
|
+
}
|
|
103
123
|
/**
|
|
104
124
|
* Turns a preset into a resolved preset (i.e. resolves all its `extends`).
|
|
105
125
|
*
|
|
@@ -109,8 +129,18 @@ function resolvePreset(preset) {
|
|
|
109
129
|
if (!isGraphileConfigPreset(preset)) {
|
|
110
130
|
throw new Error(`Expected a GraphileConfig preset (a plain JS object), but found '${inspect(preset)}'`);
|
|
111
131
|
}
|
|
132
|
+
const keys = Object.keys(preset);
|
|
133
|
+
const forbiddenKeys = keys.filter(isForbiddenPresetKey);
|
|
134
|
+
if (forbiddenKeys.length) {
|
|
135
|
+
throw new Error(`Expected a GraphileConfig preset, but found an object with forbidden keys ` +
|
|
136
|
+
`(e.g. keys starting with a capital letter, or a 'default' key). This typically indicates an ` +
|
|
137
|
+
`issue with ESM compatibility or import method, for example ` +
|
|
138
|
+
`doing \`import MyPreset from 'my-preset'\` instead of ` +
|
|
139
|
+
`\`import { MyPreset } from 'my-preset'\` or vice versa. ` +
|
|
140
|
+
`Forbidden keys: '${forbiddenKeys.join("', '")}', full value: '${inspect(preset)}'`);
|
|
141
|
+
}
|
|
112
142
|
try {
|
|
113
|
-
for (const forbiddenKey of
|
|
143
|
+
for (const forbiddenKey of PROBABLY_A_PLUGIN_NOT_A_PRESET_KEYS) {
|
|
114
144
|
if (preset[forbiddenKey]) {
|
|
115
145
|
throw new Error(`Preset has '${forbiddenKey}' property which suggests it is a plugin rather than a preset. If it is indeed a plugin you should add it to your preset via 'plugins' rather than 'extends'.`);
|
|
116
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvePresets.js","sourceRoot":"","sources":["../src/resolvePresets.ts"],"names":[],"mappings":";;;AAAA,2BAAyB;AAEzB,uCAAwD;AAExD,MAAM,
|
|
1
|
+
{"version":3,"file":"resolvePresets.js","sourceRoot":"","sources":["../src/resolvePresets.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,CAAC,EAC7B,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GACxB,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,CAMzB"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isPromiseLike = void 0;
|
|
4
|
+
function isPromiseLike(value) {
|
|
5
|
+
return (typeof value === "object" &&
|
|
6
|
+
value !== null &&
|
|
7
|
+
typeof value.then === "function");
|
|
8
|
+
}
|
|
9
|
+
exports.isPromiseLike = isPromiseLike;
|
|
10
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,aAAa,CAC3B,KAAyB;IAEzB,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAAa,CAAC,IAAI,KAAK,UAAU,CAC1C,CAAC;AACJ,CAAC;AARD,sCAQC"}
|