mirror of
https://github.com/denoland/deno.git
synced 2024-12-11 10:07:54 -05:00
60688c563e
This commit adds `import.meta.filename` and `import.meta.dirname` APIs. These APIs return string representation of filename and containing dirname. They are only defined for local modules (modules that have `file:///` scheme). Example: ```ts console.log(import.meta.filename, import.meta.dirname) ``` Unix: ``` $ deno run /dev/my_module.ts /dev/my_module.ts /dev/ ``` Windows: ``` $ deno run C:\dev\my_module.ts C:\dev\my_module.ts C:\ ```
52 lines
1.3 KiB
TypeScript
52 lines
1.3 KiB
TypeScript
import { assertThrows } from "../../../../../test_util/std/assert/mod.ts";
|
|
import "http://localhost:4545/run/import_meta/other.ts";
|
|
import "./other.ts";
|
|
|
|
console.log(
|
|
"main",
|
|
import.meta.url,
|
|
import.meta.main,
|
|
import.meta.filename,
|
|
import.meta.dirname,
|
|
);
|
|
|
|
console.log("Resolving ./foo.js", import.meta.resolve("./foo.js"));
|
|
console.log("Resolving bare from import map", import.meta.resolve("bare"));
|
|
console.log(
|
|
"Resolving https://example.com/rewrite from import map",
|
|
import.meta.resolve("https://example.com/rewrite"),
|
|
);
|
|
console.log(
|
|
"Resolving without a value from import map",
|
|
import.meta.resolve(),
|
|
);
|
|
console.log(
|
|
"Resolving 1 from import map",
|
|
import.meta.resolve(1),
|
|
);
|
|
console.log(
|
|
"Resolving null from import map",
|
|
import.meta.resolve(null),
|
|
);
|
|
console.log(
|
|
"Resolving object from import map",
|
|
import.meta.resolve({}),
|
|
);
|
|
assertThrows(() => {
|
|
import.meta.resolve("too", "many", "arguments");
|
|
}, TypeError);
|
|
assertThrows(() => {
|
|
import.meta.resolve("://malformed/url?asdf");
|
|
}, TypeError);
|
|
console.log(
|
|
"Resolving npm:cowsay",
|
|
import.meta.resolve("npm:cowsay"),
|
|
);
|
|
console.log(
|
|
"Resolving npm:cowsay@1",
|
|
import.meta.resolve("npm:cowsay@1"),
|
|
);
|
|
console.log(
|
|
"Resolving npm:preact from import map",
|
|
import.meta.resolve("npm:preact"),
|
|
);
|