@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
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
21608
206