* Move files around in preparation for refactor * Update paths in build script * Extract generic printing logic from the JavaScript printer * Conform printer API * Fixup decorator handling * Fix multiparser * Create plugin entry for markdown * Create plugin entry for javascript/typescript * Create plugin entry for html * Create plugin entry for graphql * Create plugin entry for css/less/scss * Move JSON to JS plugin entry * Integrate plugins into getSupportInfo() * Move astFormat to parser definition * Move util to common * Implement parser loading * remark -> mdast * Rename cli/cli -> cli/index * Rename builder -> doc package, fix printer resolution * Fix doc shape assumption in CSS-in-JS logic * Fix third-party.js prod resolution * Fixup build-docs script * Distribute multiparser code * Remove requirement to forward options * Flatten closure * Remove debug directory * Expose doc * Add external plugins * Pass options to loadPlugins * Export getParsers * Pin resolve version * Use getSupportInfo in Markdown embed * Document plugin API * Update build-docs * Add CLI for plugins * Lint docs * Fixup build.js * Add vue language * Fixup multiparser for vue * Upgrade rollup and rollup-plugin-commonjs * Fixup third-party build * Change AST format in docs
68 lines
1.8 KiB
JavaScript
68 lines
1.8 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
"use strict";
|
|
|
|
const path = require("path");
|
|
const shell = require("shelljs");
|
|
const parsers = require("./parsers");
|
|
|
|
const rootDir = path.join(__dirname, "..", "..");
|
|
const docs = path.join(rootDir, "website/static/lib");
|
|
|
|
const stripLanguageDirectory = parserPath => parserPath.replace(/.*\//, "");
|
|
|
|
function pipe(string) {
|
|
return new shell.ShellString(string);
|
|
}
|
|
|
|
const isPullRequest = process.env.PULL_REQUEST === "true";
|
|
const prettierPath = isPullRequest ? "dist" : "node_modules/prettier/";
|
|
|
|
const parserPaths = parsers.map(stripLanguageDirectory);
|
|
|
|
// --- Build prettier for PR ---
|
|
|
|
if (isPullRequest) {
|
|
const pkg = require("../../package.json");
|
|
pkg.version = `pr-${process.env.REVIEW_ID}`;
|
|
pipe(JSON.stringify(pkg, null, 2)).to("package.json");
|
|
shell.exec("node scripts/build/build.js");
|
|
}
|
|
|
|
// --- Docs ---
|
|
|
|
shell.mkdir("-p", docs);
|
|
|
|
shell.echo("Bundling docs index...");
|
|
shell.cp(`${prettierPath}/index.js`, `${docs}/index.js`);
|
|
shell.exec(
|
|
`node_modules/babel-cli/bin/babel.js ${docs}/index.js --out-file ${docs}/index.js --presets=es2015`
|
|
);
|
|
|
|
shell.exec(
|
|
`rollup -c scripts/build/rollup.docs.config.js --environment filepath:parser-babylon.js -i ${prettierPath}/parser-babylon.js`
|
|
);
|
|
shell.exec(
|
|
`node_modules/babel-cli/bin/babel.js ${docs}/parser-babylon.js --out-file ${docs}/parser-babylon.js --presets=es2015`
|
|
);
|
|
|
|
for (const parser of parserPaths) {
|
|
if (parser.endsWith("babylon")) {
|
|
continue;
|
|
}
|
|
shell.exec(
|
|
`rollup -c scripts/build/rollup.docs.config.js --environment filepath:${parser}.js -i ${prettierPath}/${parser}.js`
|
|
);
|
|
}
|
|
|
|
shell.echo("Copy sw-toolbox.js to docs");
|
|
shell.cp("node_modules/sw-toolbox/sw-toolbox.js", `${docs}/sw-toolbox.js`);
|
|
|
|
// --- Site ---
|
|
shell.cd("website");
|
|
shell.echo("Building website...");
|
|
shell.exec("yarn install");
|
|
shell.exec("yarn build");
|
|
|
|
shell.echo();
|