@krlwlfrt/dml
Advanced tools
Comparing version 1.2.0 to 2.0.0
@@ -7,6 +7,9 @@ export interface Module { | ||
export declare function isTypeScriptFile(file: string): boolean; | ||
export declare function isRunningInNodeJS(): boolean; | ||
export declare function isRunningInTSNode(): boolean; | ||
export declare function isRunningInDeno(): boolean; | ||
export declare function isRunningInTsx(): boolean; | ||
export declare function isRunningInBun(): boolean; | ||
export declare function isRunningInTypeScriptRuntime(): boolean; | ||
export declare function loadModule(file: string): Promise<Module>; | ||
export declare function loadModules(directory: string, recursive?: boolean): Promise<Module[]>; |
@@ -18,9 +18,19 @@ "use strict"; | ||
}); | ||
var __importStar = (this && this.__importStar) || function (mod) { | ||
if (mod && mod.__esModule) return mod; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); | ||
__setModuleDefault(result, mod); | ||
return result; | ||
}; | ||
var __importStar = (this && this.__importStar) || (function () { | ||
var ownKeys = function(o) { | ||
ownKeys = Object.getOwnPropertyNames || function (o) { | ||
var ar = []; | ||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; | ||
return ar; | ||
}; | ||
return ownKeys(o); | ||
}; | ||
return function (mod) { | ||
if (mod && mod.__esModule) return mod; | ||
var result = {}; | ||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); | ||
__setModuleDefault(result, mod); | ||
return result; | ||
}; | ||
})(); | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
@@ -38,4 +48,7 @@ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
exports.isTypeScriptFile = isTypeScriptFile; | ||
exports.isRunningInNodeJS = isRunningInNodeJS; | ||
exports.isRunningInTSNode = isRunningInTSNode; | ||
exports.isRunningInDeno = isRunningInDeno; | ||
exports.isRunningInTsx = isRunningInTsx; | ||
exports.isRunningInBun = isRunningInBun; | ||
exports.isRunningInTypeScriptRuntime = isRunningInTypeScriptRuntime; | ||
@@ -47,3 +60,2 @@ exports.loadModule = loadModule; | ||
const node_path_1 = require("node:path"); | ||
const ts_node_1 = require("ts-node"); | ||
function isJavaScriptFile(file) { | ||
@@ -55,10 +67,43 @@ return /\.js$/.test(file); | ||
} | ||
function isRunningInNodeJS() { | ||
return 'process' in globalThis && | ||
typeof globalThis.process === 'object' && | ||
globalThis.process !== null && | ||
'release' in globalThis.process && | ||
typeof globalThis.process.release === 'object' && | ||
globalThis.process.release !== null && | ||
'name' in globalThis.process.release && | ||
globalThis.process.release.name === 'node'; | ||
} | ||
function isRunningInTSNode() { | ||
return 'process' in globalThis && typeof globalThis.process[ts_node_1.REGISTER_INSTANCE] !== 'undefined'; | ||
return 'process' in globalThis && | ||
typeof globalThis.process === 'object' && | ||
globalThis.process !== null && | ||
Symbol.for('ts-node.register.instance') in globalThis.process; | ||
} | ||
function isRunningInDeno() { | ||
return typeof globalThis === 'object' && typeof globalThis.Deno === 'object'; | ||
return 'Deno' in globalThis && | ||
typeof globalThis['Deno'] === 'object'; | ||
} | ||
function isRunningInTsx() { | ||
return 'process' in globalThis && | ||
typeof globalThis.process === 'object' && | ||
globalThis.process !== null && | ||
'env' in globalThis.process && | ||
typeof globalThis.process.env === 'object' && | ||
globalThis.process.env !== null && | ||
'_' in globalThis.process.env && | ||
typeof globalThis.process.env._ === 'string' && | ||
globalThis.process.env._.includes('.bin/tsx'); | ||
} | ||
function isRunningInBun() { | ||
return 'Bun' in globalThis; | ||
} | ||
function isRunningInTypeScriptRuntime() { | ||
return isRunningInDeno() || isRunningInTSNode(); | ||
return isRunningInDeno() || | ||
isRunningInTSNode() || | ||
isRunningInTsx() || | ||
isRunningInBun() || | ||
(isRunningInNodeJS() && | ||
globalThis.process.execArgv.includes('--experimental-strip-types')); | ||
} | ||
@@ -105,2 +150,2 @@ function loadModule(file) { | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVDQSw0Q0FFQztBQU9ELDRDQUVDO0FBTUQsOENBRUM7QUFNRCwwQ0FFQztBQU1ELG9FQUVDO0FBT0QsZ0NBaUJDO0FBUUQsa0NBMkJDO0FBdEhELHFDQUFtQztBQUNuQywrQ0FBZ0Q7QUFDaEQseUNBQWtEO0FBQ2xELHFDQUEwQztBQXFCMUMsU0FBZ0IsZ0JBQWdCLENBQUMsSUFBWTtJQUMzQyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQU9ELFNBQWdCLGdCQUFnQixDQUFDLElBQVk7SUFDM0MsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzVCLENBQUM7QUFNRCxTQUFnQixpQkFBaUI7SUFDL0IsT0FBTyxTQUFTLElBQUksVUFBVSxJQUFJLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQywyQkFBaUIsQ0FBQyxLQUFLLFdBQVcsQ0FBQztBQUNqRyxDQUFDO0FBTUQsU0FBZ0IsZUFBZTtJQUM3QixPQUFPLE9BQU8sVUFBVSxLQUFLLFFBQVEsSUFBSSxPQUFRLFVBQWtCLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQztBQUN4RixDQUFDO0FBTUQsU0FBZ0IsNEJBQTRCO0lBQzFDLE9BQU8sZUFBZSxFQUFFLElBQUksaUJBQWlCLEVBQUUsQ0FBQztBQUNsRCxDQUFDO0FBT0QsU0FBc0IsVUFBVSxDQUFDLElBQVk7O1FBQzNDLElBQUksNEJBQTRCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN6RixNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSwyR0FBMkcsQ0FBQyxDQUFDO1FBQzdJLENBQUM7UUFFRCxJQUFJLENBQUMsNEJBQTRCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDL0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUkseURBQXlELENBQUMsQ0FBQztRQUMzRixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUEsb0JBQVUsRUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLCtDQUErQyxDQUFDLENBQUM7UUFDakYsQ0FBQztRQUVELE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSTtZQUNWLE9BQU8sRUFBRSx5QkFBYSxJQUFJLENBQUMsUUFBUSxFQUFFLHVDQUFDO1NBQ3ZDLENBQUM7SUFDSixDQUFDO0NBQUE7QUFRRCxTQUFzQixXQUFXO3lEQUFDLFNBQWlCLEVBQUUsU0FBUyxHQUFHLElBQUk7UUFDbkUsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFBLGtCQUFPLEVBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDO1FBRTdCLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsTUFBTSxVQUFVLEdBQUcsSUFBQSxnQkFBSSxFQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6QyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUEsZ0JBQUssRUFBQyxVQUFVLENBQUMsQ0FBQztZQUV0QyxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDckMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sV0FBVyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUUxRCxTQUFTO1lBQ1gsQ0FBQztZQUVELE1BQU0sVUFBVSxHQUFHLElBQUEsb0JBQVEsRUFBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDL0MsSUFBSSw0QkFBNEIsRUFBRSxJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUEsb0JBQVUsRUFBQyxJQUFBLGdCQUFJLEVBQUMsSUFBQSxtQkFBTyxFQUFDLFVBQVUsQ0FBQyxFQUFFLEdBQUcsVUFBVSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hJLE9BQU8sQ0FBQyxJQUFJLENBQUMsK0JBQStCLFVBQVUsa0VBQWtFLFVBQVUsa0lBQWtJLENBQUMsQ0FBQztnQkFFdFEsU0FBUztZQUNYLENBQUM7WUFFRCxJQUFJLDRCQUE0QixFQUFFLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDbkcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQzdDLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUFBIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQ0EsNENBRUM7QUFPRCw0Q0FFQztBQU1ELDhDQVdDO0FBTUQsOENBS0M7QUFNRCwwQ0FHQztBQU1ELHdDQVlDO0FBTUQsd0NBRUM7QUFNRCxvRUFTQztBQU9ELGdDQWlCQztBQVFELGtDQTJCQztBQTNLRCxxQ0FBbUM7QUFDbkMsK0NBQWdEO0FBQ2hELHlDQUFrRDtBQXFCbEQsU0FBZ0IsZ0JBQWdCLENBQUMsSUFBWTtJQUMzQyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQU9ELFNBQWdCLGdCQUFnQixDQUFDLElBQVk7SUFDM0MsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzVCLENBQUM7QUFNRCxTQUFnQixpQkFBaUI7SUFDL0IsT0FBTyxTQUFTLElBQUksVUFBVTtRQUM1QixPQUFPLFVBQVUsQ0FBQyxPQUFPLEtBQUssUUFBUTtRQUN0QyxVQUFVLENBQUMsT0FBTyxLQUFLLElBQUk7UUFFM0IsU0FBUyxJQUFJLFVBQVUsQ0FBQyxPQUFPO1FBQy9CLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEtBQUssUUFBUTtRQUM5QyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sS0FBSyxJQUFJO1FBRW5DLE1BQU0sSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU87UUFDcEMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQztBQUMvQyxDQUFDO0FBTUQsU0FBZ0IsaUJBQWlCO0lBQy9CLE9BQU8sU0FBUyxJQUFJLFVBQVU7UUFDNUIsT0FBTyxVQUFVLENBQUMsT0FBTyxLQUFLLFFBQVE7UUFDdEMsVUFBVSxDQUFDLE9BQU8sS0FBSyxJQUFJO1FBQzNCLE1BQU0sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDO0FBQ2xFLENBQUM7QUFNRCxTQUFnQixlQUFlO0lBQzdCLE9BQU8sTUFBTSxJQUFJLFVBQVU7UUFDekIsT0FBTyxVQUFVLENBQUMsTUFBaUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQztBQUN0RSxDQUFDO0FBTUQsU0FBZ0IsY0FBYztJQUM1QixPQUFPLFNBQVMsSUFBSSxVQUFVO1FBQzVCLE9BQU8sVUFBVSxDQUFDLE9BQU8sS0FBSyxRQUFRO1FBQ3RDLFVBQVUsQ0FBQyxPQUFPLEtBQUssSUFBSTtRQUUzQixLQUFLLElBQUksVUFBVSxDQUFDLE9BQU87UUFDM0IsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxRQUFRO1FBQzFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLElBQUk7UUFFL0IsR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRztRQUM3QixPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxRQUFRO1FBQzVDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQU1ELFNBQWdCLGNBQWM7SUFDNUIsT0FBTyxLQUFLLElBQUksVUFBVSxDQUFDO0FBQzdCLENBQUM7QUFNRCxTQUFnQiw0QkFBNEI7SUFDMUMsT0FBTyxlQUFlLEVBQUU7UUFDdEIsaUJBQWlCLEVBQUU7UUFDbkIsY0FBYyxFQUFFO1FBQ2hCLGNBQWMsRUFBRTtRQUNoQixDQUNFLGlCQUFpQixFQUFFO1lBQ25CLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxDQUNuRSxDQUFDO0FBQ04sQ0FBQztBQU9ELFNBQXNCLFVBQVUsQ0FBQyxJQUFZOztRQUMzQyxJQUFJLDRCQUE0QixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDekYsTUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUksMkdBQTJHLENBQUMsQ0FBQztRQUM3SSxDQUFDO1FBRUQsSUFBSSxDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQy9ELE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLHlEQUF5RCxDQUFDLENBQUM7UUFDM0YsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFBLG9CQUFVLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSwrQ0FBK0MsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7UUFFRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUseUJBQWEsSUFBSSxDQUFDLFFBQVEsRUFBRSx1Q0FBQztTQUN2QyxDQUFDO0lBQ0osQ0FBQztDQUFBO0FBUUQsU0FBc0IsV0FBVzt5REFBQyxTQUFpQixFQUFFLFNBQVMsR0FBRyxJQUFJO1FBQ25FLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBQSxrQkFBTyxFQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sT0FBTyxHQUFhLEVBQUUsQ0FBQztRQUU3QixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE1BQU0sVUFBVSxHQUFHLElBQUEsZ0JBQUksRUFBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDekMsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFBLGdCQUFLLEVBQUMsVUFBVSxDQUFDLENBQUM7WUFFdEMsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLFdBQVcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFFMUQsU0FBUztZQUNYLENBQUM7WUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFBLG9CQUFRLEVBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQy9DLElBQUksNEJBQTRCLEVBQUUsSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFBLG9CQUFVLEVBQUMsSUFBQSxnQkFBSSxFQUFDLElBQUEsbUJBQU8sRUFBQyxVQUFVLENBQUMsRUFBRSxHQUFHLFVBQVUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNoSSxPQUFPLENBQUMsSUFBSSxDQUFDLCtCQUErQixVQUFVLGtFQUFrRSxVQUFVLGtJQUFrSSxDQUFDLENBQUM7Z0JBRXRRLFNBQVM7WUFDWCxDQUFDO1lBRUQsSUFBSSw0QkFBNEIsRUFBRSxJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ25HLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUM3QyxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FBQSJ9 |
{ | ||
"name": "@krlwlfrt/dml", | ||
"version": "1.2.0", | ||
"version": "2.0.0", | ||
"description": "Dynamic module loader", | ||
"main": "lib/index.js", | ||
"types": "lib/index.d.ts", | ||
"type": "commonjs", | ||
"scripts": { | ||
@@ -32,11 +33,11 @@ "build": "npm run lint && npm run compile", | ||
"devDependencies": { | ||
"@eslint/js": "9.14.0", | ||
"@eslint/js": "9.15.0", | ||
"@krlwlfrt/otpc": "2.0.0", | ||
"@testdeck/mocha": "0.3.3", | ||
"@types/eslint__js": "8.42.3", | ||
"@types/mocha": "10.0.9", | ||
"@types/node": "22.9.0", | ||
"@types/mocha": "10.0.10", | ||
"@types/node": "22.10.0", | ||
"conventional-changelog-cli": "5.0.0", | ||
"eslint": "9.14.0", | ||
"eslint-plugin-jsdoc": "50.4.3", | ||
"eslint": "9.15.0", | ||
"eslint-plugin-jsdoc": "50.6.0", | ||
"mocha": "10.8.2", | ||
@@ -46,5 +47,5 @@ "nyc": "17.1.0", | ||
"ts-node": "10.9.2", | ||
"typedoc": "0.26.11", | ||
"typescript": "5.6.3", | ||
"typescript-eslint": "8.13.0" | ||
"typedoc": "0.27.0", | ||
"typescript": "5.7.2", | ||
"typescript-eslint": "8.16.0" | ||
}, | ||
@@ -51,0 +52,0 @@ "nyc": { |
@@ -19,3 +19,2 @@ /* | ||
import {basename, dirname, join} from 'node:path'; | ||
import {REGISTER_INSTANCE} from 'ts-node'; | ||
@@ -55,2 +54,19 @@ /** | ||
/** | ||
* Check whether or not currently running in NodeJs | ||
* @returns Whether or not currently running in NodeJS | ||
*/ | ||
export function isRunningInNodeJS(): boolean { | ||
return 'process' in globalThis && | ||
typeof globalThis.process === 'object' && | ||
globalThis.process !== null && | ||
'release' in globalThis.process && | ||
typeof globalThis.process.release === 'object' && | ||
globalThis.process.release !== null && | ||
'name' in globalThis.process.release && | ||
globalThis.process.release.name === 'node'; | ||
} | ||
/** | ||
* Check whether or not currently running in TS Node | ||
@@ -60,3 +76,6 @@ * @returns Whether or not currently running in TS Node | ||
export function isRunningInTSNode(): boolean { | ||
return 'process' in globalThis && typeof globalThis.process[REGISTER_INSTANCE] !== 'undefined'; | ||
return 'process' in globalThis && | ||
typeof globalThis.process === 'object' && | ||
globalThis.process !== null && | ||
Symbol.for('ts-node.register.instance') in globalThis.process; | ||
} | ||
@@ -69,6 +88,33 @@ | ||
export function isRunningInDeno(): boolean { | ||
return typeof globalThis === 'object' && typeof (globalThis as any).Deno === 'object'; | ||
return 'Deno' in globalThis && | ||
typeof globalThis['Deno' as keyof typeof globalThis] === 'object'; | ||
} | ||
/** | ||
* Check whether or not currently running in TSX runtime | ||
* @returns Whether or not currently running in TSX runtime+ | ||
*/ | ||
export function isRunningInTsx(): boolean { | ||
return 'process' in globalThis && | ||
typeof globalThis.process === 'object' && | ||
globalThis.process !== null && | ||
'env' in globalThis.process && | ||
typeof globalThis.process.env === 'object' && | ||
globalThis.process.env !== null && | ||
'_' in globalThis.process.env && | ||
typeof globalThis.process.env._ === 'string' && | ||
globalThis.process.env._.includes('.bin/tsx'); | ||
} | ||
/** | ||
* Check whether nor not currently running in Bun | ||
* @returns Whether nor not currently running in Bun runtime | ||
*/ | ||
export function isRunningInBun(): boolean { | ||
return 'Bun' in globalThis; | ||
} | ||
/** | ||
* Check whether or not currently running in TypeScript runtime | ||
@@ -78,3 +124,10 @@ * @returns Whether or not currently running in TypeScript runtime | ||
export function isRunningInTypeScriptRuntime(): boolean { | ||
return isRunningInDeno() || isRunningInTSNode(); | ||
return isRunningInDeno() || | ||
isRunningInTSNode() || | ||
isRunningInTsx() || | ||
isRunningInBun() || | ||
( | ||
isRunningInNodeJS() && | ||
globalThis.process.execArgv.includes('--experimental-strip-types') | ||
); | ||
} | ||
@@ -81,0 +134,0 @@ |
21242
320