1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-12 10:37:52 -05:00
denoland-deno/cli/js/ops/fs/open.ts

32 lines
990 B
TypeScript
Raw Normal View History

// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
2020-07-06 21:45:39 -04:00
import { sendSync, sendAsync } from "../dispatch_json.ts";
import { pathFromURL } from "../../util.ts";
export interface OpenOptions {
read?: boolean;
write?: boolean;
append?: boolean;
truncate?: boolean;
create?: boolean;
createNew?: boolean;
2020-03-16 15:02:41 -04:00
/** Permissions to use if creating the file (defaults to `0o666`, before
* the process's umask).
* It's an error to specify mode without also setting create or createNew to `true`.
* Ignored on Windows. */
mode?: number;
}
export function openSync(path: string | URL, options: OpenOptions): number {
2020-03-16 15:02:41 -04:00
const mode: number | undefined = options?.mode;
2020-07-06 21:45:39 -04:00
return sendSync("op_open", { path: pathFromURL(path), options, mode });
}
export function open(
path: string | URL,
options: OpenOptions
): Promise<number> {
2020-03-16 15:02:41 -04:00
const mode: number | undefined = options?.mode;
2020-07-06 21:45:39 -04:00
return sendAsync("op_open", { path: pathFromURL(path), options, mode });
}