diff options
author | Kevin (Kun) "Kassimo" Qian <kevinkassimo@gmail.com> | 2020-02-18 11:45:59 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-18 14:45:59 -0500 |
commit | 08dcf6bff73bbe579769ccd0f135ed4af919ea48 (patch) | |
tree | 50edb7b33b9063b4e79c73ed62da68dfaabf9356 /cli/js/make_temp.ts | |
parent | f0f807c524f76bbf91c31f13f79d60a272e1fe3f (diff) |
feat: Deno.makeTempFile (#4024)
Diffstat (limited to 'cli/js/make_temp.ts')
-rw-r--r-- | cli/js/make_temp.ts | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/cli/js/make_temp.ts b/cli/js/make_temp.ts new file mode 100644 index 000000000..8b15ab184 --- /dev/null +++ b/cli/js/make_temp.ts @@ -0,0 +1,61 @@ +// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. +import { sendSync, sendAsync } from "./dispatch_json.ts"; +import * as dispatch from "./dispatch.ts"; + +export interface MakeTempOptions { + dir?: string; + prefix?: string; + suffix?: string; +} + +/** makeTempDirSync is the synchronous version of `makeTempDir`. + * + * const tempDirName0 = Deno.makeTempDirSync(); + * const tempDirName1 = Deno.makeTempDirSync({ prefix: 'my_temp' }); + */ +export function makeTempDirSync(options: MakeTempOptions = {}): string { + return sendSync(dispatch.OP_MAKE_TEMP_DIR, options); +} + +/** makeTempDir creates a new temporary directory in the directory `dir`, its + * name beginning with `prefix` and ending with `suffix`. + * It returns the full path to the newly created directory. + * If `dir` is unspecified, tempDir uses the default directory for temporary + * files. Multiple programs calling tempDir simultaneously will not choose the + * same directory. It is the caller's responsibility to remove the directory + * when no longer needed. + * + * const tempDirName0 = await Deno.makeTempDir(); + * const tempDirName1 = await Deno.makeTempDir({ prefix: 'my_temp' }); + */ +export async function makeTempDir( + options: MakeTempOptions = {} +): Promise<string> { + return await sendAsync(dispatch.OP_MAKE_TEMP_DIR, options); +} + +/** makeTempFileSync is the synchronous version of `makeTempFile`. + * + * const tempFileName0 = Deno.makeTempFileSync(); + * const tempFileName1 = Deno.makeTempFileSync({ prefix: 'my_temp' }); + */ +export function makeTempFileSync(options: MakeTempOptions = {}): string { + return sendSync(dispatch.OP_MAKE_TEMP_FILE, options); +} + +/** makeTempFile creates a new temporary file in the directory `dir`, its + * name beginning with `prefix` and ending with `suffix`. + * It returns the full path to the newly created file. + * If `dir` is unspecified, tempFile uses the default directory for temporary + * files. Multiple programs calling tempFile simultaneously will not choose the + * same directory. It is the caller's responsibility to remove the file + * when no longer needed. + * + * const tempFileName0 = await Deno.makeTempFile(); + * const tempFileName1 = await Deno.makeTempFile({ prefix: 'my_temp' }); + */ +export async function makeTempFile( + options: MakeTempOptions = {} +): Promise<string> { + return await sendAsync(dispatch.OP_MAKE_TEMP_FILE, options); +} |