@fabrix/spool-tapestries
Version:
Spool - Tapestries, Easy RESTful Services
57 lines (56 loc) • 2.61 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const common_1 = require("@fabrix/fabrix/dist/common");
const utils_1 = require("./utils");
const validator_1 = require("./validator");
const config = require("./config/index");
const pkg = require("../package.json");
const api = require("./api/index");
class TapestriesSpool extends common_1.Spool {
constructor(app) {
super(app, {
config: config,
pkg: pkg,
api: api
});
this.modelTapestries = true;
}
validate() {
return __awaiter(this, void 0, void 0, function* () {
this.modelTapestries = true;
if (!this.app.api.services.TapestryService) {
this.log.warn('spool-tapestries is installed, but TapestryService is not provided');
this.modelTapestries = false;
}
if (!this.app.api.controllers.TapestryController) {
this.log.warn('spool-tapestries is installed, but TapestryController is not provided');
this.modelTapestries = false;
}
return Promise.all([
validator_1.validateConfig.validateConfig(this.app.config.get('tapestries'))
])
.catch(err => {
return Promise.reject(err);
});
});
}
configure() {
return __awaiter(this, void 0, void 0, function* () {
const controllerTapestries = utils_1.Utils.getControllerTapestries(this.app) || {};
const modelTapestries = this.modelTapestries ? utils_1.Utils.getModelTapestries(this.app) : {};
const tapestryRoutes = Object.assign({}, controllerTapestries, modelTapestries);
const configRoutes = this.app.config.get('routes') || {};
this.app.config.set('routes', Object.assign({}, tapestryRoutes, configRoutes));
return Promise.resolve();
});
}
}
exports.TapestriesSpool = TapestriesSpool;