pedantic code generation stuff

pull/2099/head
Richard Harris 6 years ago
parent 47ab23c1de
commit 5af301abb8

@ -22,6 +22,7 @@
], ],
"scripts": { "scripts": {
"test": "mocha --opts mocha.opts", "test": "mocha --opts mocha.opts",
"test:unit": "mocha --require sucrase/register --recursive ./**/__test__.ts",
"quicktest": "mocha --opts mocha.opts", "quicktest": "mocha --opts mocha.opts",
"precoverage": "c8 mocha --opts mocha.coverage.opts", "precoverage": "c8 mocha --opts mocha.coverage.opts",
"coverage": "c8 report --reporter=text-lcov > coverage.lcov && c8 report --reporter=html", "coverage": "c8 report --reporter=text-lcov > coverage.lcov && c8 report --reporter=html",

@ -34,6 +34,45 @@ describe('deindent', () => {
assert.equal(deindented, `before\n\tline one\n\tline two\nafter`); assert.equal(deindented, `before\n\tline one\n\tline two\nafter`);
}); });
it('removes newlines before an empty expression', () => {
const deindented = deindent`
{
some text
${null}
}`;
assert.equal(deindented, `{\n\tsome text\n}`);
});
it('removes newlines after an empty expression', () => {
const deindented = deindent`
{
${null}
some text
}`;
assert.equal(deindented, `{\n\tsome text\n}`);
});
it('removes newlines around empty expressions', () => {
const deindented = deindent`
{
${null}
some text
${null}
some text
${null}
}`;
assert.equal(deindented, `{\n\tsome text\n\n\tsome text\n}`);
});
}); });
describe('CodeBuilder', () => { describe('CodeBuilder', () => {

@ -39,7 +39,7 @@ export default function deindent(
current_indentation = get_current_indentation(result); current_indentation = get_current_indentation(result);
} }
return result.trim().replace(/\t+$/gm, ''); return result.trim().replace(/\t+$/gm, '').replace(/{\n\n/gm, '{\n');
} }
function get_current_indentation(str: string) { function get_current_indentation(str: string) {

Loading…
Cancel
Save