UNPKG

actionhero

Version:

The reusable, scalable, and quick node.js API server for stateless and stateful applications

41 lines (35 loc) 1.18 kB
import * as path from "path"; function isTypescript(): boolean { // do we have any flags? if (process.env.ACTIONHERO_TYPESCRIPT_MODE?.length > 0) { return process.env.ACTIONHERO_TYPESCRIPT_MODE.toLowerCase() === "true" ? true : false; } // if this file is typescript, we are running typescript :D // this is the best check, but fails when actionhero is compiled to js though... const extension = path.extname(__filename); if (extension === ".ts") { return true; } // are we running via a ts-node/ts-node-dev shim? const lastArg = process.execArgv[process.execArgv.length - 1]; if (lastArg && path.parse(lastArg).name.indexOf("ts-node") >= 0) { return true; } try { /** * Are we running in typescript at the moment? * see https://github.com/TypeStrong/ts-node/pull/858 for more details */ return process[Symbol.for("ts-node.register.instance")] || (process.env.NODE_ENV === "test" && process.env.ACTIONHERO_TYPESCRIPT_MODE?.toLowerCase() !== "false") ? true : false; } catch (error) { console.error(error); return false; } } export const typescript = isTypescript();