scramjet/src/client/shared/import.ts

26 lines
657 B
TypeScript

import { ScramjetClient } from "../client";
import { config } from "../../shared";
import { rewriteUrl } from "../../shared/rewriters/url";
export default function (client: ScramjetClient, self: Self) {
const Function = client.natives.Function;
self[config.globals.importfn] = function (base: string) {
return function (url: string) {
const resolved = new URL(url, base).href;
return Function(
`return import("${rewriteUrl(resolved, client.meta)}")`
)();
};
};
self[config.globals.metafn] = function (base: string) {
return {
url: base,
resolve: function (url: string) {
return new URL(url, base).href;
},
};
};
}