File tree Expand file tree Collapse file tree 4 files changed +68
-1
lines changed Expand file tree Collapse file tree 4 files changed +68
-1
lines changed Original file line number Diff line number Diff line change 26
26
runs-on : ubuntu-latest
27
27
strategy :
28
28
matrix :
29
- node-version : [18, latest]
29
+ node-version : [18, 20, latest]
30
30
steps :
31
31
- uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
32
32
- name : Use Node.js ${{ matrix.node-version }}
Original file line number Diff line number Diff line change
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // SPDX-FileCopyrightText: 2023-Present The Kubernetes Fluent Client Authors
3
+
4
+ import { describe , expect , test } from "@jest/globals" ;
5
+
6
+ import { fromEnv } from "./helpers" ;
7
+
8
+ describe ( "helpers" , ( ) => {
9
+ test ( "fromEnv for NodeJS" , ( ) => {
10
+ expect ( ( ) => {
11
+ fromEnv ( "MY_MISSING_ENV_VAR" ) ;
12
+ } ) . toThrowError ( "Environment variable MY_MISSING_ENV_VAR is not set" ) ;
13
+
14
+ process . env . MY_ENV_VAR = "my-value" ;
15
+ expect ( fromEnv ( "MY_ENV_VAR" ) ) . toEqual ( "my-value" ) ;
16
+ delete process . env . MY_ENV_VAR ;
17
+ } ) ;
18
+ } ) ;
Original file line number Diff line number Diff line change
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // SPDX-FileCopyrightText: 2023-Present The Kubernetes Fluent Client Authors
3
+
4
+ declare const Deno : {
5
+ env : {
6
+ get ( name : string ) : string | undefined ;
7
+ } ;
8
+ } ;
9
+
10
+ /**
11
+ * Get an environment variable (Node, Deno or Bun), or throw an error if it's not set.
12
+ *
13
+ * @example
14
+ * const value = fromEnv("MY_ENV_VAR");
15
+ * console.log(value);
16
+ * // => "my-value"
17
+ *
18
+ * @example
19
+ * const value = fromEnv("MY_MISSING_ENV_VAR");
20
+ * // => Error: Environment variable MY_MISSING_ENV_VAR is not set
21
+ *
22
+ * @param name The name of the environment variable to get.
23
+ * @returns The value of the environment variable.
24
+ * @throws An error if the environment variable is not set.
25
+ */
26
+ export function fromEnv ( name : string ) : string {
27
+ let envValue : string | undefined ;
28
+
29
+ // Check for Node.js or Bun
30
+ if ( typeof process !== "undefined" && typeof process . env !== "undefined" ) {
31
+ envValue = process . env [ name ] ;
32
+ }
33
+ // Check for Deno
34
+ else if ( typeof Deno !== "undefined" ) {
35
+ envValue = Deno . env . get ( name ) ;
36
+ }
37
+ // Otherwise, throw an error
38
+ else {
39
+ throw new Error ( "Unknown runtime environment" ) ;
40
+ }
41
+
42
+ if ( typeof envValue === "undefined" ) {
43
+ throw new Error ( `Environment variable ${ name } is not set` ) ;
44
+ }
45
+
46
+ return envValue ;
47
+ }
Original file line number Diff line number Diff line change @@ -25,3 +25,5 @@ export { GenericKind } from "./types";
25
25
export * from "./types" ;
26
26
27
27
export * as K8sClientNode from "@kubernetes/client-node" ;
28
+
29
+ export { fromEnv } from "./helpers" ;
You can’t perform that action at this time.
0 commit comments