vendor: update cordis / loader

This commit is contained in:
imccyu
2026-07-15 10:39:18 +08:00
parent 34bb75b2d2
commit c685582d54
7 changed files with 40 additions and 20 deletions

View File

@@ -1,7 +1,7 @@
{
"name": "@cordisjs/plugin-loader",
"description": "Plugin loader for cordis",
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"private": true,
"type": "module",
"main": "lib/index.js",
@@ -23,7 +23,13 @@
"author": "Shigma <shigma10826@gmail.com>",
"license": "MIT",
"peerDependencies": {
"cordis": "^4.0.0-rc.6"
"cordis": "^4.0.0-rc.7",
"node-addon-require-builtin": "^0.1.0"
},
"peerDependenciesMeta": {
"node-addon-require-builtin": {
"optional": true
}
},
"dependencies": {
"cosmokit": "^1.8.1"

View File

@@ -105,18 +105,28 @@ export type ModuleLoader = ModuleLoaderV1 | ModuleLoaderV2
export namespace ModuleLoader {
let _cachedLoader: ModuleLoader | undefined
export function fromInternal(): ModuleLoader | undefined {
if (!process.execArgv.includes('--expose-internals')) return
if (_cachedLoader) return _cachedLoader
function requireInternal(id: string): any {
const require = createRequire(import.meta.url)
if (process.execArgv.includes('--expose-internals')) {
try {
return require(id)
} catch {}
}
try {
return require('node-addon-require-builtin').requireBuiltin(id)
} catch {}
}
export function fromInternal(): ModuleLoader | undefined {
if (_cachedLoader) return _cachedLoader
const [major] = process.versions.node.split('.').map(Number)
if (major >= 24) {
const raw = require('internal/modules/esm/loader').getOrInitializeCascadedLoader()
return _cachedLoader = Object.assign(raw, { version: 'v2' })
const raw = requireInternal('internal/modules/esm/loader')?.getOrInitializeCascadedLoader()
if (raw) return _cachedLoader = Object.assign(raw, { version: 'v2' })
} else if (major >= 22) {
const raw = require('internal/modules/esm/loader').getOrInitializeCascadedLoader()
return _cachedLoader = Object.assign(raw, { version: 'v1' })
const raw = requireInternal('internal/modules/esm/loader')?.getOrInitializeCascadedLoader()
if (raw) return _cachedLoader = Object.assign(raw, { version: 'v1' })
}
}
}