Skip to main content
Module

x/importmap/testdata/url-specifiers.json

Resolve specifiers with import maps.
Go to Latest
File
{ "importMap": { "imports": { "/lib/foo.mjs": "./more/bar.mjs", "./dotrelative/foo.mjs": "/lib/dot.mjs", "../dotdotrelative/foo.mjs": "/lib/dotdot.mjs", "/": "/lib/slash-only/", "./": "/lib/dotslash-only/", "/test/": "/lib/url-trailing-slash/", "./test/": "/lib/url-trailing-slash-dot/", "/test": "/lib/test1.mjs", "../test": "/lib/test2.mjs" } }, "importMapBaseURL": "https://example.com/app/index.html", "baseURL": "https://example.com/js/app.mjs", "name": "URL-like specifiers", "tests": { "Ordinary URL-like specifiers": { "expectedResults": { "https://example.com/lib/foo.mjs": "https://example.com/app/more/bar.mjs", "https://///example.com/lib/foo.mjs": "https://example.com/app/more/bar.mjs", "/lib/foo.mjs": "https://example.com/app/more/bar.mjs", "https://example.com/app/dotrelative/foo.mjs": "https://example.com/lib/dot.mjs", "../app/dotrelative/foo.mjs": "https://example.com/lib/dot.mjs", "https://example.com/dotdotrelative/foo.mjs": "https://example.com/lib/dotdot.mjs", "../dotdotrelative/foo.mjs": "https://example.com/lib/dotdot.mjs" } }, "Import map entries just composed from / and .": { "expectedResults": { "https://example.com/": "https://example.com/lib/slash-only/", "/": "https://example.com/lib/slash-only/", "../": "https://example.com/lib/slash-only/", "https://example.com/app/": "https://example.com/lib/dotslash-only/", "/app/": "https://example.com/lib/dotslash-only/", "../app/": "https://example.com/lib/dotslash-only/" } }, "prefix-matched by keys with trailing slashes": { "expectedResults": { "/test/foo.mjs": "https://example.com/lib/url-trailing-slash/foo.mjs", "https://example.com/app/test/foo.mjs": "https://example.com/lib/url-trailing-slash-dot/foo.mjs" } }, "should use the last entry's address when URL-like specifiers parse to the same absolute URL": { "expectedResults": { "/test": "https://example.com/lib/test2.mjs" } }, "backtracking (relative URLs)": { "expectedResults": { "/test/..": "https://example.com/lib/slash-only/", "/test/../backtrack": "https://example.com/lib/slash-only/backtrack", "/test/../../backtrack": "https://example.com/lib/slash-only/backtrack", "/test/../../../backtrack": "https://example.com/lib/slash-only/backtrack" } }, "backtracking (absolute URLs)": { "expectedResults": { "https://example.com/test/..": "https://example.com/lib/slash-only/", "https://example.com/test/../backtrack": "https://example.com/lib/slash-only/backtrack", "https://example.com/test/../../backtrack": "https://example.com/lib/slash-only/backtrack", "https://example.com/test/../../../backtrack": "https://example.com/lib/slash-only/backtrack" } } }}