summaryrefslogtreecommitdiff
path: root/std/fs/ensure_symlink.ts
diff options
context:
space:
mode:
authorAli Hasani <a.hassssani@gmail.com>2020-05-19 03:16:02 +0430
committerGitHub <noreply@github.com>2020-05-19 00:46:02 +0200
commit6072755eadb7342a409f43260e5a17b956703a1c (patch)
tree35ec9b10eddafdc2b0dacecc439aa8d9f785529a /std/fs/ensure_symlink.ts
parent88b24261ba467c20d4ef90224b07c19a71398f0f (diff)
Implement Deno.symlink() for windows (#5533)
Diffstat (limited to 'std/fs/ensure_symlink.ts')
-rw-r--r--std/fs/ensure_symlink.ts18
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);
+ }
}