nstdlib-nightly
Version:
Node.js standard library converted to runtime-agnostic ES modules.
38 lines (32 loc) • 1.09 kB
JavaScript
// Source: https://github.com/nodejs/node/blob/65eff1eb/lib/internal/process/permission.js
import * as permission from "nstdlib/stub/binding/permission";
import {
validateString,
validateBuffer,
} from "nstdlib/lib/internal/validators";
import { Buffer } from "nstdlib/lib/buffer";
import * as __hoisted_internal_options__ from "nstdlib/lib/internal/options";
const { isBuffer } = Buffer;
let experimentalPermission;
export default Object.freeze({
__proto__: null,
isEnabled() {
if (experimentalPermission === undefined) {
const { getOptionValue } = __hoisted_internal_options__;
experimentalPermission = getOptionValue("--experimental-permission");
}
return experimentalPermission;
},
has(scope, reference) {
validateString(scope, "scope");
if (reference != null) {
// TODO: add support for WHATWG URLs and Uint8Arrays.
if (isBuffer(reference)) {
validateBuffer(reference, "reference");
} else {
validateString(reference, "reference");
}
}
return permission.has(scope, reference);
},
});