* feat(glimmer): initial HTML/Handlebars/Glimmer support
* feat(glimmer): support un-escaped mustache expressions
* fix(glimmer): add 'as |foo|' syntax
* fix(glimmer): support {{foo bar}} syntax
* feat(glimmer): implement all AST types
* feat(glimmer): implement if/else if/else
* test(glimmer): ignore leading/trailing whitespace from AST_COMPARE
* fix(glimmer): do not use trailing slash for void self-closing elements
* chore(build): disable html tests until we can sort out the glimmer dependency
* feat(html): complete rebase on parse5 addition
* Prettier Support For Glimmer VM/Handlebars
Polished Support for Sub Expressions
Added test cases for glimmer primitives
Added support for concat statements
Attempted to make element nodes work
Attempted block statements
Element Nodes are OK
Added support for block elements that are not else-if related
Added support for Else/If
Cleaning up
Rebase
Switch node 4 syntax
Update build
* Removed dead code/partials
* Added new lines to end of test files.
* Rebase after plugin change
* Added ignores to code coverage
107 lines
2.8 KiB
JavaScript
Executable File
107 lines
2.8 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
"use strict";
|
|
|
|
const path = require("path");
|
|
const pkg = require("../../package.json");
|
|
const formatMarkdown = require("../../website/static/markdown");
|
|
const parsers = require("./parsers");
|
|
const shell = require("shelljs");
|
|
|
|
const rootDir = path.join(__dirname, "..", "..");
|
|
|
|
process.env.PATH += path.delimiter + path.join(rootDir, "node_modules", ".bin");
|
|
|
|
function pipe(string) {
|
|
return new shell.ShellString(string);
|
|
}
|
|
|
|
shell.set("-e");
|
|
shell.cd(rootDir);
|
|
|
|
shell.rm("-Rf", "dist/");
|
|
|
|
// --- Lib ---
|
|
|
|
shell.exec("rollup -c scripts/build/rollup.index.config.js");
|
|
|
|
shell.exec("rollup -c scripts/build/rollup.bin.config.js");
|
|
shell.chmod("+x", "./dist/bin/prettier.js");
|
|
|
|
shell.exec("rollup -c scripts/build/rollup.third-party.config.js");
|
|
|
|
for (const parser of parsers) {
|
|
if (parser.endsWith("postcss")) {
|
|
continue;
|
|
}
|
|
shell.exec(
|
|
`rollup -c scripts/build/rollup.parser.config.js --environment parser:${parser}`
|
|
);
|
|
if (parser.endsWith("glimmer")) {
|
|
shell.exec(
|
|
`node_modules/babel-cli/bin/babel.js dist/parser-glimmer.js --out-file dist/parser-glimmer.js --presets=es2015`
|
|
);
|
|
}
|
|
}
|
|
|
|
shell.echo("\nsrc/language-css/parser-postcss.js → dist/parser-postcss.js");
|
|
// PostCSS has dependency cycles and won't work correctly with rollup :(
|
|
shell.exec(
|
|
"webpack --hide-modules src/language-css/parser-postcss.js dist/parser-postcss.js"
|
|
);
|
|
// Prepend module.exports =
|
|
const content = shell.cat("dist/parser-postcss.js").stdout;
|
|
pipe(`module.exports = ${content}`).to("dist/parser-postcss.js");
|
|
|
|
shell.echo();
|
|
|
|
// --- Misc ---
|
|
|
|
shell.echo("Remove eval");
|
|
shell.sed(
|
|
"-i",
|
|
/eval\("require"\)/,
|
|
"require",
|
|
"dist/index.js",
|
|
"dist/bin/prettier.js"
|
|
);
|
|
|
|
shell.echo("Update ISSUE_TEMPLATE.md");
|
|
const issueTemplate = shell.cat(".github/ISSUE_TEMPLATE.md").stdout;
|
|
const newIssueTemplate = issueTemplate.replace(
|
|
/-->[^]*$/,
|
|
"-->\n\n" +
|
|
formatMarkdown(
|
|
"// code snippet",
|
|
"// code snippet",
|
|
"",
|
|
pkg.version,
|
|
"https://prettier.io/playground/#.....",
|
|
{ parser: "babylon" },
|
|
[["# Options (if any):", true], ["--single-quote", true]],
|
|
true
|
|
)
|
|
);
|
|
pipe(newIssueTemplate).to(".github/ISSUE_TEMPLATE.md");
|
|
|
|
shell.echo("Copy package.json");
|
|
const pkgWithoutDependencies = Object.assign({}, pkg);
|
|
delete pkgWithoutDependencies.dependencies;
|
|
pkgWithoutDependencies.scripts = {
|
|
prepublishOnly:
|
|
"node -e \"assert.equal(require('.').version, require('..').version)\""
|
|
};
|
|
pipe(JSON.stringify(pkgWithoutDependencies, null, 2)).to("dist/package.json");
|
|
|
|
shell.echo("Copy README.md");
|
|
shell.cp("README.md", "dist/README.md");
|
|
|
|
shell.echo("Done!");
|
|
shell.echo();
|
|
shell.echo("How to test against dist:");
|
|
shell.echo(" 1) yarn test:dist");
|
|
shell.echo();
|
|
shell.echo("How to publish:");
|
|
shell.echo(" 1) IMPORTANT!!! Go to dist/");
|
|
shell.echo(" 2) npm publish");
|