mirror of https://github.com/nodejs/node.git
34 lines
987 B
JavaScript
34 lines
987 B
JavaScript
'use strict';
|
|
|
|
const {
|
|
Error,
|
|
StringPrototypeStartsWith,
|
|
globalThis,
|
|
} = primordials;
|
|
|
|
process.emitWarning(
|
|
'These APIs are for internal testing only. Do not use them.',
|
|
'internal/test/binding');
|
|
|
|
function filteredInternalBinding(id) {
|
|
// Disallows internal bindings with names that start with 'internal_only'
|
|
// which means it should not be exposed to users even with
|
|
// --expose-internals.
|
|
if (StringPrototypeStartsWith(id, 'internal_only')) {
|
|
// This code is only intended for internal errors and is not documented.
|
|
// Do not use the normal error system.
|
|
// eslint-disable-next-line no-restricted-syntax
|
|
const error = new Error(`No such binding: ${id}`);
|
|
error.code = 'ERR_INVALID_MODULE';
|
|
throw error;
|
|
}
|
|
return internalBinding(id);
|
|
}
|
|
|
|
if (module.isPreloading) {
|
|
globalThis.internalBinding = filteredInternalBinding;
|
|
globalThis.primordials = primordials;
|
|
}
|
|
|
|
module.exports = { internalBinding: filteredInternalBinding, primordials };
|