tricky-specifiers.json (2870B)
1 { 2 "importMap": { 3 "imports": { 4 "package/withslash": "/node_modules/package-with-slash/index.mjs", 5 "not-a-package": "/lib/not-a-package.mjs", 6 "only-slash/": "/lib/only-slash/", 7 ".": "/lib/dot.mjs", 8 "..": "/lib/dotdot.mjs", 9 "..\\": "/lib/dotdotbackslash.mjs", 10 "%2E": "/lib/percent2e.mjs", 11 "%2F": "/lib/percent2f.mjs", 12 "https://map.example/%E3%81%8D%E3%81%A4%E3%81%AD/": "/a/", 13 "https://map.example/きつね/fox/": "/b/", 14 "%E3%81%8D%E3%81%A4%E3%81%AD/": "/c/", 15 "きつね/fox/": "/d/" 16 } 17 }, 18 "importMapBaseURL": "https://example.com/app/index.html", 19 "baseURL": "https://example.com/js/app.mjs", 20 "name": "Tricky specifiers", 21 "tests": { 22 "explicitly-mapped specifiers that happen to have a slash": { 23 "expectedResults": { 24 "package/withslash": "https://example.com/node_modules/package-with-slash/index.mjs" 25 } 26 }, 27 "specifier with punctuation": { 28 "expectedResults": { 29 ".": "https://example.com/lib/dot.mjs", 30 "..": "https://example.com/lib/dotdot.mjs", 31 "..\\": "https://example.com/lib/dotdotbackslash.mjs", 32 "%2E": "https://example.com/lib/percent2e.mjs", 33 "%2F": "https://example.com/lib/percent2f.mjs" 34 } 35 }, 36 "submodule of something not declared with a trailing slash should fail": { 37 "expectedResults": { 38 "not-a-package/foo": null 39 } 40 }, 41 "module for which only a trailing-slash version is present should fail": { 42 "expectedResults": { 43 "only-slash": null 44 } 45 }, 46 "URL-like specifiers are normalized": { 47 "expectedResults": { 48 "https://map.example/%E3%81%8D%E3%81%A4%E3%81%AD/": "https://example.com/a/", 49 "https://map.example/%E3%81%8D%E3%81%A4%E3%81%AD/bar": "https://example.com/a/bar", 50 "https://map.example/%E3%81%8D%E3%81%A4%E3%81%AD/fox/": "https://example.com/b/", 51 "https://map.example/%E3%81%8D%E3%81%A4%E3%81%AD/fox/bar": "https://example.com/b/bar", 52 "https://map.example/きつね/": "https://example.com/a/", 53 "https://map.example/きつね/bar": "https://example.com/a/bar", 54 "https://map.example/きつね/fox/": "https://example.com/b/", 55 "https://map.example/きつね/fox/bar": "https://example.com/b/bar" 56 } 57 }, 58 "Bare specifiers are not normalized": { 59 "expectedResults": { 60 "%E3%81%8D%E3%81%A4%E3%81%AD/": "https://example.com/c/", 61 "%E3%81%8D%E3%81%A4%E3%81%AD/bar": "https://example.com/c/bar", 62 "%E3%81%8D%E3%81%A4%E3%81%AD/fox/": "https://example.com/c/fox/", 63 "%E3%81%8D%E3%81%A4%E3%81%AD/fox/bar": "https://example.com/c/fox/bar", 64 "きつね/": null, 65 "きつね/bar": null, 66 "きつね/fox/": "https://example.com/d/", 67 "きつね/fox/bar": "https://example.com/d/bar" 68 } 69 } 70 } 71 }