web-api-manager/gulpfile.js

40 lines
1.5 KiB
JavaScript
Raw Normal View History

const gulp = require("gulp");
const fs = require("fs");
2017-09-12 22:34:25 +00:00
gulp.task('default', function () {
2017-10-13 22:30:57 +00:00
const isLineAComment = function (aLine) {
const lineStartsWithComment = (
aLine.indexOf("// ") === 0 ||
aLine.indexOf("/*") === 0 ||
aLine.indexOf(" */") === 0 ||
aLine.indexOf(" * ") === 0
);
return lineStartsWithComment;
};
2017-10-13 22:30:57 +00:00
const builtScriptComment = "/** This file is automatically generated. **/\n";
const standardsDefDir = "data/standards";
2017-09-12 22:34:25 +00:00
// Build all the standards listings into a single features.js file.
const combinedStandards = fs.readdirSync(standardsDefDir)
2017-09-12 22:34:25 +00:00
.reduce(function (prev, next) {
if (next.indexOf(".json") === -1) {
return prev;
}
const fileContents = fs.readFileSync(standardsDefDir + "/" + next, {encoding: "utf8"});
const standardContents = JSON.parse(fileContents);
const nameParts = [standardContents.info.name, standardContents.info.subsection_name].filter(part => !!part);
const standardIdenitifer = nameParts.join(": ").trim();
standardContents.info.identifier = standardIdenitifer;
prev[standardIdenitifer] = standardContents;
2017-09-12 22:34:25 +00:00
return prev;
}, {});
2017-10-13 22:30:57 +00:00
const renderedStandardsModule = builtScriptComment + `window.WEB_API_MANAGER.standards = ${JSON.stringify(combinedStandards)};`;
2017-09-12 22:34:25 +00:00
fs.writeFileSync("data/standards.js", renderedStandardsModule);
2017-09-12 22:34:25 +00:00
});