diff options
| author | David Sherret <dsherret@users.noreply.github.com> | 2024-04-27 17:11:57 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-27 21:11:57 +0000 |
| commit | 651e3e9e6daf3243dd21b7f66ce9738abdc39a37 (patch) | |
| tree | 0417415c1a5fa79d0ae5d8f0f75561138275e34e /tests/testdata/jsr/registry/@std/path/0.220.1/posix/normalize.ts | |
| parent | e0f849289fdb2c2d86f7fb04182c37012ce2bb69 (diff) | |
fix(compile): certain jsr specifiers sometimes can't load (#23567)
When returning a jsr specifier for resolve it seems like deno core does
not work properly and hangs.
Closes https://github.com/denoland/deno/issues/23551
Closes https://github.com/denoland/deno/issues/23139
Diffstat (limited to 'tests/testdata/jsr/registry/@std/path/0.220.1/posix/normalize.ts')
| -rw-r--r-- | tests/testdata/jsr/registry/@std/path/0.220.1/posix/normalize.ts | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/testdata/jsr/registry/@std/path/0.220.1/posix/normalize.ts b/tests/testdata/jsr/registry/@std/path/0.220.1/posix/normalize.ts new file mode 100644 index 000000000..8e88ad254 --- /dev/null +++ b/tests/testdata/jsr/registry/@std/path/0.220.1/posix/normalize.ts @@ -0,0 +1,30 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +// This module is browser compatible. + +import { assertArg } from "../_common/normalize.ts"; +import { normalizeString } from "../_common/normalize_string.ts"; +import { isPosixPathSeparator } from "./_util.ts"; + +/** + * Normalize the `path`, resolving `'..'` and `'.'` segments. + * Note that resolving these segments does not necessarily mean that all will be eliminated. + * A `'..'` at the top-level will be preserved, and an empty path is canonically `'.'`. + * @param path to be normalized + */ +export function normalize(path: string): string { + assertArg(path); + + const isAbsolute = isPosixPathSeparator(path.charCodeAt(0)); + const trailingSeparator = isPosixPathSeparator( + path.charCodeAt(path.length - 1), + ); + + // Normalize the path + path = normalizeString(path, !isAbsolute, "/", isPosixPathSeparator); + + if (path.length === 0 && !isAbsolute) path = "."; + if (path.length > 0 && trailingSeparator) path += "/"; + + if (isAbsolute) return `/${path}`; + return path; +} |
