summaryrefslogtreecommitdiff
path: root/cli/js/ops/fs/make_temp.ts
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2020-03-10 00:22:15 +0100
committerGitHub <noreply@github.com>2020-03-10 00:22:15 +0100
commitb7eb241c3569ead990d28b4f4889c2c52fc7894c (patch)
treef944f3c74741f3b61edae51a796471751ace7b76 /cli/js/ops/fs/make_temp.ts
parent2115b38fef654c2d7c5998f40967fcfe39d7c515 (diff)
reorg: move JS ops implementations to cli/js/ops/, part 3 (#4302)
Following JS ops were moved to separate files in cli/js/ops directory: - net - tls - fs
Diffstat (limited to 'cli/js/ops/fs/make_temp.ts')
-rw-r--r--cli/js/ops/fs/make_temp.ts90
1 files changed, 90 insertions, 0 deletions
diff --git a/cli/js/ops/fs/make_temp.ts b/cli/js/ops/fs/make_temp.ts
new file mode 100644
index 000000000..1fbff41d0
--- /dev/null
+++ b/cli/js/ops/fs/make_temp.ts
@@ -0,0 +1,90 @@
+// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
+import { sendSync, sendAsync } from "../dispatch_json.ts";
+
+export interface MakeTempOptions {
+ /** Directory where the temporary directory should be created (defaults to
+ * the env variable TMPDIR, or the system's default, usually /tmp). */
+ dir?: string;
+ /** String that should precede the random portion of the temporary
+ * directory's name. */
+ prefix?: string;
+ /** String that should follow the random portion of the temporary
+ * directory's name. */
+ suffix?: string;
+}
+
+/** Synchronously 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, uses the default directory for temporary files.
+ * Multiple programs calling this function simultaneously will create different
+ * directories. It is the caller's responsibility to remove the directory when
+ * no longer needed.
+ *
+ * const tempDirName0 = Deno.makeTempDirSync();
+ * const tempDirName1 = Deno.makeTempDirSync({ prefix: 'my_temp' });
+ *
+ * Requires `allow-write` permission. */
+export function makeTempDirSync(options: MakeTempOptions = {}): string {
+ return sendSync("op_make_temp_dir", options);
+}
+
+/** Creates a new temporary directory in the directory `dir`, its name
+ * beginning with `prefix` and ending with `suffix`.
+ *
+ * It resolves to the full path to the newly created directory.
+ *
+ * If `dir` is unspecified, uses the default directory for temporary files.
+ * Multiple programs calling this function simultaneously will create different
+ * directories. 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' });
+ *
+ * Requires `allow-write` permission. */
+export async function makeTempDir(
+ options: MakeTempOptions = {}
+): Promise<string> {
+ return await sendAsync("op_make_temp_dir", options);
+}
+
+/** Synchronously 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, uses the default directory for temporary files.
+ * Multiple programs calling this function simultaneously will create different
+ * files. It is the caller's responsibility to remove the file when
+ * no longer needed.
+ *
+ * const tempFileName0 = Deno.makeTempFileSync();
+ * const tempFileName1 = Deno.makeTempFileSync({ prefix: 'my_temp' });
+ *
+ * Requires `allow-write` permission. */
+export function makeTempFileSync(options: MakeTempOptions = {}): string {
+ return sendSync("op_make_temp_file", options);
+}
+
+/** Creates a new temporary file in the directory `dir`, its name
+ * beginning with `prefix` and ending with `suffix`.
+ *
+ * It resolves to the full path to the newly created file.
+ *
+ * If `dir` is unspecified, uses the default directory for temporary files.
+ * Multiple programs calling this function simultaneously will create different
+ * files. 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' });
+ *
+ * Requires `allow-write` permission. */
+export async function makeTempFile(
+ options: MakeTempOptions = {}
+): Promise<string> {
+ return await sendAsync("op_make_temp_file", options);
+}