Skip to content

Commit 28a5daf

Browse files
committed
feat: added runtime helper
1 parent f65069e commit 28a5daf

File tree

5 files changed

+28
-0
lines changed

5 files changed

+28
-0
lines changed

src/Support/Helpers/index.imba

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ const { default: multitap } = require './multitap'
2424
const { default: now } = require './now'
2525
const { default: response } = require './response'
2626
const { default: route } = require './route'
27+
const { default: runtime } = require './runtime'
2728
const { default: signedRoute } = require './signedRoute'
2829
const { default: singularize } = require './singularize'
2930
const { default: slug } = require './slug'
@@ -69,6 +70,7 @@ export {
6970
pluralize
7071
response
7172
route
73+
runtime
7274
signedRoute
7375
singularize
7476
slug

src/Support/Helpers/runtime.imba

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
export default def runtime
2+
const args = process.argv
3+
let runtime = 'node'
4+
5+
if args && args.length > 0
6+
const executor = args[0].split('/').pop!
7+
8+
runtime = executor if executor != undefined
9+
10+
runtime

src/index.imba

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ import Response from './Http/Response/Response'
6666
import response from './Support/Helpers/response'
6767
import Route from './Http/Router/Route'
6868
import route from './Support/Helpers/route'
69+
import runtime from './Support/Helpers/runtime'
6970
import Server from './Foundation/Server'
7071
import ServiceResolver from './Support/ServiceResolver'
7172
import SessionDriverManager from './Http/Session/DriverManager'
@@ -165,6 +166,7 @@ export {
165166
Response
166167
Route
167168
route
169+
runtime
168170
Server
169171
ServiceResolver
170172
SessionDriverManager

types/Support/Helpers/runtime.d.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
type Runtime = 'node' | 'bun' | 'deno'
2+
3+
/**
4+
* Get the current runtime.
5+
*
6+
* @returns {string} The current runtime.
7+
*/
8+
export default function runtime<T = unknown>(): Runtime & T;
9+
10+
export { Runtime }

types/index.d.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ import Response from "./Http/Response/Response";
8080
import response from "./Support/Helpers/response";
8181
import Route from "./Http/Router/Route";
8282
import route from "./Support/Helpers/route";
83+
import runtime from "./Support/Helpers/runtime";
8384
import Server from './Foundation/Server'
8485
import ServiceResolver from "./Support/ServiceResolver";
8586
import SessionDriverManager from "./Http/Session/DriverManager";
@@ -103,6 +104,7 @@ import VerifyEmail from './Auth/Mail/VerifyEmail'
103104
import View from "./Http/View/View";
104105
import view from "./Support/Helpers/view";
105106
import ViewResponse from "./Http/Response/ViewResponse";
107+
import type { Runtime } from "./Support/Helpers/runtime";
106108

107109
type ImbaDevTools = {
108110
debug?: boolean
@@ -153,6 +155,7 @@ declare global {
153155
var now: <T = any>() => T
154156
var response: <T = any>(data?: T, statusCode?: number) => Response
155157
var route: (name: string, params?: Params) => string
158+
var runtime: <T = unknown>() => Runtime & T
156159
var signedRoute: (name: string, params?: Params) => Promise<string>
157160
var singularize: (value: string) => string
158161
var slug: (value: string, separator?: string, options?: SlugOptions) => string
@@ -247,6 +250,7 @@ export {
247250
response,
248251
Response,
249252
route,
253+
runtime,
250254
Route,
251255
Rules,
252256
Server,

0 commit comments

Comments
 (0)