Skip to content

Commit 2632ab7

Browse files
leah-1eeaduh95
authored andcommitted
typings: fix internal type resolution
Treat builtin JavaScript files as modules to avoid script-scope collisions with standard library declarations. Explicitly provide the existing internalBinding type so binding inference is preserved. Define the ICU Buffer alias using the existing Uint8Array convention. Assisted-by: Codex Signed-off-by: leah-1ee <selee3196@gmail.com> PR-URL: #66512 Refs: #49742 Refs: #59176 Reviewed-By: René <contact.9a5d6388@renegade334.me.uk>
1 parent 76147a4 commit 2632ab7

6 files changed

Lines changed: 12 additions & 9 deletions

File tree

‎lib/internal/bootstrap/realm.js‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ const legacyWrapperList = new SafeSet([
160160

161161
/**
162162
* Set up internalBinding() in the closure.
163-
* @type {import('typings/globals').internalBinding}
163+
* @type {typeof globalThis.internalBinding}
164164
*/
165165
let internalBinding;
166166
{

‎lib/internal/modules/esm/resolve.js‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ function emitLegacyIndexDeprecation(url, path, pkgPath, base, main) {
158158
* 4. TRY(pkg_url/index.js, pkg_url/index.json, pkg_url/index.node)
159159
* 5. NOT_FOUND
160160
* @param {URL} packageJSONUrl
161-
* @param {import('typings/internalBinding/modules').PackageConfig} packageConfig
161+
* @param {import('../../../../typings/internalBinding/modules').PackageConfig} packageConfig
162162
* @param {string | URL | undefined} base
163163
* @returns {URL}
164164
*/

‎lib/internal/modules/package_json_reader.js‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ const {
3535

3636

3737
/**
38-
* @typedef {import('typings/internalBinding/modules').DeserializedPackageConfig} DeserializedPackageConfig
39-
* @typedef {import('typings/internalBinding/modules').PackageConfig} PackageConfig
40-
* @typedef {import('typings/internalBinding/modules').SerializedPackageConfig} SerializedPackageConfig
38+
* @typedef {import('../../../typings/internalBinding/modules').DeserializedPackageConfig} DeserializedPackageConfig
39+
* @typedef {import('../../../typings/internalBinding/modules').PackageConfig} PackageConfig
40+
* @typedef {import('../../../typings/internalBinding/modules').SerializedPackageConfig} SerializedPackageConfig
4141
*/
4242

4343
/**
@@ -256,7 +256,7 @@ function getRootPackageJSON(checkPath) {
256256
/**
257257
* Returns the package configuration for the given resolved URL.
258258
* @param {URL | string} resolved - The resolved URL.
259-
* @returns {import('typings/internalBinding/modules').PackageConfig} - The package configuration.
259+
* @returns {import('../../../typings/internalBinding/modules').PackageConfig} - The package configuration.
260260
*/
261261
function getPackageScopeConfig(resolved) {
262262
const result = loaderMethods.getPackageScopeConfig(`${resolved}`);

‎tsconfig.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"lib": ["ESNext", "DOM"],
1313
"target": "ESNext",
1414
"module": "CommonJS",
15-
"baseUrl": ".",
15+
"moduleDetection": "force",
1616
"paths": {
1717
"_http_agent": ["./lib/_http_agent.js"],
1818
"_http_client": ["./lib/_http_client.js"],

‎typings/globals.d.ts‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,10 @@ interface InternalBindingMap {
108108

109109
type InternalBindingKeys = keyof InternalBindingMap;
110110

111-
declare function internalBinding<T extends InternalBindingKeys>(binding: T): InternalBindingMap[T]
112-
113111
declare global {
112+
// Supplied to internal modules by the builtin function wrapper.
113+
function internalBinding<T extends InternalBindingKeys>(binding: T): InternalBindingMap[T]
114+
114115
type TypedArray =
115116
| Uint8Array
116117
| Uint8ClampedArray

‎typings/internalBinding/icu.d.ts‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { FastBuffer as Buffer } from 'internal/buffer';
2+
13
export interface ICUBinding {
24
Converter: object;
35
decode(

0 commit comments

Comments
 (0)