mirror of https://github.com/sveltejs/svelte
parent
e0c67b5775
commit
fe86552670
@ -1,32 +1,19 @@
|
||||
import { readFileSync, writeFileSync } from 'fs';
|
||||
import { glob } from '../tiny-glob';
|
||||
import { replaceIfUpdated } from "../tiny-glob";
|
||||
|
||||
// this file will replace all the expected.js files with their _actual
|
||||
// equivalents. Only use it when you're sure that you haven't
|
||||
// broken anything!
|
||||
const svelte = (function loadSvelte(test) {
|
||||
process.env.TEST = test ? 'true' : '';
|
||||
const resolved = require.resolve('../../compiler.js');
|
||||
delete require.cache[resolved];
|
||||
return require(resolved);
|
||||
})(false);
|
||||
|
||||
glob('samples/*/input.svelte', { cwd: __dirname })
|
||||
.forEach((file) => {
|
||||
try {
|
||||
writeFileSync(
|
||||
`${__dirname}/${file.replace('input.svelte', 'output.json')}`,
|
||||
JSON.stringify(
|
||||
svelte.compile(readFileSync(`${__dirname}/${file}`, 'utf-8').replace(/\s+$/, '').replace(/\r/g, ''), { generate: false }).ast,
|
||||
null,
|
||||
'\t'
|
||||
)
|
||||
);
|
||||
} catch (e) {
|
||||
if (e.name !== 'ParseError') throw e;
|
||||
writeFileSync(
|
||||
`${__dirname}/${file.replace('input.svelte', 'error.json')}`,
|
||||
JSON.stringify({ code:e.code, message: e.message, pos:e.pos, start:e.start }, null, '\t')
|
||||
);
|
||||
}
|
||||
});
|
||||
replaceIfUpdated((compile, check) => {
|
||||
try {
|
||||
check("output.json", compile({ generate: false }).ast);
|
||||
} catch (e) {
|
||||
if (e.name !== "ParseError") throw e;
|
||||
check("error.json", {
|
||||
code: e.code,
|
||||
message: e.message,
|
||||
start: e.start,
|
||||
pos: e.pos,
|
||||
});
|
||||
}
|
||||
}, __dirname);
|
||||
|
Loading…
Reference in new issue