webserv
Version:
a quick, flexible, fully typed development server
34 lines • 1.62 kB
JavaScript
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports", "path", "../../core/services/crud.service", "../../core/util/file/readDir", "../../core/util/file/readFile"], factory);
}
})(function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = require("path");
const crud_service_1 = require("../../core/services/crud.service");
const readDir_1 = require("../../core/util/file/readDir");
const readFile_1 = require("../../core/util/file/readFile");
function createFileLoader(path) {
function dataLoader(id) {
if (id) {
const filePath = path_1.resolve(path, `${id}.json`);
return readFile_1.readJsonFile(filePath).catch(() => undefined);
}
return readDir_1.readDir(path).then((files) => Promise.all(files.filter((file) => file.endsWith('.json')).map((file) => readFile_1.readJsonFile(path_1.resolve(path, file)))));
}
return dataLoader;
}
exports.bootCrudService = (config, { configPath }) => {
if (config.loadData) {
const path = path_1.resolve(configPath, config.loadData.path);
config.dataLoader = createFileLoader(path);
}
return crud_service_1.crudService(config);
};
});
//# sourceMappingURL=crud.js.map