Files
test-repo/scripts/build-docs.js
T

70 lines
1.7 KiB
JavaScript
Raw Normal View History

2018-05-27 15:14:01 -03:00
#!/usr/bin/env node
"use strict";
const path = require("path");
const fs = require("fs");
2018-05-27 15:14:01 -03:00
const shell = require("shelljs");
const globby = require("globby");
const prettier = require("prettier");
2018-05-27 15:14:01 -03:00
shell.config.fatal = true;
2018-05-27 15:31:52 -03:00
const rootDir = path.join(__dirname, "..");
2018-05-27 15:14:01 -03:00
const docs = path.join(rootDir, "website/static/lib");
function pipe(string) {
return new shell.ShellString(string);
}
const isPullRequest = process.env.PULL_REQUEST === "true";
const prettierPath = path.join(
rootDir,
isPullRequest ? "dist" : "node_modules/prettier"
);
2018-05-27 15:14:01 -03:00
shell.mkdir("-p", docs);
if (isPullRequest) {
// --- Build prettier for PR ---
2018-05-27 21:51:50 -03:00
const pkg = require("../package.json");
const newPkg = { ...pkg, version: `999.999.999-pr.${process.env.REVIEW_ID}` };
pipe(JSON.stringify(newPkg, null, 2)).to("package.json");
shell.exec("yarn build");
pipe(JSON.stringify(pkg, null, 2) + "\n").to("package.json"); // restore
2018-05-27 15:14:01 -03:00
}
2019-01-11 00:33:43 +01:00
shell.cp(`${prettierPath}/standalone.js`, `${docs}/`);
shell.cp(`${prettierPath}/parser-*.js`, `${docs}/`);
2018-05-27 15:14:01 -03:00
const parserModules = globby.sync(["parser-*.js"], { cwd: prettierPath });
const parsers = {};
for (const file of parserModules) {
const plugin = require(path.join(prettierPath, file));
const property = file.replace(/\.js$/, "").split("-")[1];
parsers[file] = {
parsers: Object.keys(plugin.parsers),
property,
};
}
fs.writeFileSync(
`${docs}/parsers-location.js`,
prettier.format(
`
"use strict";
const parsersLocation = ${JSON.stringify(parsers)};
`,
{ parser: "babel" }
)
);
2018-05-27 15:14:01 -03:00
// --- Site ---
shell.cd("website");
shell.echo("Building website...");
shell.exec("yarn install");
shell.exec("yarn build");
shell.echo();