unmock-core
Version:
[][npmjs] [](https://circleci.com/gh/unmock/unmock-js) [](h
60 lines • 2.75 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const debug_1 = require("debug");
const fs = require("fs");
const lodash_1 = require("lodash");
const path = require("path");
const debugLog = debug_1.default("unmock:fs-service-def-loader");
class FsServiceDefLoader {
constructor(options) {
this.unmockDirectories = options.unmockDirectories;
}
static readServiceDirectory(absoluteDirectory) {
const serviceFiles = fs
.readdirSync(absoluteDirectory)
.map((fileName) => path.join(absoluteDirectory, fileName))
.filter((fileName) => fs.statSync(fileName).isFile())
.map((f) => ({
basename: path.basename(f),
contents: fs.readFileSync(f).toString("utf-8"),
}));
return {
absolutePath: absoluteDirectory,
directoryName: path.basename(absoluteDirectory),
serviceFiles,
};
}
static loadSyncUnmockDirectory(unmockDirectory) {
if (!(fs.existsSync(unmockDirectory) &&
fs.statSync(unmockDirectory).isDirectory())) {
throw new Error(`Directory ${unmockDirectory} does not exist.`);
}
debugLog(`Reading services from ${unmockDirectory}`);
const serviceDirectories = fs
.readdirSync(unmockDirectory)
.map((f) => path.join(unmockDirectory, f))
.filter((f) => fs.statSync(f).isDirectory());
debugLog(`Found ${serviceDirectories.length} services in ${unmockDirectory}`);
const serviceDefs = serviceDirectories.map((dir) => FsServiceDefLoader.readServiceDirectory(dir));
return serviceDefs;
}
load() {
return __awaiter(this, void 0, void 0, function* () {
return this.loadSync();
});
}
loadSync() {
return lodash_1.flatMap(this.unmockDirectories, (directory) => FsServiceDefLoader.loadSyncUnmockDirectory(directory));
}
}
exports.FsServiceDefLoader = FsServiceDefLoader;
//# sourceMappingURL=fs-service-def-loader.js.map