kittenipc/kitcom/internal/tsgo/core/nodemodules.go
2025-11-08 09:37:30 +03:00

89 lines
2.4 KiB
Go

package core
import (
"maps"
"sync"
)
var UnprefixedNodeCoreModules = map[string]bool{
"assert": true,
"assert/strict": true,
"async_hooks": true,
"buffer": true,
"child_process": true,
"cluster": true,
"console": true,
"constants": true,
"crypto": true,
"dgram": true,
"diagnostics_channel": true,
"dns": true,
"dns/promises": true,
"domain": true,
"events": true,
"fs": true,
"fs/promises": true,
"http": true,
"http2": true,
"https": true,
"inspector": true,
"inspector/promises": true,
"module": true,
"net": true,
"os": true,
"path": true,
"path/posix": true,
"path/win32": true,
"perf_hooks": true,
"process": true,
"punycode": true,
"querystring": true,
"readline": true,
"readline/promises": true,
"repl": true,
"stream": true,
"stream/consumers": true,
"stream/promises": true,
"stream/web": true,
"string_decoder": true,
"sys": true,
"test/mock_loader": true,
"timers": true,
"timers/promises": true,
"tls": true,
"trace_events": true,
"tty": true,
"url": true,
"util": true,
"util/types": true,
"v8": true,
"vm": true,
"wasi": true,
"worker_threads": true,
"zlib": true,
}
var ExclusivelyPrefixedNodeCoreModules = map[string]bool{
"node:sea": true,
"node:sqlite": true,
"node:test": true,
"node:test/reporters": true,
}
var NodeCoreModules = sync.OnceValue(func() map[string]bool {
nodeCoreModules := make(map[string]bool, len(UnprefixedNodeCoreModules)*2+len(ExclusivelyPrefixedNodeCoreModules))
for unprefixed := range UnprefixedNodeCoreModules {
nodeCoreModules[unprefixed] = true
nodeCoreModules["node:"+unprefixed] = true
}
maps.Copy(nodeCoreModules, ExclusivelyPrefixedNodeCoreModules)
return nodeCoreModules
})
func NonRelativeModuleNameForTypingCache(moduleName string) string {
if NodeCoreModules()[moduleName] {
return "node"
}
return moduleName
}