mirror of
https://github.com/denoland/deno.git
synced 2024-11-01 09:24:20 -04:00
55063dd8e8
For some reason, the unit tests for Deno.remove() were not being imported to unit_tests.ts and, consequently, not being executed. Thus, I imported them, refactored some existent ones and wrote new ones for the symlink removal case. Since the creation of a symlink is not implemented for Windows yet, assertions that consider this state were added when the tests are executed in this OS.
32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
// 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 RemoveOption {
|
|
recursive?: boolean;
|
|
}
|
|
|
|
/** Removes the named file, directory or symlink synchronously. Would throw
|
|
* error if permission denied, not found, or directory not empty if `recursive`
|
|
* set to false.
|
|
* `recursive` is set to false by default.
|
|
*
|
|
* Deno.removeSync("/path/to/dir/or/file", {recursive: false});
|
|
*/
|
|
export function removeSync(path: string, options: RemoveOption = {}): void {
|
|
sendSync(dispatch.OP_REMOVE, { path, recursive: !!options.recursive });
|
|
}
|
|
|
|
/** Removes the named file, directory or symlink. Would throw error if
|
|
* permission denied, not found, or directory not empty if `recursive` set
|
|
* to false.
|
|
* `recursive` is set to false by default.
|
|
*
|
|
* await Deno.remove("/path/to/dir/or/file", {recursive: false});
|
|
*/
|
|
export async function remove(
|
|
path: string,
|
|
options: RemoveOption = {}
|
|
): Promise<void> {
|
|
await sendAsync(dispatch.OP_REMOVE, { path, recursive: !!options.recursive });
|
|
}
|