summaryrefslogtreecommitdiff
path: root/cli/js/ops/fs/open.ts
blob: 0d3c2366752735a5100e7331325a18f76c1408ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
import { sendSync, sendAsync } from "../dispatch_json.ts";

export interface OpenOptions {
  read?: boolean;
  write?: boolean;
  append?: boolean;
  truncate?: boolean;
  create?: boolean;
  createNew?: boolean;
}

export type OpenMode = "r" | "r+" | "w" | "w+" | "a" | "a+" | "x" | "x+";

export function openSync(
  path: string,
  mode: OpenMode | undefined,
  options: OpenOptions | undefined
): number {
  return sendSync("op_open", { path, options, mode });
}

export async function open(
  path: string,
  mode: OpenMode | undefined,
  options: OpenOptions | undefined
): Promise<number> {
  return await sendAsync("op_open", {
    path,
    options,
    mode
  });
}