1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-11 18:17:48 -05:00
denoland-deno/cli/tests/testdata/run/import_meta/main.ts
Bartek Iwańczuk 60688c563e
feat: import.meta.filename and import.meta.dirname (#22061)
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:\
```
2024-01-23 23:51:07 +01:00

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"),
);