| '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 }; |