Refactor snapshot build (#2825)

Instead of using core/snapshot_creator.rs, instead two crates are
introduced which allow building the snapshot during build.rs.

Rollup is removed and replaced with our own bundler. This removes
the Node build dependency. Modules in //js now use Deno-style imports
with file extensions, rather than Node style extensionless imports.

This improves incremental build time when changes are made to //js files
by about 40 seconds.
This commit is contained in:
Ryan Dahl 2019-09-02 17:07:11 -04:00 committed by GitHub
parent 56508f113d
commit d43b43ca78
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
110 changed files with 1548 additions and 1043 deletions

View file

@ -90,22 +90,19 @@ test(function prepareStackTrace(): void {
structuredStackTrace: CallSite[]
) => string = MockError.prepareStackTrace;
const result = prepareStackTrace(new Error("foo"), [
getMockCallSite("gen/cli/bundle/main.js", 23, 0)
getMockCallSite("CLI_SNAPSHOT.js", 23, 0)
]);
assert(result.startsWith("Error: foo\n"));
assert(
result.includes("<anonymous> (js/"),
"should remap to something in 'js/'"
);
assert(result.includes(".ts:"), "should remap to something in 'js/'");
});
test(function applySourceMap(): void {
const result = Deno.applySourceMap({
filename: "gen/cli/bundle/main.js",
filename: "CLI_SNAPSHOT.js",
line: 23,
column: 0
});
assert(result.filename.startsWith("js/"));
assert(result.filename.endsWith(".ts"));
assert(result.line != null);
assert(result.column != null);
});