graphql-modules
Version:
Create reusable, maintainable, testable and extendable GraphQL modules
83 lines (82 loc) • 3.21 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.NonDocumentNodeError = exports.ResolverInvalidError = exports.ResolverDuplicatedError = exports.ExtraMiddlewareError = exports.ExtraResolverError = exports.ModuleDuplicatedError = exports.ModuleNonUniqueIdError = void 0;
exports.useLocation = useLocation;
exports.ExtendableBuiltin = ExtendableBuiltin;
exports.composeMessage = composeMessage;
class ModuleNonUniqueIdError extends ExtendableBuiltin(Error) {
constructor(message, ...rest) {
super(composeMessage(message, ...rest));
this.name = this.constructor.name;
this.message = composeMessage(message, ...rest);
}
}
exports.ModuleNonUniqueIdError = ModuleNonUniqueIdError;
class ModuleDuplicatedError extends ExtendableBuiltin(Error) {
constructor(message, ...rest) {
super(composeMessage(message, ...rest));
this.name = this.constructor.name;
this.message = composeMessage(message, ...rest);
}
}
exports.ModuleDuplicatedError = ModuleDuplicatedError;
class ExtraResolverError extends ExtendableBuiltin(Error) {
constructor(message, ...rest) {
super(composeMessage(message, ...rest));
this.name = this.constructor.name;
this.message = composeMessage(message, ...rest);
}
}
exports.ExtraResolverError = ExtraResolverError;
class ExtraMiddlewareError extends ExtendableBuiltin(Error) {
constructor(message, ...rest) {
super(composeMessage(message, ...rest));
this.name = this.constructor.name;
this.message = composeMessage(message, ...rest);
}
}
exports.ExtraMiddlewareError = ExtraMiddlewareError;
class ResolverDuplicatedError extends ExtendableBuiltin(Error) {
constructor(message, ...rest) {
super(composeMessage(message, ...rest));
this.name = this.constructor.name;
this.message = composeMessage(message, ...rest);
}
}
exports.ResolverDuplicatedError = ResolverDuplicatedError;
class ResolverInvalidError extends ExtendableBuiltin(Error) {
constructor(message, ...rest) {
super(composeMessage(message, ...rest));
this.name = this.constructor.name;
this.message = composeMessage(message, ...rest);
}
}
exports.ResolverInvalidError = ResolverInvalidError;
class NonDocumentNodeError extends ExtendableBuiltin(Error) {
constructor(message, ...rest) {
super(composeMessage(message, ...rest));
this.name = this.constructor.name;
this.message = composeMessage(message, ...rest);
}
}
exports.NonDocumentNodeError = NonDocumentNodeError;
// helpers
function useLocation({ dirname, id }) {
return dirname
? `Module "${id}" located at ${dirname}`
: [
`Module "${id}"`,
`Hint: pass __dirname to "dirname" option of your modules to get more insightful errors`,
].join('\n');
}
function ExtendableBuiltin(cls) {
function ExtendableBuiltin() {
cls.apply(this, arguments);
}
ExtendableBuiltin.prototype = Object.create(cls.prototype);
Object.setPrototypeOf(ExtendableBuiltin, cls);
return ExtendableBuiltin;
}
function composeMessage(...lines) {
return lines.join('\n');
}