Skip to main content
Module

std/node/_fs/_fs_chmod.ts

Deno standard library
Go to Latest
File
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.import type { CallbackWithError } from "./_fs_common.ts";import { fromFileUrl } from "../path.ts";
const allowedModes = /^[0-7]{3}/;
/** * TODO: Also accept 'path' parameter as a Node polyfill Buffer type once these * are implemented. See https://github.com/denoland/deno/issues/3403 */export function chmod( path: string | URL, mode: string | number, callback: CallbackWithError,): void { path = path instanceof URL ? fromFileUrl(path) : path;
Deno.chmod(path, getResolvedMode(mode)) .then(() => callback()) .catch(callback);}
/** * TODO: Also accept 'path' parameter as a Node polyfill Buffer type once these * are implemented. See https://github.com/denoland/deno/issues/3403 */export function chmodSync(path: string | URL, mode: string | number): void { path = path instanceof URL ? fromFileUrl(path) : path; Deno.chmodSync(path, getResolvedMode(mode));}
function getResolvedMode(mode: string | number): number { if (typeof mode === "number") { return mode; }
if (typeof mode === "string" && !allowedModes.test(mode)) { throw new Error("Unrecognized mode: " + mode); }
return parseInt(mode, 8);}