@arcjet/runtime
Advanced tools
| export type Runtime = "workerd" | "deno" | "node" | "bun" | "edge-light" | ""; | ||
| export declare function runtime(): Runtime; |
| /* | ||
| This file is mostly a duplication of `index.ts` with the `process` lookup | ||
| removed. We do this because Next.js uses an error-prone method for showing | ||
| a warning when compiling for the edge runtime. | ||
| */ | ||
| // This code was improved by detection mechanisms in | ||
| // https://github.com/unjs/std-env/blob/b4ef16832baf4594ece7796a2c1805712fde70a3/src/runtimes.ts | ||
| // | ||
| // MIT License | ||
| // | ||
| // Copyright (c) Pooya Parsa <pooya@pi0.io> | ||
| // | ||
| // Permission is hereby granted, free of charge, to any person obtaining a copy | ||
| // of this software and associated documentation files (the "Software"), to deal | ||
| // in the Software without restriction, including without limitation the rights | ||
| // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
| // copies of the Software, and to permit persons to whom the Software is | ||
| // furnished to do so, subject to the following conditions: | ||
| // | ||
| // The above copyright notice and this permission notice shall be included in | ||
| // all copies or substantial portions of the Software. | ||
| // | ||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
| // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
| // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
| // SOFTWARE. | ||
| function runtime() { | ||
| // The detection order matters in this function because some platforms will | ||
| // implement compatibility layers, but we want to detect them accurately. | ||
| // https://developers.cloudflare.com/workers/configuration/compatibility-dates/#global-navigator | ||
| if (typeof navigator !== "undefined" && | ||
| navigator.userAgent === "Cloudflare-Workers") { | ||
| return "workerd"; | ||
| } | ||
| if (typeof Deno !== "undefined") { | ||
| return "deno"; | ||
| } | ||
| if (typeof Bun !== "undefined") { | ||
| return "bun"; | ||
| } | ||
| if (typeof EdgeRuntime !== "undefined") { | ||
| return "edge-light"; | ||
| } | ||
| // Unknown or unsupported runtime | ||
| return ""; | ||
| } | ||
| export { runtime }; |
+11
-7
| { | ||
| "name": "@arcjet/runtime", | ||
| "version": "1.0.0-beta.5", | ||
| "version": "1.0.0-beta.6", | ||
| "description": "Arcjet runtime detection", | ||
@@ -27,2 +27,6 @@ "license": "Apache-2.0", | ||
| "types": "./index.d.ts", | ||
| "exports": { | ||
| "edge-light": "./edge-light.js", | ||
| "default": "./index.js" | ||
| }, | ||
| "files": [ | ||
@@ -44,9 +48,9 @@ "LICENSE", | ||
| "devDependencies": { | ||
| "@arcjet/eslint-config": "1.0.0-beta.5", | ||
| "@arcjet/rollup-config": "1.0.0-beta.5", | ||
| "@arcjet/tsconfig": "1.0.0-beta.5", | ||
| "@rollup/wasm-node": "4.37.0", | ||
| "eslint": "9.23.0", | ||
| "@arcjet/eslint-config": "1.0.0-beta.6", | ||
| "@arcjet/rollup-config": "1.0.0-beta.6", | ||
| "@arcjet/tsconfig": "1.0.0-beta.6", | ||
| "@rollup/wasm-node": "4.40.0", | ||
| "eslint": "9.24.0", | ||
| "expect": "29.7.0", | ||
| "typescript": "5.8.2" | ||
| "typescript": "5.8.3" | ||
| }, | ||
@@ -53,0 +57,0 @@ "publishConfig": { |
18994
14.53%7
40%102
104%