mirror of
https://github.com/denoland/deno.git
synced 2025-01-30 11:15:13 -05:00
34 lines
751 B
TypeScript
34 lines
751 B
TypeScript
|
// 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
|
||
|
});
|
||
|
}
|