@actonate/mirkwood
Version:
GraphQL based Rapid Server-side Development framework
68 lines (50 loc) • 2.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _apolloResolvers = require('apollo-resolvers');
var _apolloErrors = require('apollo-errors');
var _errors = require('./errors');
var _authenticator = require('./authenticator');
var _authenticator2 = _interopRequireDefault(_authenticator);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Resolver = function () {
function Resolver(resolverName, fn) {
_classCallCheck(this, Resolver);
this._resolverName = resolverName;
return this.auth().createResolver(fn);
}
_createClass(Resolver, [{
key: 'base',
value: function base() {
return (0, _apolloResolvers.createResolver)(null, function (_, args, ctx, error) {
var env = process.env['NODE_ENV'] || 'development';
if (env === 'production') {
return (0, _apolloErrors.isInstance)(error) ? error : new _errors.UnknownError({ data: error });
}
});
}
}, {
key: 'auth',
value: function auth() {
var _this = this;
var authResolver = function authResolver(_, args, ctx) {
// skip auth check for gqlQuery
if (ctx.gqlQuery) {
return Promise.resolve();
}
var resolverName = _this._resolverName;
var modelName = ctx.model;
return _authenticator2.default.checkAuthentication({
resolverName: resolverName,
modelName: modelName
}, ctx.req);
};
return this.base().createResolver(authResolver);
}
}]);
return Resolver;
}();
exports.default = Resolver;