infopack
Version:
Information package generator
45 lines (44 loc) • 1.71 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.run = run;
exports.step = step;
var bluebird_1 = require("bluebird");
var fast_glob_1 = __importDefault(require("fast-glob"));
var fs_1 = __importDefault(require("fs"));
var path_1 = __importDefault(require("path"));
var pipeline_1 = require("../pipeline");
function run(executor) {
return bluebird_1.Promise
.resolve()
.then(function () { return (0, fast_glob_1.default)([executor.getInputPath('/**/*.meta-input.json')]); })
.then(function (paths) { return bluebird_1.Promise.mapSeries(paths, function (metaInputPath) {
var filePath = metaInputPath.replace('.meta-input.json', '');
var metaInput;
try {
metaInput = JSON.parse(fs_1.default.readFileSync(metaInputPath).toString());
}
catch (error) {
throw new Error('Could not parse (bad JSON): ' + metaInputPath);
}
return {
path: path_1.default.relative(executor.getInputPath(), filePath),
metaInput: metaInput,
data: fs_1.default.readFileSync(filePath)
};
}); })
.then(function (files) { return bluebird_1.Promise.mapSeries(files, function (f) {
return executor.toOutput({
path: f.path,
data: f.data,
title: f.metaInput.title,
description: f.metaInput.description,
labels: f.metaInput.labels
});
}); });
}
function step(settings) {
return new pipeline_1.PipelineStep(run, settings);
}