diff options
author | Ali Hasani <a.hassssani@gmail.com> | 2020-05-19 03:16:02 +0430 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-19 00:46:02 +0200 |
commit | 6072755eadb7342a409f43260e5a17b956703a1c (patch) | |
tree | 35ec9b10eddafdc2b0dacecc439aa8d9f785529a /std/fs/ensure_symlink.ts | |
parent | 88b24261ba467c20d4ef90224b07c19a71398f0f (diff) |
Implement Deno.symlink() for windows (#5533)
Diffstat (limited to 'std/fs/ensure_symlink.ts')
-rw-r--r-- | std/fs/ensure_symlink.ts | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/std/fs/ensure_symlink.ts b/std/fs/ensure_symlink.ts index 2a184bb4f..a07f97220 100644 --- a/std/fs/ensure_symlink.ts +++ b/std/fs/ensure_symlink.ts @@ -28,7 +28,14 @@ export async function ensureSymlink(src: string, dest: string): Promise<void> { await ensureDir(path.dirname(dest)); - await Deno.symlink(src, dest, srcFilePathType); + ensureDirSync(path.dirname(dest)); + if (Deno.build.os === "windows") { + await Deno.symlink(src, dest, { + type: srcFilePathType === "dir" ? "dir" : "file", + }); + } else { + await Deno.symlink(src, dest); + } } /** @@ -54,6 +61,11 @@ export function ensureSymlinkSync(src: string, dest: string): void { } ensureDirSync(path.dirname(dest)); - - Deno.symlinkSync(src, dest, srcFilePathType); + if (Deno.build.os === "windows") { + Deno.symlinkSync(src, dest, { + type: srcFilePathType === "dir" ? "dir" : "file", + }); + } else { + Deno.symlinkSync(src, dest); + } } |