🚀 Big News:Socket Has Acquired Secure Annex.Learn More
Socket
Book a DemoSign in
Socket

graphile-config

Package Overview
Dependencies
Maintainers
1
Versions
42
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

graphile-config - npm Package Compare versions

Comparing version
0.0.1-beta.8
to
0.0.1-beta.9
+3
dist/functionality.d.ts
import type { CallbackOrDescriptor, FunctionalityObject } from "./interfaces.js";
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;
//# sourceMappingURL=functionality.d.ts.map
{"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"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.orderedApply = void 0;
const sort_js_1 = require("./sort.js");
function orderedApply(plugins, functionalityRetriever, applyCallback) {
// Normalize all the hooks and gather them into collections
const allFunctionalities = Object.create(null);
let uid = 0;
if (plugins) {
for (const plugin of plugins) {
const hooks = functionalityRetriever(plugin);
if (!hooks) {
continue;
}
const keys = Object.keys(hooks);
for (const key of keys) {
const hookSpecRaw = hooks[key];
if (!hookSpecRaw) {
continue;
}
// TypeScript nonsense
const isCallbackDescriptor = (v) => typeof v !== "function";
const isCallback = (v) => typeof v === "function";
const callback = (isCallback(hookSpecRaw) ? hookSpecRaw : hookSpecRaw.callback);
const { provides, before, after } = isCallbackDescriptor(hookSpecRaw)
? hookSpecRaw
: {};
if (!allFunctionalities[key]) {
allFunctionalities[key] = [];
}
// We need to give each functionality a unique ID
const id = String(uid++);
allFunctionalities[key].push({
id,
plugin,
callback,
provides: [...(provides || []), id, plugin.name],
before: before || [],
after: after || [],
});
}
}
}
// Sort the collections according to provides, before and after.
for (const functionalityName in allFunctionalities) {
const functionalities = allFunctionalities[functionalityName];
if (!functionalities) {
continue;
}
const final = (0, sort_js_1.sortWithBeforeAfterProvides)(functionalities, "id");
// Finally we can register the functionalities
for (const functionality of final) {
applyCallback(functionalityName, functionality.callback, functionality.plugin);
}
}
}
exports.orderedApply = orderedApply;
//# sourceMappingURL=functionality.js.map
{"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"}
import type { CallbackOrDescriptor, FunctionalityObject } from "./interfaces.js";
export interface MiddlewareNext<TRawResult, TAwaitedResult = Awaited<TRawResult>> {
(): TRawResult;
callback(callback: (error: object | null, result: TAwaitedResult) => TRawResult): TRawResult;
}
type ActivityFn<TActivities extends FunctionalityObject<TActivities>, TActivityName extends keyof TActivities> = TActivities[TActivityName] extends CallbackOrDescriptor<infer UFn> ? UFn : never;
type ActivityParameter<TActivities extends FunctionalityObject<TActivities>, TActivityName extends keyof TActivities> = TActivities[TActivityName] extends CallbackOrDescriptor<(arg: infer UArg) => any> ? UArg : never;
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;
export declare class Middleware<TActivities extends FunctionalityObject<TActivities>> {
middleware: {
[key in keyof TActivities]?: Array<RealActivityFn<TActivities, key>>;
};
register<TActivityName extends keyof TActivities>(event: TActivityName, fn: RealActivityFn<TActivities, TActivityName>): void;
run<TActivityName extends keyof TActivities>(activityName: TActivityName, arg: ActivityParameter<TActivities, TActivityName>, activity: (arg: ActivityParameter<TActivities, TActivityName>) => ReturnType<ActivityFn<TActivities, TActivityName>>): ReturnType<ActivityFn<TActivities, TActivityName>>;
runSync<TActivityName extends keyof TActivities>(activityName: TActivityName, arg: ActivityParameter<TActivities, TActivityName>, activity: (arg: ActivityParameter<TActivities, TActivityName>) => ReturnType<ActivityFn<TActivities, TActivityName>>): ReturnType<ActivityFn<TActivities, TActivityName>>;
}
export {};
//# sourceMappingURL=middleware.d.ts.map
{"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"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Middleware = void 0;
const utils_js_1 = require("./utils.js");
class Middleware {
constructor() {
this.middleware = Object.create(null);
}
register(event, fn) {
const list = this.middleware[event];
if (list !== undefined) {
list.push(fn);
}
else {
this.middleware[event] = [fn];
}
}
run(activityName, arg, activity) {
const middleware = this.middleware[activityName];
if (middleware === undefined) {
return activity(arg);
}
const m = middleware.length - 1;
return executeMiddleware(activityName, true, middleware, activity, arg, 0, m);
}
runSync(activityName, arg, activity) {
const middleware = this.middleware[activityName];
if (middleware === undefined) {
return activity(arg);
}
const m = middleware.length - 1;
return executeMiddleware(activityName, false, middleware, activity, arg, 0, m);
}
}
exports.Middleware = Middleware;
function executeMiddleware(activityName, allowAsync, middlewareList, activity, arg, idx, maxIdx) {
const next = makeNext(idx === maxIdx
? () => activity(arg)
: () => executeMiddleware(activityName, allowAsync, middlewareList, activity, arg, idx + 1, maxIdx));
const middleware = middlewareList[idx];
const result = middleware(next, arg);
if (!allowAsync && (0, utils_js_1.isPromiseLike)(result)) {
throw new Error(`'${String(activityName)}' is a synchronous activity, all middleware must be synchronous but the middleware at index ${idx} returned a promise.`);
}
return result;
}
function makeNext(fn) {
let called = false;
const next = fn;
next.callback = (callback) => {
if (called) {
throw new Error(`next() was already called; don't call it twice!`);
}
called = true;
let result;
try {
result = fn();
}
catch (error) {
return callback(error, undefined);
}
if ((0, utils_js_1.isPromiseLike)(result)) {
return result.then((result) => callback(null, result), callback);
}
else {
return callback(null, result);
}
};
return next;
}
//# sourceMappingURL=middleware.js.map
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}
export declare function isPromiseLike<T>(value: T | PromiseLike<T>): value is PromiseLike<T>;
//# sourceMappingURL=utils.d.ts.map
{"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"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isPromiseLike = void 0;
function isPromiseLike(value) {
return (typeof value === "object" &&
value !== null &&
typeof value.then === "function");
}
exports.isPromiseLike = isPromiseLike;
//# sourceMappingURL=utils.js.map
{"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"}
+69
-0
# graphile-config
## 0.0.1-beta.9
### Patch Changes
- [#2071](https://github.com/graphile/crystal/pull/2071)
[`582bd768f`](https://github.com/graphile/crystal/commit/582bd768fec403ce3284f293b85b9fd86e4d3f40)
Thanks [@benjie](https://github.com/benjie)! - `GrafastExecutionArgs` now
accepts `resolvedPreset` and `requestContext` directly; passing these through
additional arguments is now deprecated and support will be removed in a future
revision. This affects:
- `grafast()`
- `execute()`
- `subscribe()`
- `hookArgs()`
`graphile-config` has gained a middleware system which is more powerful than
it's AsyncHooks system. Old hooks can be emulated through the middleware
system safely since middleware is a superset of hooks' capabilities.
`applyHooks` has been renamed to `orderedApply` (because it applies to more
than just hooks), calling `applyHooks` will still work but is deprecated.
🚨 `grafast` no longer automatically reads your `graphile.config.ts` or
similar; you must do that yourself and pass the `resolvedPreset` to grafast
via the `args`. This is to aid in bundling of grafast since it should not need
to read from filesystem or dynamically load modules.
`grafast` no longer outputs performance warning when you set
`GRAPHILE_ENV=development`.
🚨 `plugin.grafast.hooks.args` is now `plugin.grafast.middleware.prepareArgs`,
and the signature has changed - you must be sure to call the `next()` function
and ctx/resolvedPreset can be extracted directly from `args`:
```diff
const plugin = {
grafast: {
- hooks: {
+ middleware: {
- args({ args, ctx, resolvedPreset }) {
+ prepareArgs(next, { args }) {
+ const { requestContext: ctx, resolvedPreset } = args;
// ...
+ return next();
}
}
}
}
```
Many more middleware have been added; use TypeScript's autocomplete to see
what's available until we have proper documentation for them.
`plugin.grafserv.hooks.*` are still supported but deprecated; instead use
middleware `plugin.grafserv.middleware.*` (note that call signatures have
changed slightly, similar to the diff above):
- `hooks.init` -> `middleware.setPreset`
- `hooks.processGraphQLRequestBody` -> `middleware.processGraphQLRequestBody`
- `hooks.ruruHTMLParts` -> `middleware.ruruHTMLParts`
A few TypeScript types related to Hooks have been renamed, but their old names
are still available, just deprecated. They will be removed in a future update:
- `HookObject` -> `FunctionalityObject`
- `PluginHook` -> `CallbackOrDescriptor`
- `PluginHookObject` -> `CallbackDescriptor`
- `PluginHookCallback` -> `UnwrapCallback`
## 0.0.1-beta.8

@@ -4,0 +73,0 @@

+16
-7

@@ -1,8 +0,8 @@

import type { PluginHook } from "./interfaces.js";
export type HookObject<T> = Record<keyof T, PluginHook<(...args: any[]) => any>>;
export declare class AsyncHooks<THooks extends HookObject<THooks>> {
import { orderedApply } from "./functionality.js";
import type { CallbackDescriptor, CallbackOrDescriptor, FunctionalityObject, PromiseOrDirect, UnwrapCallback } from "./interfaces.js";
export declare class AsyncHooks<THooks extends FunctionalityObject<THooks>> {
callbacks: {
[key in keyof THooks]?: Array<THooks[keyof THooks] extends PluginHook<infer U> ? U : never>;
[key in keyof THooks]?: Array<THooks[keyof THooks] extends CallbackOrDescriptor<infer U> ? U : never>;
};
hook<THookName extends keyof THooks>(event: THookName, fn: THooks[THookName] extends PluginHook<infer U> ? U : never): void;
hook<THookName extends keyof THooks>(event: THookName, fn: THooks[THookName] extends CallbackOrDescriptor<infer U> ? U : never): void;
/**

@@ -12,5 +12,14 @@ * Hooks can _mutate_ the argument, they cannot return a replacement. This

*/
process<THookName extends keyof THooks>(event: THookName, ...args: Parameters<THooks[THookName] extends PluginHook<infer U> ? U : never>): void | Promise<void>;
process<THookName extends keyof THooks>(hookName: THookName, ...args: Parameters<THooks[THookName] extends CallbackOrDescriptor<infer U> ? U : never>): void | Promise<void>;
}
export declare function applyHooks<THooks extends HookObject<THooks>>(plugins: readonly 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;
/** @deprecated Use FunctionalityObject */
export type HookObject<T> = FunctionalityObject<T>;
/** @deprecated Use `orderedApply` */
export declare const applyHooks: typeof orderedApply;
/** @deprecated Use CallbackDescriptor */
export type PluginHookObject<T extends (...args: any[]) => any> = CallbackDescriptor<T>;
/** @deprecated Use CallbackOrDescriptor */
export type PluginHook<T extends (...args: any[]) => PromiseOrDirect<UnwrapCallback<any> | void>> = CallbackOrDescriptor<T>;
/** @deprecated Use UnwrapCallback */
export type PluginHookCallback<T extends CallbackOrDescriptor<(...args: any[]) => any>> = UnwrapCallback<T>;
//# sourceMappingURL=hooks.d.ts.map

@@ -1,1 +0,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,SAAS,cAAc,CAAC,MAAM,EAAE,GAAG,SAAS,EACrD,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"}
{"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"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.applyHooks = exports.AsyncHooks = void 0;
const sort_js_1 = require("./sort.js");
const functionality_js_1 = require("./functionality.js");
const isDev = process.env.GRAPHILE_ENV === "development";

@@ -18,4 +18,4 @@ class AsyncHooks {

*/
process(event, ...args) {
const callbacks = this.callbacks[event];
process(hookName, ...args) {
const callbacks = this.callbacks[hookName];
if (!callbacks) {

@@ -35,3 +35,3 @@ return;

if (isDev && typeof result.then !== "function") {
throw new Error(`Hook '${event}' returned invalid value of type ${typeof result} - must be 'undefined' or a Promise/PromiseLike.`);
throw new Error(`Hook '${hookName}' returned invalid value of type ${typeof result} - must be 'undefined' or a Promise/PromiseLike.`);
}

@@ -46,55 +46,4 @@ chain = result;

exports.AsyncHooks = AsyncHooks;
function applyHooks(plugins, hooksRetriever, applyHookCallback) {
// Normalize all the hooks and gather them into collections
const allHooks = Object.create(null);
let uid = 0;
if (plugins) {
for (const plugin of plugins) {
const hooks = hooksRetriever(plugin);
if (!hooks) {
continue;
}
const keys = Object.keys(hooks);
for (const key of keys) {
const hookSpecRaw = hooks[key];
if (!hookSpecRaw) {
continue;
}
// TypeScript nonsense
const isPluginHookObject = (v) => typeof v !== "function";
const isPluginHookFunction = (v) => typeof v === "function";
const callback = (isPluginHookFunction(hookSpecRaw) ? hookSpecRaw : hookSpecRaw.callback);
const { provides, before, after } = isPluginHookObject(hookSpecRaw)
? hookSpecRaw
: {};
if (!allHooks[key]) {
allHooks[key] = [];
}
// We need to give each hook a unique ID
const id = String(uid++);
allHooks[key].push({
id,
plugin,
callback,
provides: [...(provides || []), id, plugin.name],
before: before || [],
after: after || [],
});
}
}
}
// Sort the collections according to provides, before and after.
for (const hookName in allHooks) {
const hooks = allHooks[hookName];
if (!hooks) {
continue;
}
const final = (0, sort_js_1.sortWithBeforeAfterProvides)(hooks, "id");
// Finally we can register the hooks
for (const hook of final) {
applyHookCallback(hookName, hook.callback, hook.plugin);
}
}
}
exports.applyHooks = applyHooks;
/** @deprecated Use `orderedApply` */
exports.applyHooks = functionality_js_1.orderedApply;
//# sourceMappingURL=hooks.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
{"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"}
import "./interfaces.js";
export { GraphileConfig };
export { applyHooks, AsyncHooks, HookObject } from "./hooks.js";
export type { PluginHook, PluginHookObject } from "./interfaces.js";
export { orderedApply } from "./functionality.js";
export { applyHooks, AsyncHooks, HookObject, PluginHook, PluginHookObject, } from "./hooks.js";
export type { CallbackDescriptor, CallbackOrDescriptor, FunctionalityObject, } from "./interfaces.js";
export type { MiddlewareNext } from "./middleware.js";
export { Middleware } from "./middleware.js";
export { isResolvedPreset, resolvePresets } from "./resolvePresets.js";

@@ -6,0 +9,0 @@ export declare function sortedPlugins(plugins: GraphileConfig.Plugin[] | undefined): GraphileConfig.Plugin[];

@@ -1,1 +0,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,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAChE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpE,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"}
{"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"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.sortedPlugins = exports.resolvePresets = exports.isResolvedPreset = exports.AsyncHooks = exports.applyHooks = void 0;
exports.sortedPlugins = exports.resolvePresets = exports.isResolvedPreset = exports.Middleware = exports.AsyncHooks = exports.applyHooks = exports.orderedApply = void 0;
require("./interfaces.js");
const sort_js_1 = require("./sort.js");
var functionality_js_1 = require("./functionality.js");
Object.defineProperty(exports, "orderedApply", { enumerable: true, get: function () { return functionality_js_1.orderedApply; } });
var hooks_js_1 = require("./hooks.js");
Object.defineProperty(exports, "applyHooks", { enumerable: true, get: function () { return hooks_js_1.applyHooks; } });
Object.defineProperty(exports, "AsyncHooks", { enumerable: true, get: function () { return hooks_js_1.AsyncHooks; } });
var middleware_js_1 = require("./middleware.js");
Object.defineProperty(exports, "Middleware", { enumerable: true, get: function () { return middleware_js_1.Middleware; } });
var resolvePresets_js_1 = require("./resolvePresets.js");

@@ -10,0 +14,0 @@ Object.defineProperty(exports, "isResolvedPreset", { enumerable: true, get: function () { return resolvePresets_js_1.isResolvedPreset; } });

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2BAAyB;AAEzB,uCAAwD;AAIxD,uCAAgE;AAAvD,sGAAA,UAAU,OAAA;AAAE,sGAAA,UAAU,OAAA;AAE/B,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"}
{"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"}

@@ -1,2 +0,3 @@

export type PluginHookObject<T extends (...args: any[]) => any> = {
export type AnyCallback = (...args: any[]) => any;
export type CallbackDescriptor<T extends AnyCallback> = {
provides?: string[];

@@ -7,4 +8,6 @@ before?: string[];

};
export type PluginHook<T extends (...args: any[]) => any> = T | PluginHookObject<T>;
export type PluginHookCallback<T extends PluginHook<(...args: any[]) => any>> = T extends PluginHook<infer U> ? U : never;
export type PromiseOrDirect<T> = T | PromiseLike<T>;
export type CallbackOrDescriptor<T extends AnyCallback> = T | CallbackDescriptor<T>;
export type UnwrapCallback<T extends CallbackOrDescriptor<AnyCallback>> = T extends CallbackOrDescriptor<infer U> ? U : never;
export type FunctionalityObject<T> = Record<keyof T, CallbackOrDescriptor<AnyCallback>>;
//# sourceMappingURL=interfaces.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI;IAChE,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,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,IACpD,CAAC,GACD,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAExB,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,IAC1E,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC"}
{"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"}
{
"name": "graphile-config",
"version": "0.0.1-beta.8",
"version": "0.0.1-beta.9",
"description": "Standard plugin interface and helpers to be used across the Graphile stack.",

@@ -5,0 +5,0 @@ "type": "commonjs",