@graphql-inspector/loaders
Advanced tools
Comparing version 0.0.0-canary.3c127cf to 0.0.0-canary.485af9a
116
index.cjs.js
@@ -6,38 +6,98 @@ 'use strict'; | ||
const load = require('@graphql-tools/load'); | ||
const graphql = require('graphql'); | ||
class LoadersRegistry { | ||
constructor() { | ||
this.loaders = []; | ||
} | ||
register(loader) { | ||
this.loaders.push(loader); | ||
} | ||
registerModule(loaderName) { | ||
try { | ||
const loader = loadModule(`@graphql-inspector/${loaderName}-loader`); | ||
this.register(loader); | ||
} catch (error) { | ||
console.error(error); | ||
throw new Error(`Couldn't load ${loaderName} loader`); | ||
constructor() { | ||
this.loaders = []; | ||
} | ||
} | ||
loadSchema(pointer, options = {}) { | ||
return load.loadSchema(pointer, Object.assign({loaders: this.loaders}, options)); | ||
} | ||
loadDocuments(pointer, options = {}) { | ||
return load.loadDocuments( | ||
pointer, | ||
Object.assign({loaders: this.loaders}, options), | ||
); | ||
} | ||
register(loader) { | ||
this.loaders.push(loader); | ||
} | ||
registerModule(loaderName) { | ||
try { | ||
const loader = loadModule(`@graphql-inspector/${loaderName}-loader`); | ||
this.register(loader); | ||
} | ||
catch (error) { | ||
console.error(error); | ||
throw new Error(`Couldn't load ${loaderName} loader`); | ||
} | ||
} | ||
loadSchema(pointer, options = {}, enableApolloFederation, enableAWS) { | ||
return enrichError(load.loadSchema(pointer, Object.assign(Object.assign(Object.assign({ loaders: this.loaders }, options), (enableApolloFederation | ||
? { | ||
schemas: [ | ||
graphql.buildSchema(/* GraphQL */ ` | ||
scalar _FieldSet | ||
directive @external on FIELD_DEFINITION | ||
directive @requires(fields: _FieldSet!) on FIELD_DEFINITION | ||
directive @provides(fields: _FieldSet!) on FIELD_DEFINITION | ||
directive @key(fields: _FieldSet!) on OBJECT | INTERFACE | ||
directive @extends on OBJECT | INTERFACE | ||
`), | ||
], | ||
} | ||
: {})), (enableAWS | ||
? { | ||
schemas: [ | ||
graphql.buildSchema(/* GraphQL */ ` | ||
scalar AWSDate | ||
scalar AWSTime | ||
scalar AWSDateTime | ||
scalar AWSTimestamp | ||
scalar AWSEmail | ||
scalar AWSJSON | ||
scalar AWSURL | ||
scalar AWSPhone | ||
scalar AWSIPAddress | ||
scalar BigInt | ||
scalar Double | ||
directive @aws_subscribe( | ||
mutations: [String!]! | ||
) on FIELD_DEFINITION | ||
directive @deprecated( | ||
reason: String | ||
) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION | ENUM | ENUM_VALUE | ||
directive @aws_auth( | ||
cognito_groups: [String!]! | ||
) on FIELD_DEFINITION | ||
directive @aws_api_key on FIELD_DEFINITION | OBJECT | ||
directive @aws_iam on FIELD_DEFINITION | OBJECT | ||
directive @aws_oidc on FIELD_DEFINITION | OBJECT | ||
directive @aws_cognito_user_pools( | ||
cognito_groups: [String!] | ||
) on FIELD_DEFINITION | OBJECT | ||
`), | ||
], | ||
} | ||
: {})))); | ||
} | ||
loadDocuments(pointer, options = {}) { | ||
return enrichError(load.loadDocuments(pointer, Object.assign({ loaders: this.loaders }, options))); | ||
} | ||
} | ||
function useLoaders(config) { | ||
const loaders = new LoadersRegistry(); | ||
config.loaders.forEach((loaderName) => loaders.registerModule(loaderName)); | ||
return loaders; | ||
const loaders = new LoadersRegistry(); | ||
config.loaders.forEach((loaderName) => loaders.registerModule(loaderName)); | ||
return loaders; | ||
} | ||
function loadModule(name) { | ||
const mod = require(name); | ||
return mod.default ? mod.default : mod; | ||
const mod = require(name); | ||
return mod.default ? mod.default : mod; | ||
} | ||
/** | ||
* Adds `(source: <file-path>)` suffix to error message if source is available | ||
*/ | ||
function enrichError(looksPromising) { | ||
return looksPromising.catch((error) => { | ||
var _a, _b; | ||
if ((_a = error.source) === null || _a === void 0 ? void 0 : _a.name) { | ||
error.message = `${error.message} (source: ${(_b = error.source) === null || _b === void 0 ? void 0 : _b.name})`; | ||
} | ||
return Promise.reject(error); | ||
}); | ||
} | ||
@@ -44,0 +104,0 @@ exports.LoadersRegistry = LoadersRegistry; |
@@ -1,26 +0,13 @@ | ||
import {InspectorConfig} from '@graphql-inspector/config'; | ||
import { | ||
Source, | ||
UniversalLoader, | ||
SchemaPointerSingle, | ||
} from '@graphql-tools/utils'; | ||
import {LoadSchemaOptions, LoadTypedefsOptions} from '@graphql-tools/load'; | ||
import {GraphQLSchema} from 'graphql'; | ||
import { InspectorConfig } from '@graphql-inspector/config'; | ||
import { Source, UniversalLoader, SchemaPointerSingle } from '@graphql-tools/utils'; | ||
import { LoadSchemaOptions, LoadTypedefsOptions } from '@graphql-tools/load'; | ||
import { GraphQLSchema } from 'graphql'; | ||
export declare class LoadersRegistry { | ||
private loaders; | ||
register(loader: UniversalLoader): void; | ||
registerModule(loaderName: string): void; | ||
loadSchema( | ||
pointer: SchemaPointerSingle, | ||
options?: Omit<LoadSchemaOptions, 'loaders'>, | ||
): Promise<GraphQLSchema>; | ||
loadDocuments( | ||
pointer: SchemaPointerSingle, | ||
options?: Omit<LoadTypedefsOptions, 'loaders'>, | ||
): Promise<Source[]>; | ||
private loaders; | ||
register(loader: UniversalLoader): void; | ||
registerModule(loaderName: string): void; | ||
loadSchema(pointer: SchemaPointerSingle, options: Omit<LoadSchemaOptions, "loaders"> | undefined, enableApolloFederation: boolean, enableAWS: boolean): Promise<GraphQLSchema>; | ||
loadDocuments(pointer: SchemaPointerSingle, options?: Omit<LoadTypedefsOptions, 'loaders'>): Promise<Source[]>; | ||
} | ||
export declare type Loaders = Pick< | ||
LoadersRegistry, | ||
'loadSchema' | 'loadDocuments' | ||
>; | ||
export declare type Loaders = Pick<LoadersRegistry, 'loadSchema' | 'loadDocuments'>; | ||
export declare function useLoaders(config: InspectorConfig): Loaders; |
116
index.esm.js
import { loadSchema, loadDocuments } from '@graphql-tools/load'; | ||
import { buildSchema } from 'graphql'; | ||
class LoadersRegistry { | ||
constructor() { | ||
this.loaders = []; | ||
} | ||
register(loader) { | ||
this.loaders.push(loader); | ||
} | ||
registerModule(loaderName) { | ||
try { | ||
const loader = loadModule(`@graphql-inspector/${loaderName}-loader`); | ||
this.register(loader); | ||
} catch (error) { | ||
console.error(error); | ||
throw new Error(`Couldn't load ${loaderName} loader`); | ||
constructor() { | ||
this.loaders = []; | ||
} | ||
} | ||
loadSchema(pointer, options = {}) { | ||
return loadSchema(pointer, Object.assign({loaders: this.loaders}, options)); | ||
} | ||
loadDocuments(pointer, options = {}) { | ||
return loadDocuments( | ||
pointer, | ||
Object.assign({loaders: this.loaders}, options), | ||
); | ||
} | ||
register(loader) { | ||
this.loaders.push(loader); | ||
} | ||
registerModule(loaderName) { | ||
try { | ||
const loader = loadModule(`@graphql-inspector/${loaderName}-loader`); | ||
this.register(loader); | ||
} | ||
catch (error) { | ||
console.error(error); | ||
throw new Error(`Couldn't load ${loaderName} loader`); | ||
} | ||
} | ||
loadSchema(pointer, options = {}, enableApolloFederation, enableAWS) { | ||
return enrichError(loadSchema(pointer, Object.assign(Object.assign(Object.assign({ loaders: this.loaders }, options), (enableApolloFederation | ||
? { | ||
schemas: [ | ||
buildSchema(/* GraphQL */ ` | ||
scalar _FieldSet | ||
directive @external on FIELD_DEFINITION | ||
directive @requires(fields: _FieldSet!) on FIELD_DEFINITION | ||
directive @provides(fields: _FieldSet!) on FIELD_DEFINITION | ||
directive @key(fields: _FieldSet!) on OBJECT | INTERFACE | ||
directive @extends on OBJECT | INTERFACE | ||
`), | ||
], | ||
} | ||
: {})), (enableAWS | ||
? { | ||
schemas: [ | ||
buildSchema(/* GraphQL */ ` | ||
scalar AWSDate | ||
scalar AWSTime | ||
scalar AWSDateTime | ||
scalar AWSTimestamp | ||
scalar AWSEmail | ||
scalar AWSJSON | ||
scalar AWSURL | ||
scalar AWSPhone | ||
scalar AWSIPAddress | ||
scalar BigInt | ||
scalar Double | ||
directive @aws_subscribe( | ||
mutations: [String!]! | ||
) on FIELD_DEFINITION | ||
directive @deprecated( | ||
reason: String | ||
) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION | ENUM | ENUM_VALUE | ||
directive @aws_auth( | ||
cognito_groups: [String!]! | ||
) on FIELD_DEFINITION | ||
directive @aws_api_key on FIELD_DEFINITION | OBJECT | ||
directive @aws_iam on FIELD_DEFINITION | OBJECT | ||
directive @aws_oidc on FIELD_DEFINITION | OBJECT | ||
directive @aws_cognito_user_pools( | ||
cognito_groups: [String!] | ||
) on FIELD_DEFINITION | OBJECT | ||
`), | ||
], | ||
} | ||
: {})))); | ||
} | ||
loadDocuments(pointer, options = {}) { | ||
return enrichError(loadDocuments(pointer, Object.assign({ loaders: this.loaders }, options))); | ||
} | ||
} | ||
function useLoaders(config) { | ||
const loaders = new LoadersRegistry(); | ||
config.loaders.forEach((loaderName) => loaders.registerModule(loaderName)); | ||
return loaders; | ||
const loaders = new LoadersRegistry(); | ||
config.loaders.forEach((loaderName) => loaders.registerModule(loaderName)); | ||
return loaders; | ||
} | ||
function loadModule(name) { | ||
const mod = require(name); | ||
return mod.default ? mod.default : mod; | ||
const mod = require(name); | ||
return mod.default ? mod.default : mod; | ||
} | ||
/** | ||
* Adds `(source: <file-path>)` suffix to error message if source is available | ||
*/ | ||
function enrichError(looksPromising) { | ||
return looksPromising.catch((error) => { | ||
var _a, _b; | ||
if ((_a = error.source) === null || _a === void 0 ? void 0 : _a.name) { | ||
error.message = `${error.message} (source: ${(_b = error.source) === null || _b === void 0 ? void 0 : _b.name})`; | ||
} | ||
return Promise.reject(error); | ||
}); | ||
} | ||
export { LoadersRegistry, useLoaders }; | ||
//# sourceMappingURL=index.esm.js.map |
{ | ||
"name": "@graphql-inspector/loaders", | ||
"version": "0.0.0-canary.3c127cf", | ||
"version": "0.0.0-canary.485af9a", | ||
"description": "Loaders in GraphQL Inspector", | ||
"sideEffects": false, | ||
"peerDependencies": { | ||
"@graphql-inspector/config": "0.0.0-canary.3c127cf", | ||
"@graphql-tools/utils": "^6.0.0", | ||
"@graphql-inspector/config": "0.0.0-canary.485af9a", | ||
"@graphql-tools/utils": "^6.0.0 || ^7.0.0", | ||
"graphql": "^0.13.0 || ^14.0.0 || ^15.0.0" | ||
@@ -10,0 +10,0 @@ }, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
21608
206