Initialisation

Added the packages and files for the backend server
This commit is contained in:
jackbeeby
2024-12-15 17:48:45 +11:00
parent 25066e1ee8
commit b412dfe2ca
2732 changed files with 330572 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
export declare class HeaderMap extends Map<string, string> {
private __identity;
set(key: string, value: string): this;
get(key: string): string | undefined;
delete(key: string): boolean;
has(key: string): boolean;
}
//# sourceMappingURL=HeaderMap.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"HeaderMap.d.ts","sourceRoot":"","sources":["../../../src/utils/HeaderMap.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAU,SAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAIhD,OAAO,CAAC,UAAU,CAAuB;IAEhC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIrC,GAAG,CAAC,GAAG,EAAE,MAAM;IAIf,MAAM,CAAC,GAAG,EAAE,MAAM;IAIlB,GAAG,CAAC,GAAG,EAAE,MAAM;CAGzB"}

View File

@@ -0,0 +1,19 @@
export class HeaderMap extends Map {
constructor() {
super(...arguments);
this.__identity = Symbol('HeaderMap');
}
set(key, value) {
return super.set(key.toLowerCase(), value);
}
get(key) {
return super.get(key.toLowerCase());
}
delete(key) {
return super.delete(key.toLowerCase());
}
has(key) {
return super.has(key.toLowerCase());
}
}
//# sourceMappingURL=HeaderMap.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"HeaderMap.js","sourceRoot":"","sources":["../../../src/utils/HeaderMap.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAU,SAAQ,GAAmB;IAAlD;;QAIU,eAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAiB3C,CAAC;IAfU,GAAG,CAAC,GAAW,EAAE,KAAa;QACrC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAEQ,GAAG,CAAC,GAAW;QACtB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACtC,CAAC;IAEQ,MAAM,CAAC,GAAW;QACzB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACzC,CAAC;IAEQ,GAAG,CAAC,GAAW;QACtB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACtC,CAAC;CACF"}

View File

@@ -0,0 +1,4 @@
export declare class UnreachableCaseError extends Error {
constructor(val: never);
}
//# sourceMappingURL=UnreachableCaseError.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"UnreachableCaseError.d.ts","sourceRoot":"","sources":["../../../src/utils/UnreachableCaseError.ts"],"names":[],"mappings":"AAKA,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,GAAG,EAAE,KAAK;CAGvB"}

View File

@@ -0,0 +1,6 @@
export class UnreachableCaseError extends Error {
constructor(val) {
super(`Unreachable case: ${val}`);
}
}
//# sourceMappingURL=UnreachableCaseError.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"UnreachableCaseError.js","sourceRoot":"","sources":["../../../src/utils/UnreachableCaseError.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,GAAU;QACpB,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;IACpC,CAAC;CACF"}

View File

@@ -0,0 +1,2 @@
export declare function computeCoreSchemaHash(schema: string): string;
//# sourceMappingURL=computeCoreSchemaHash.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"computeCoreSchemaHash.d.ts","sourceRoot":"","sources":["../../../src/utils/computeCoreSchemaHash.ts"],"names":[],"mappings":"AAMA,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5D"}

View File

@@ -0,0 +1,5 @@
import { createHash } from '@apollo/utils.createhash';
export function computeCoreSchemaHash(schema) {
return createHash('sha256').update(schema).digest('hex');
}
//# sourceMappingURL=computeCoreSchemaHash.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"computeCoreSchemaHash.js","sourceRoot":"","sources":["../../../src/utils/computeCoreSchemaHash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAMtD,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC"}

View File

@@ -0,0 +1,7 @@
type AsyncDidEndHook<TArgs extends any[]> = (...args: TArgs) => Promise<void>;
type SyncDidEndHook<TArgs extends any[]> = (...args: TArgs) => void;
export declare function invokeDidStartHook<T, TEndHookArgs extends unknown[]>(targets: T[], hook: (t: T) => Promise<AsyncDidEndHook<TEndHookArgs> | undefined | void>): Promise<AsyncDidEndHook<TEndHookArgs>>;
export declare function invokeSyncDidStartHook<T, TEndHookArgs extends unknown[]>(targets: T[], hook: (t: T) => SyncDidEndHook<TEndHookArgs> | undefined | void): SyncDidEndHook<TEndHookArgs>;
export declare function invokeHooksUntilDefinedAndNonNull<T, TOut>(targets: T[], hook: (t: T) => Promise<TOut | null | undefined>): Promise<TOut | null>;
export {};
//# sourceMappingURL=invokeHooks.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"invokeHooks.d.ts","sourceRoot":"","sources":["../../../src/utils/invokeHooks.ts"],"names":[],"mappings":"AAEA,KAAK,eAAe,CAAC,KAAK,SAAS,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9E,KAAK,cAAc,CAAC,KAAK,SAAS,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;AAEpE,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,YAAY,SAAS,OAAO,EAAE,EACxE,OAAO,EAAE,CAAC,EAAE,EACZ,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,GACxE,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAYxC;AAID,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,YAAY,SAAS,OAAO,EAAE,EACtE,OAAO,EAAE,CAAC,EAAE,EACZ,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,cAAc,CAAC,YAAY,CAAC,GAAG,SAAS,GAAG,IAAI,GAC9D,cAAc,CAAC,YAAY,CAAC,CAY9B;AAED,wBAAsB,iCAAiC,CAAC,CAAC,EAAE,IAAI,EAC7D,OAAO,EAAE,CAAC,EAAE,EACZ,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC,GAC/C,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAQtB"}

View File

@@ -0,0 +1,31 @@
import { isDefined } from './isDefined.js';
export async function invokeDidStartHook(targets, hook) {
const didEndHooks = (await Promise.all(targets.map((target) => hook(target)))).filter(isDefined);
didEndHooks.reverse();
return async (...args) => {
for (const didEndHook of didEndHooks) {
didEndHook(...args);
}
};
}
export function invokeSyncDidStartHook(targets, hook) {
const didEndHooks = targets
.map((target) => hook(target))
.filter(isDefined);
didEndHooks.reverse();
return (...args) => {
for (const didEndHook of didEndHooks) {
didEndHook(...args);
}
};
}
export async function invokeHooksUntilDefinedAndNonNull(targets, hook) {
for (const target of targets) {
const value = await hook(target);
if (value != null) {
return value;
}
}
return null;
}
//# sourceMappingURL=invokeHooks.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"invokeHooks.js","sourceRoot":"","sources":["../../../src/utils/invokeHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAK3C,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAY,EACZ,IAAyE;IAEzE,MAAM,WAAW,GAAG,CAClB,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CACzD,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEpB,WAAW,CAAC,OAAO,EAAE,CAAC;IAEtB,OAAO,KAAK,EAAE,GAAG,IAAkB,EAAE,EAAE;QACrC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAID,MAAM,UAAU,sBAAsB,CACpC,OAAY,EACZ,IAA+D;IAE/D,MAAM,WAAW,GAAmC,OAAO;SACxD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7B,MAAM,CAAC,SAAS,CAAC,CAAC;IAErB,WAAW,CAAC,OAAO,EAAE,CAAC;IAEtB,OAAO,CAAC,GAAG,IAAkB,EAAE,EAAE;QAC/B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACrD,OAAY,EACZ,IAAgD;IAEhD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}

View File

@@ -0,0 +1,2 @@
export declare function isDefined<T>(t: T | undefined | null | void): t is T;
//# sourceMappingURL=isDefined.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"isDefined.d.ts","sourceRoot":"","sources":["../../../src/utils/isDefined.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAEnE"}

View File

@@ -0,0 +1,4 @@
export function isDefined(t) {
return t != null;
}
//# sourceMappingURL=isDefined.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"isDefined.js","sourceRoot":"","sources":["../../../src/utils/isDefined.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAI,CAA8B;IACzD,OAAO,CAAC,IAAI,IAAI,CAAC;AACnB,CAAC"}

View File

@@ -0,0 +1,5 @@
import type { GatewayGraphQLRequestContext } from '@apollo/server-gateway-interface';
import type { ApolloServer, ApolloServerInternals } from '../ApolloServer';
import type { BaseContext, GraphQLRequestContextExecutionDidStart } from '../externalTypes';
export declare function makeGatewayGraphQLRequestContext<TContext extends BaseContext>(as4RequestContext: GraphQLRequestContextExecutionDidStart<TContext>, server: ApolloServer<TContext>, internals: ApolloServerInternals<TContext>): GatewayGraphQLRequestContext;
//# sourceMappingURL=makeGatewayGraphQLRequestContext.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"makeGatewayGraphQLRequestContext.d.ts","sourceRoot":"","sources":["../../../src/utils/makeGatewayGraphQLRequestContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,4BAA4B,EAG7B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,KAAK,EACV,WAAW,EACX,sCAAsC,EACvC,MAAM,kBAAkB,CAAC;AAyE1B,wBAAgB,gCAAgC,CAAC,QAAQ,SAAS,WAAW,EAC3E,iBAAiB,EAAE,sCAAsC,CAAC,QAAQ,CAAC,EACnE,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC9B,SAAS,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GACzC,4BAA4B,CAqE9B"}

View File

@@ -0,0 +1,92 @@
export function makeGatewayGraphQLRequestContext(as4RequestContext, server, internals) {
const request = {};
if ('query' in as4RequestContext.request) {
request.query = as4RequestContext.request.query;
}
if ('operationName' in as4RequestContext.request) {
request.operationName = as4RequestContext.request.operationName;
}
if ('variables' in as4RequestContext.request) {
request.variables = as4RequestContext.request.variables;
}
if ('extensions' in as4RequestContext.request) {
request.extensions = as4RequestContext.request.extensions;
}
if (as4RequestContext.request.http) {
const as4http = as4RequestContext.request.http;
const needQuestion = as4http.search !== '' && !as4http.search.startsWith('?');
request.http = {
method: as4http.method,
url: `https://unknown-url.invalid/${needQuestion ? '?' : ''}${as4http.search}`,
headers: new FetcherHeadersForHeaderMap(as4http.headers),
};
}
const response = {
http: {
headers: new FetcherHeadersForHeaderMap(as4RequestContext.response.http.headers),
get status() {
return as4RequestContext.response.http.status;
},
set status(newStatus) {
as4RequestContext.response.http.status = newStatus;
},
},
};
return {
request,
response,
logger: server.logger,
schema: as4RequestContext.schema,
schemaHash: 'schemaHash no longer exists in Apollo Server 4',
context: as4RequestContext.contextValue,
cache: server.cache,
queryHash: as4RequestContext.queryHash,
document: as4RequestContext.document,
source: as4RequestContext.source,
operationName: as4RequestContext.operationName,
operation: as4RequestContext.operation,
errors: as4RequestContext.errors,
metrics: as4RequestContext.metrics,
debug: internals.includeStacktraceInErrorResponses,
overallCachePolicy: as4RequestContext.overallCachePolicy,
requestIsBatched: as4RequestContext.requestIsBatched,
};
}
class FetcherHeadersForHeaderMap {
constructor(map) {
this.map = map;
}
append(name, value) {
if (this.map.has(name)) {
this.map.set(name, this.map.get(name) + ', ' + value);
}
else {
this.map.set(name, value);
}
}
delete(name) {
this.map.delete(name);
}
get(name) {
return this.map.get(name) ?? null;
}
has(name) {
return this.map.has(name);
}
set(name, value) {
this.map.set(name, value);
}
entries() {
return this.map.entries();
}
keys() {
return this.map.keys();
}
values() {
return this.map.values();
}
[Symbol.iterator]() {
return this.map.entries();
}
}
//# sourceMappingURL=makeGatewayGraphQLRequestContext.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"makeGatewayGraphQLRequestContext.js","sourceRoot":"","sources":["../../../src/utils/makeGatewayGraphQLRequestContext.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,7 @@
export type Resolvable<T> = Promise<T> & {
resolve: (t: T) => void;
reject: (e: any) => void;
};
declare const _default: <T = void>() => Resolvable<T>;
export default _default;
//# sourceMappingURL=resolvable.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"resolvable.d.ts","sourceRoot":"","sources":["../../../src/utils/resolvable.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG;IACvC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IACxB,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CAC1B,CAAC;wCAE2B,WAAW,CAAC,CAAC;AAA1C,wBAUE"}

View File

@@ -0,0 +1,12 @@
export default () => {
let resolve;
let reject;
const promise = new Promise((_resolve, _reject) => {
resolve = _resolve;
reject = _reject;
});
promise.resolve = resolve;
promise.reject = reject;
return promise;
};
//# sourceMappingURL=resolvable.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"resolvable.js","sourceRoot":"","sources":["../../../src/utils/resolvable.ts"],"names":[],"mappings":"AAmBA,eAAe,GAA4B,EAAE;IAC3C,IAAI,OAAyB,CAAC;IAC9B,IAAI,MAA0B,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QACnD,OAAO,GAAG,QAAQ,CAAC;QACnB,MAAM,GAAG,OAAO,CAAC;IACnB,CAAC,CAAkB,CAAC;IACpB,OAAO,CAAC,OAAO,GAAG,OAAQ,CAAC;IAC3B,OAAO,CAAC,MAAM,GAAG,MAAO,CAAC;IACzB,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}

View File

@@ -0,0 +1,16 @@
import { type GraphQLSchema } from 'graphql';
import type { BaseContext } from '../externalTypes/index.js';
export declare const symbolExecutionDispatcherWillResolveField: unique symbol;
export declare const symbolUserFieldResolver: unique symbol;
declare const symbolPluginsEnabled: unique symbol;
export declare function enablePluginsForSchemaResolvers<TContext extends BaseContext>(schema: GraphQLSchema & {
[symbolPluginsEnabled]?: boolean;
}): GraphQLSchema & {
[symbolPluginsEnabled]?: boolean | undefined;
};
export declare function pluginsEnabledForSchemaResolvers(schema: GraphQLSchema & {
[symbolPluginsEnabled]?: boolean;
}): boolean;
export declare function whenResultIsFinished(result: any, callback: (err: Error | null, result?: any) => void): void;
export {};
//# sourceMappingURL=schemaInstrumentation.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"schemaInstrumentation.d.ts","sourceRoot":"","sources":["../../../src/utils/schemaInstrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAMnB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EACV,WAAW,EAEZ,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,yCAAyC,eAErD,CAAC;AACF,eAAO,MAAM,uBAAuB,eAA0C,CAAC;AAC/E,QAAA,MAAM,oBAAoB,eAAuC,CAAC;AAElE,wBAAgB,+BAA+B,CAAC,QAAQ,SAAS,WAAW,EAC1E,MAAM,EAAE,aAAa,GAAG;IAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,OAAO,CAAA;CAAE;;EAuB7D;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,aAAa,GAAG;IAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3D,OAAO,CAET;AA6DD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,QAmBpD"}

View File

@@ -0,0 +1,69 @@
import { getNamedType, GraphQLObjectType, defaultFieldResolver, } from 'graphql';
export const symbolExecutionDispatcherWillResolveField = Symbol('apolloServerExecutionDispatcherWillResolveField');
export const symbolUserFieldResolver = Symbol('apolloServerUserFieldResolver');
const symbolPluginsEnabled = Symbol('apolloServerPluginsEnabled');
export function enablePluginsForSchemaResolvers(schema) {
if (pluginsEnabledForSchemaResolvers(schema)) {
return schema;
}
Object.defineProperty(schema, symbolPluginsEnabled, {
value: true,
});
const typeMap = schema.getTypeMap();
Object.values(typeMap).forEach((type) => {
if (!getNamedType(type).name.startsWith('__') &&
type instanceof GraphQLObjectType) {
const fields = type.getFields();
Object.values(fields).forEach((field) => {
wrapField(field);
});
}
});
return schema;
}
export function pluginsEnabledForSchemaResolvers(schema) {
return !!schema[symbolPluginsEnabled];
}
function wrapField(field) {
const originalFieldResolve = field.resolve;
field.resolve = (source, args, contextValue, info) => {
const willResolveField = contextValue?.[symbolExecutionDispatcherWillResolveField];
const userFieldResolver = contextValue?.[symbolUserFieldResolver];
const didResolveField = typeof willResolveField === 'function' &&
willResolveField({ source, args, contextValue, info });
const fieldResolver = originalFieldResolve || userFieldResolver || defaultFieldResolver;
try {
const result = fieldResolver(source, args, contextValue, info);
if (typeof didResolveField === 'function') {
whenResultIsFinished(result, didResolveField);
}
return result;
}
catch (error) {
if (typeof didResolveField === 'function') {
didResolveField(error);
}
throw error;
}
};
}
function isPromise(x) {
return x && typeof x.then === 'function';
}
export function whenResultIsFinished(result, callback) {
if (isPromise(result)) {
result.then((r) => whenResultIsFinished(r, callback), (err) => callback(err));
}
else if (Array.isArray(result)) {
if (result.some(isPromise)) {
Promise.all(result).then((r) => callback(null, r), (err) => callback(err));
}
else {
callback(null, result);
}
}
else {
callback(null, result);
}
}
//# sourceMappingURL=schemaInstrumentation.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"schemaInstrumentation.js","sourceRoot":"","sources":["../../../src/utils/schemaInstrumentation.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,31 @@
import type { Logger } from '@apollo/utils.logger';
import type { GraphQLSchema } from 'graphql';
import type { GatewayExecutor, GatewayInterface, GatewayUnsubscriber } from '@apollo/server-gateway-interface';
import type { SchemaDerivedData } from '../ApolloServer.js';
import type { ApolloConfig, GraphQLSchemaContext } from '../externalTypes/index.js';
type SchemaDerivedDataProvider = (apiSchema: GraphQLSchema) => SchemaDerivedData;
export declare class SchemaManager {
private readonly logger;
private readonly schemaDerivedDataProvider;
private readonly onSchemaLoadOrUpdateListeners;
private isStopped;
private schemaDerivedData?;
private schemaContext?;
private readonly modeSpecificState;
constructor(options: ({
gateway: GatewayInterface;
apolloConfig: ApolloConfig;
} | {
apiSchema: GraphQLSchema;
}) & {
logger: Logger;
schemaDerivedDataProvider: SchemaDerivedDataProvider;
});
start(): Promise<GatewayExecutor | null>;
onSchemaLoadOrUpdate(callback: (schemaContext: GraphQLSchemaContext) => void): GatewayUnsubscriber;
getSchemaDerivedData(): SchemaDerivedData;
stop(): Promise<void>;
private processSchemaLoadOrUpdateEvent;
}
export {};
//# sourceMappingURL=schemaManager.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"schemaManager.d.ts","sourceRoot":"","sources":["../../../src/utils/schemaManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AAEnC,KAAK,yBAAyB,GAAG,CAC/B,SAAS,EAAE,aAAa,KACrB,iBAAiB,CAAC;AAevB,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAA4B;IACtE,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAE1C;IACJ,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,iBAAiB,CAAC,CAAoB;IAC9C,OAAO,CAAC,aAAa,CAAC,CAAuB;IAG7C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAW5B;gBAGJ,OAAO,EAAE,CACL;QAAE,OAAO,EAAE,gBAAgB,CAAC;QAAC,YAAY,EAAE,YAAY,CAAA;KAAE,GACzD;QAAE,SAAS,EAAE,aAAa,CAAA;KAAE,CAC/B,GAAG;QACF,MAAM,EAAE,MAAM,CAAC;QACf,yBAAyB,EAAE,yBAAyB,CAAC;KACtD;IA8BU,KAAK,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IA8C9C,oBAAoB,CACzB,QAAQ,EAAE,CAAC,aAAa,EAAE,oBAAoB,KAAK,IAAI,GACtD,mBAAmB;IA6Bf,oBAAoB,IAAI,iBAAiB;IAcnC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQlC,OAAO,CAAC,8BAA8B;CAqBvC"}

View File

@@ -0,0 +1,94 @@
export class SchemaManager {
constructor(options) {
this.onSchemaLoadOrUpdateListeners = new Set();
this.isStopped = false;
this.logger = options.logger;
this.schemaDerivedDataProvider = options.schemaDerivedDataProvider;
if ('gateway' in options) {
this.modeSpecificState = {
mode: 'gateway',
gateway: options.gateway,
apolloConfig: options.apolloConfig,
};
}
else {
this.modeSpecificState = {
mode: 'schema',
apiSchema: options.apiSchema,
schemaDerivedData: options.schemaDerivedDataProvider(options.apiSchema),
};
}
}
async start() {
if (this.modeSpecificState.mode === 'gateway') {
const gateway = this.modeSpecificState.gateway;
if (gateway.onSchemaLoadOrUpdate) {
this.modeSpecificState.unsubscribeFromGateway =
gateway.onSchemaLoadOrUpdate((schemaContext) => {
this.processSchemaLoadOrUpdateEvent(schemaContext);
});
}
else {
throw new Error("Unexpectedly couldn't find onSchemaLoadOrUpdate on gateway");
}
const config = await this.modeSpecificState.gateway.load({
apollo: this.modeSpecificState.apolloConfig,
});
return config.executor;
}
else {
this.processSchemaLoadOrUpdateEvent({
apiSchema: this.modeSpecificState.apiSchema,
}, this.modeSpecificState.schemaDerivedData);
return null;
}
}
onSchemaLoadOrUpdate(callback) {
if (!this.schemaContext) {
throw new Error('You must call start() before onSchemaLoadOrUpdate()');
}
if (!this.isStopped) {
try {
callback(this.schemaContext);
}
catch (e) {
throw new Error(`An error was thrown from an 'onSchemaLoadOrUpdate' listener: ${e.message}`);
}
}
this.onSchemaLoadOrUpdateListeners.add(callback);
return () => {
this.onSchemaLoadOrUpdateListeners.delete(callback);
};
}
getSchemaDerivedData() {
if (!this.schemaDerivedData) {
throw new Error('You must call start() before getSchemaDerivedData()');
}
return this.schemaDerivedData;
}
async stop() {
this.isStopped = true;
if (this.modeSpecificState.mode === 'gateway') {
this.modeSpecificState.unsubscribeFromGateway?.();
await this.modeSpecificState.gateway.stop?.();
}
}
processSchemaLoadOrUpdateEvent(schemaContext, schemaDerivedData) {
if (!this.isStopped) {
this.schemaDerivedData =
schemaDerivedData ??
this.schemaDerivedDataProvider(schemaContext.apiSchema);
this.schemaContext = schemaContext;
this.onSchemaLoadOrUpdateListeners.forEach((listener) => {
try {
listener(schemaContext);
}
catch (e) {
this.logger.error("An error was thrown from an 'onSchemaLoadOrUpdate' listener");
this.logger.error(e);
}
});
}
}
}
//# sourceMappingURL=schemaManager.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"schemaManager.js","sourceRoot":"","sources":["../../../src/utils/schemaManager.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,4 @@
/// <reference types="node" />
import type { Server } from 'http';
export declare function urlForHttpServer(httpServer: Server): string;
//# sourceMappingURL=urlForHttpServer.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"urlForHttpServer.d.ts","sourceRoot":"","sources":["../../../src/utils/urlForHttpServer.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAInC,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAgB3D"}

View File

@@ -0,0 +1,12 @@
import { format } from 'url';
export function urlForHttpServer(httpServer) {
const { address, port } = httpServer.address();
const hostname = address === '' || address === '::' ? 'localhost' : address;
return format({
protocol: 'http',
hostname,
port,
pathname: '/',
});
}
//# sourceMappingURL=urlForHttpServer.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"urlForHttpServer.js","sourceRoot":"","sources":["../../../src/utils/urlForHttpServer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAE7B,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,OAAO,EAAiB,CAAC;IAO9D,MAAM,QAAQ,GAAG,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;IAE5E,OAAO,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM;QAChB,QAAQ;QACR,IAAI;QACJ,QAAQ,EAAE,GAAG;KACd,CAAC,CAAC;AACL,CAAC"}