-
Notifications
You must be signed in to change notification settings - Fork 6
/
gen.js
16 lines (14 loc) · 732 Bytes
/
gen.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const { join } = require('path');
const { readFileSync, writeFileSync } = require('fs');
const { parse } = require('acorn');
const espurify = require('espurify');
const dump = (name) => {
const filepath = join(__dirname, 'templates', `${name}.js`);
const templateLines = readFileSync(require.resolve(filepath), 'utf8').split('\n');
const funcBody = templateLines.slice(2, templateLines.length - 2).join('\n'); // extract template body
const ast = parse(`(function () { ${funcBody} })()`, { ecmaVersion: 6 });
const callexp = espurify(ast).body[0].expression;
writeFileSync(join(__dirname, 'lib', 'templates', `${name}.json`), JSON.stringify(callexp, null, 2));
};
dump('argument-recorder');
dump('assertion-message');