UNPKG

concise

Version:

A tool belt for concise schemas

51 lines (39 loc) 1.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _mergeSchemas = _interopRequireDefault(require("./mergeSchemas")); var _preprocessSchema = _interopRequireDefault(require("./preprocessSchema")); var _authorizer = _interopRequireDefault(require("./authorizer")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class Concise { constructor() { this.schema = { models: {} }; } async input(processor, options = {}) { const schema = await processor(options); this.addSchema(schema); return this.schema; } addSchema(schema) { // TODO: validate? this.schema = (0, _mergeSchemas.default)(this.schema, schema); } getSchema() { return this.schema; } async output(processor, options = {}) { const preprocessedSchema = (0, _preprocessSchema.default)(this.schema); const authorizer = new _authorizer.default(preprocessedSchema.authRules); const utils = { preprocessedSchema, authorizer }; return processor(this.schema, options, utils); } } var _default = Concise; exports.default = _default;