diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2019-01-17 23:39:06 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-17 23:39:06 -0500 |
commit | 315e4abd7e88c428e78c006ccf2dfdb499911a05 (patch) | |
tree | b48136d6f0437374c5c0a9a8f717f7495b5ff808 /js/mkdir.ts | |
parent | d06c95637a2a19588fcb549ed7b760a916b3cbfd (diff) |
mkdir should not be recursive by default (#1530)
It should return an error if a file with the given path exists and
recursive isn't specified.
Because mode is not used on windows and rarely used in unix, it is made
to the last parameter.
In collaboration with Stefan Dombrowski <sdo451@gmail.com>
Diffstat (limited to 'js/mkdir.ts')
-rw-r--r-- | js/mkdir.ts | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/js/mkdir.ts b/js/mkdir.ts index 8040bd51b..2981976ab 100644 --- a/js/mkdir.ts +++ b/js/mkdir.ts @@ -3,33 +3,48 @@ import * as msg from "gen/msg_generated"; import * as flatbuffers from "./flatbuffers"; import * as dispatch from "./dispatch"; -/** Creates a new directory with the specified path and permission - * synchronously. +/** Creates a new directory with the specified path synchronously. + * If `recursive` is set to true, nested directories will be created (also known + * as "mkdir -p"). + * `mode` sets permission bits (before umask) on UNIX and does nothing on + * Windows. * * import { mkdirSync } from "deno"; * mkdirSync("new_dir"); + * mkdirSync("nested/directories", true); */ -export function mkdirSync(path: string, mode = 0o777): void { - dispatch.sendSync(...req(path, mode)); +export function mkdirSync(path: string, recursive = false, mode = 0o777): void { + dispatch.sendSync(...req(path, recursive, mode)); } -/** Creates a new directory with the specified path and permission. +/** Creates a new directory with the specified path. + * If `recursive` is set to true, nested directories will be created (also known + * as "mkdir -p"). + * `mode` sets permission bits (before umask) on UNIX and does nothing on + * Windows. * * import { mkdir } from "deno"; * await mkdir("new_dir"); + * await mkdir("nested/directories", true); */ -export async function mkdir(path: string, mode = 0o777): Promise<void> { - await dispatch.sendAsync(...req(path, mode)); +export async function mkdir( + path: string, + recursive = false, + mode = 0o777 +): Promise<void> { + await dispatch.sendAsync(...req(path, recursive, mode)); } function req( path: string, + recursive: boolean, mode: number ): [flatbuffers.Builder, msg.Any, flatbuffers.Offset] { const builder = flatbuffers.createBuilder(); const path_ = builder.createString(path); msg.Mkdir.startMkdir(builder); msg.Mkdir.addPath(builder, path_); + msg.Mkdir.addRecursive(builder, recursive); msg.Mkdir.addMode(builder, mode); const inner = msg.Mkdir.endMkdir(builder); return [builder, msg.Any.Mkdir, inner]; |