summaryrefslogtreecommitdiff
path: root/cli/js/compiler_bundler.ts
diff options
context:
space:
mode:
Diffstat (limited to 'cli/js/compiler_bundler.ts')
-rw-r--r--cli/js/compiler_bundler.ts14
1 files changed, 13 insertions, 1 deletions
diff --git a/cli/js/compiler_bundler.ts b/cli/js/compiler_bundler.ts
index 8fb68cc7a..a4e4557ca 100644
--- a/cli/js/compiler_bundler.ts
+++ b/cli/js/compiler_bundler.ts
@@ -1,6 +1,7 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-import { bundleLoader } from "./compiler_bootstrap.ts";
+import * as dispatch from "./dispatch.ts";
+import { sendSync } from "./dispatch_json.ts";
import {
assert,
commonPath,
@@ -8,6 +9,11 @@ import {
CHAR_FORWARD_SLASH
} from "./util.ts";
+const BUNDLE_LOADER = "bundle_loader.js";
+
+/** A loader of bundled modules that we will inline into any bundle outputs. */
+let bundleLoader: string;
+
/** Local state of what the root exports are of a root module. */
let rootExports: string[] | undefined;
@@ -34,6 +40,12 @@ export function buildBundle(
data: string,
sourceFiles: readonly ts.SourceFile[]
): string {
+ // we can only do this once we are bootstrapped and easiest way to do it is
+ // inline here
+ if (!bundleLoader) {
+ bundleLoader = sendSync(dispatch.OP_FETCH_ASSET, { name: BUNDLE_LOADER });
+ }
+
// when outputting to AMD and a single outfile, TypeScript makes up the module
// specifiers which are used to define the modules, and doesn't expose them
// publicly, so we have to try to replicate