@strapi/utils 5.33.2 → 5.33.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,20 +1,36 @@
1
1
  export type Env = typeof envFn & typeof utils;
2
- declare function envFn<T>(key: string, defaultValue?: T): string | T | undefined;
2
+ declare function envFn(key: string): string | undefined;
3
+ declare function envFn(key: string, defaultValue: string): string;
4
+ declare function envFn<T>(key: string, defaultValue: T): string | T;
5
+ declare function int(key: string, defaultValue: number): number;
6
+ declare function int(key: string, defaultValue?: number | undefined): number | undefined;
7
+ declare function float(key: string, defaultValue: number): number;
8
+ declare function float(key: string, defaultValue?: number | undefined): number | undefined;
9
+ declare function bool(key: string, defaultValue: boolean): boolean;
10
+ declare function bool(key: string, defaultValue?: boolean | undefined): boolean | undefined;
11
+ declare function json<T extends object>(key: string, defaultValue: T): T;
12
+ declare function json<T extends object>(key: string, defaultValue?: T | undefined): T | undefined;
13
+ declare function array(key: string, defaultValue: string[]): string[];
14
+ declare function array(key: string, defaultValue?: string[] | undefined): string[] | undefined;
15
+ declare function date(key: string, defaultValue: Date): Date;
16
+ declare function date(key: string, defaultValue?: Date | undefined): Date | undefined;
17
+ /**
18
+ * Gets a value from env that matches oneOf provided values
19
+ * @param {string} key
20
+ * @param {string[]} expectedValues
21
+ * @param {string|undefined} defaultValue
22
+ * @returns {string|undefined}
23
+ */
24
+ declare function oneOf<T extends string, TDefault extends T = T>(key: string, expectedValues: T[], defaultValue: TDefault): T;
25
+ declare function oneOf<T extends string, TDefault extends T = T>(key: string, expectedValues: T[], defaultValue?: TDefault | undefined): T | undefined;
3
26
  declare const utils: {
4
- int(key: string, defaultValue?: number): number | undefined;
5
- float(key: string, defaultValue?: number): number | undefined;
6
- bool(key: string, defaultValue?: boolean): boolean | undefined;
7
- json(key: string, defaultValue?: object): any;
8
- array(key: string, defaultValue?: string[]): string[] | undefined;
9
- date(key: string, defaultValue?: Date): Date | undefined;
10
- /**
11
- * Gets a value from env that matches oneOf provided values
12
- * @param {string} key
13
- * @param {string[]} expectedValues
14
- * @param {string|undefined} defaultValue
15
- * @returns {string|undefined}
16
- */
17
- oneOf(key: string, expectedValues?: unknown[], defaultValue?: unknown): unknown;
27
+ int: typeof int;
28
+ float: typeof float;
29
+ bool: typeof bool;
30
+ json: typeof json;
31
+ array: typeof array;
32
+ date: typeof date;
33
+ oneOf: typeof oneOf;
18
34
  };
19
35
  declare const env: Env;
20
36
  export default env;
@@ -1 +1 @@
1
- {"version":3,"file":"env-helper.d.ts","sourceRoot":"","sources":["../src/env-helper.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,GAAG,OAAO,KAAK,GAAG,OAAO,KAAK,CAAC;AAE9C,iBAAS,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,SAAS,CAEvE;AAMD,QAAA,MAAM,KAAK;aACA,MAAM,iBAAiB,MAAM,GAAG,MAAM,GAAG,SAAS;eAQhD,MAAM,iBAAiB,MAAM,GAAG,MAAM,GAAG,SAAS;cAQnD,MAAM,iBAAiB,OAAO,GAAG,OAAO,GAAG,SAAS;cAQpD,MAAM,iBAAiB,MAAM;eAgB5B,MAAM,iBAAiB,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS;cAgBvD,MAAM,iBAAiB,IAAI,GAAG,IAAI,GAAG,SAAS;IAQxD;;;;;;OAMG;eACQ,MAAM,mBAAmB,OAAO,EAAE,iBAAiB,OAAO;CAYtE,CAAC;AAEF,QAAA,MAAM,GAAG,EAAE,GAAiC,CAAC;AAE7C,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"env-helper.d.ts","sourceRoot":"","sources":["../src/env-helper.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,GAAG,OAAO,KAAK,GAAG,OAAO,KAAK,CAAC;AAE9C,iBAAS,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAChD,iBAAS,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;AAC1D,iBAAS,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;AAS5D,iBAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;AACxD,iBAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AASjF,iBAAS,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;AAC1D,iBAAS,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AASnF,iBAAS,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC;AAC3D,iBAAS,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AASpF,iBAAS,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;AACjE,iBAAS,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC;AAiB1F,iBAAS,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;AAC9D,iBAAS,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;AAiBvF,iBAAS,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;AACrD,iBAAS,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;AAS9E;;;;;;GAMG;AACH,iBAAS,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,SAAS,CAAC,GAAG,CAAC,EACrD,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,CAAC,EAAE,EACnB,YAAY,EAAE,QAAQ,GACrB,CAAC,CAAC;AACL,iBAAS,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,SAAS,CAAC,GAAG,CAAC,EACrD,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,CAAC,EAAE,EACnB,YAAY,CAAC,EAAE,QAAQ,GAAG,SAAS,GAClC,CAAC,GAAG,SAAS,CAAC;AAkBjB,QAAA,MAAM,KAAK;;;;;;;;CAQV,CAAC;AAEF,QAAA,MAAM,GAAG,EAAE,GAAiC,CAAC;AAE7C,eAAe,GAAG,CAAC"}
@@ -8,72 +8,76 @@ function envFn(key, defaultValue) {
8
8
  function getKey(key) {
9
9
  return process.env[key] ?? '';
10
10
  }
11
- const utils = {
12
- int (key, defaultValue) {
13
- if (!_.has(process.env, key)) {
14
- return defaultValue;
15
- }
16
- return parseInt(getKey(key), 10);
17
- },
18
- float (key, defaultValue) {
19
- if (!_.has(process.env, key)) {
20
- return defaultValue;
21
- }
22
- return parseFloat(getKey(key));
23
- },
24
- bool (key, defaultValue) {
25
- if (!_.has(process.env, key)) {
26
- return defaultValue;
27
- }
28
- return getKey(key) === 'true';
29
- },
30
- json (key, defaultValue) {
31
- if (!_.has(process.env, key)) {
32
- return defaultValue;
33
- }
34
- try {
35
- return JSON.parse(getKey(key));
36
- } catch (error) {
37
- if (error instanceof Error) {
38
- throw new Error(`Invalid json environment variable ${key}: ${error.message}`);
39
- }
40
- throw error;
41
- }
42
- },
43
- array (key, defaultValue) {
44
- if (!_.has(process.env, key)) {
45
- return defaultValue;
46
- }
47
- let value = getKey(key);
48
- if (value.startsWith('[') && value.endsWith(']')) {
49
- value = value.substring(1, value.length - 1);
50
- }
51
- return value.split(',').map((v)=>{
52
- return _.trim(_.trim(v, ' '), '"');
53
- });
54
- },
55
- date (key, defaultValue) {
56
- if (!_.has(process.env, key)) {
57
- return defaultValue;
58
- }
59
- return new Date(getKey(key));
60
- },
61
- /**
62
- * Gets a value from env that matches oneOf provided values
63
- * @param {string} key
64
- * @param {string[]} expectedValues
65
- * @param {string|undefined} defaultValue
66
- * @returns {string|undefined}
67
- */ oneOf (key, expectedValues, defaultValue) {
68
- if (!expectedValues) {
69
- throw new Error(`env.oneOf requires expectedValues`);
70
- }
71
- if (defaultValue && !expectedValues.includes(defaultValue)) {
72
- throw new Error(`env.oneOf requires defaultValue to be included in expectedValues`);
11
+ function int(key, defaultValue) {
12
+ if (!_.has(process.env, key)) {
13
+ return defaultValue;
14
+ }
15
+ return parseInt(getKey(key), 10);
16
+ }
17
+ function float(key, defaultValue) {
18
+ if (!_.has(process.env, key)) {
19
+ return defaultValue;
20
+ }
21
+ return parseFloat(getKey(key));
22
+ }
23
+ function bool(key, defaultValue) {
24
+ if (!_.has(process.env, key)) {
25
+ return defaultValue;
26
+ }
27
+ return getKey(key) === 'true';
28
+ }
29
+ function json(key, defaultValue) {
30
+ if (!_.has(process.env, key)) {
31
+ return defaultValue;
32
+ }
33
+ try {
34
+ return JSON.parse(getKey(key));
35
+ } catch (error) {
36
+ if (error instanceof Error) {
37
+ throw new Error(`Invalid json environment variable ${key}: ${error.message}`);
73
38
  }
74
- const rawValue = env(key, defaultValue);
75
- return expectedValues.includes(rawValue) ? rawValue : defaultValue;
39
+ throw error;
40
+ }
41
+ }
42
+ function array(key, defaultValue) {
43
+ if (!_.has(process.env, key)) {
44
+ return defaultValue;
45
+ }
46
+ let value = getKey(key);
47
+ if (value.startsWith('[') && value.endsWith(']')) {
48
+ value = value.substring(1, value.length - 1);
49
+ }
50
+ return value.split(',').map((v)=>{
51
+ return _.trim(_.trim(v, ' '), '"');
52
+ });
53
+ }
54
+ function date(key, defaultValue) {
55
+ if (!_.has(process.env, key)) {
56
+ return defaultValue;
57
+ }
58
+ return new Date(getKey(key));
59
+ }
60
+ function oneOf(key, expectedValues, defaultValue) {
61
+ if (!expectedValues) {
62
+ throw new Error(`env.oneOf requires expectedValues`);
63
+ }
64
+ if (defaultValue && !expectedValues.includes(defaultValue)) {
65
+ throw new Error(`env.oneOf requires defaultValue to be included in expectedValues`);
76
66
  }
67
+ const rawValue = env(key, defaultValue);
68
+ if (rawValue !== undefined && expectedValues.includes(rawValue)) {
69
+ return rawValue;
70
+ }
71
+ return defaultValue;
72
+ }
73
+ const utils = {
74
+ int,
75
+ float,
76
+ bool,
77
+ json,
78
+ array,
79
+ date,
80
+ oneOf
77
81
  };
78
82
  const env = Object.assign(envFn, utils);
79
83
 
@@ -1 +1 @@
1
- {"version":3,"file":"env-helper.js","sources":["../src/env-helper.ts"],"sourcesContent":["import _ from 'lodash';\n\nexport type Env = typeof envFn & typeof utils;\n\nfunction envFn<T>(key: string, defaultValue?: T): string | T | undefined {\n return _.has(process.env, key) ? process.env[key] : defaultValue;\n}\n\nfunction getKey(key: string) {\n return process.env[key] ?? '';\n}\n\nconst utils = {\n int(key: string, defaultValue?: number): number | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n return parseInt(getKey(key), 10);\n },\n\n float(key: string, defaultValue?: number): number | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n return parseFloat(getKey(key));\n },\n\n bool(key: string, defaultValue?: boolean): boolean | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n return getKey(key) === 'true';\n },\n\n json(key: string, defaultValue?: object) {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n try {\n return JSON.parse(getKey(key));\n } catch (error) {\n if (error instanceof Error) {\n throw new Error(`Invalid json environment variable ${key}: ${error.message}`);\n }\n\n throw error;\n }\n },\n\n array(key: string, defaultValue?: string[]): string[] | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n let value = getKey(key);\n\n if (value.startsWith('[') && value.endsWith(']')) {\n value = value.substring(1, value.length - 1);\n }\n\n return value.split(',').map((v) => {\n return _.trim(_.trim(v, ' '), '\"');\n });\n },\n\n date(key: string, defaultValue?: Date): Date | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n return new Date(getKey(key));\n },\n\n /**\n * Gets a value from env that matches oneOf provided values\n * @param {string} key\n * @param {string[]} expectedValues\n * @param {string|undefined} defaultValue\n * @returns {string|undefined}\n */\n oneOf(key: string, expectedValues?: unknown[], defaultValue?: unknown) {\n if (!expectedValues) {\n throw new Error(`env.oneOf requires expectedValues`);\n }\n\n if (defaultValue && !expectedValues.includes(defaultValue)) {\n throw new Error(`env.oneOf requires defaultValue to be included in expectedValues`);\n }\n\n const rawValue = env(key, defaultValue);\n return expectedValues.includes(rawValue) ? rawValue : defaultValue;\n },\n};\n\nconst env: Env = Object.assign(envFn, utils);\n\nexport default env;\n"],"names":["envFn","key","defaultValue","_","has","process","env","getKey","utils","int","parseInt","float","parseFloat","bool","json","JSON","parse","error","Error","message","array","value","startsWith","endsWith","substring","length","split","map","v","trim","date","Date","oneOf","expectedValues","includes","rawValue","Object","assign"],"mappings":"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"}
1
+ {"version":3,"file":"env-helper.js","sources":["../src/env-helper.ts"],"sourcesContent":["import _ from 'lodash';\n\nexport type Env = typeof envFn & typeof utils;\n\nfunction envFn(key: string): string | undefined;\nfunction envFn(key: string, defaultValue: string): string;\nfunction envFn<T>(key: string, defaultValue: T): string | T;\nfunction envFn(key: string, defaultValue?: any): any {\n return _.has(process.env, key) ? process.env[key] : defaultValue;\n}\n\nfunction getKey(key: string) {\n return process.env[key] ?? '';\n}\n\nfunction int(key: string, defaultValue: number): number;\nfunction int(key: string, defaultValue?: number | undefined): number | undefined;\nfunction int(key: string, defaultValue?: number | undefined): number | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n return parseInt(getKey(key), 10);\n}\n\nfunction float(key: string, defaultValue: number): number;\nfunction float(key: string, defaultValue?: number | undefined): number | undefined;\nfunction float(key: string, defaultValue?: number): number | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n return parseFloat(getKey(key));\n}\n\nfunction bool(key: string, defaultValue: boolean): boolean;\nfunction bool(key: string, defaultValue?: boolean | undefined): boolean | undefined;\nfunction bool(key: string, defaultValue?: boolean): boolean | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n return getKey(key) === 'true';\n}\n\nfunction json<T extends object>(key: string, defaultValue: T): T;\nfunction json<T extends object>(key: string, defaultValue?: T | undefined): T | undefined;\nfunction json(key: string, defaultValue?: object) {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n try {\n return JSON.parse(getKey(key));\n } catch (error) {\n if (error instanceof Error) {\n throw new Error(`Invalid json environment variable ${key}: ${error.message}`);\n }\n\n throw error;\n }\n}\n\nfunction array(key: string, defaultValue: string[]): string[];\nfunction array(key: string, defaultValue?: string[] | undefined): string[] | undefined;\nfunction array(key: string, defaultValue?: string[]): string[] | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n let value = getKey(key);\n\n if (value.startsWith('[') && value.endsWith(']')) {\n value = value.substring(1, value.length - 1);\n }\n\n return value.split(',').map((v) => {\n return _.trim(_.trim(v, ' '), '\"');\n });\n}\n\nfunction date(key: string, defaultValue: Date): Date;\nfunction date(key: string, defaultValue?: Date | undefined): Date | undefined;\nfunction date(key: string, defaultValue?: Date): Date | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n return new Date(getKey(key));\n}\n\n/**\n * Gets a value from env that matches oneOf provided values\n * @param {string} key\n * @param {string[]} expectedValues\n * @param {string|undefined} defaultValue\n * @returns {string|undefined}\n */\nfunction oneOf<T extends string, TDefault extends T = T>(\n key: string,\n expectedValues: T[],\n defaultValue: TDefault\n): T;\nfunction oneOf<T extends string, TDefault extends T = T>(\n key: string,\n expectedValues: T[],\n defaultValue?: TDefault | undefined\n): T | undefined;\nfunction oneOf(key: string, expectedValues?: string[], defaultValue?: string) {\n if (!expectedValues) {\n throw new Error(`env.oneOf requires expectedValues`);\n }\n\n if (defaultValue && !expectedValues.includes(defaultValue)) {\n throw new Error(`env.oneOf requires defaultValue to be included in expectedValues`);\n }\n\n const rawValue = env(key, defaultValue);\n if (rawValue !== undefined && expectedValues.includes(rawValue)) {\n return rawValue;\n }\n\n return defaultValue;\n}\n\nconst utils = {\n int,\n float,\n bool,\n json,\n array,\n date,\n oneOf,\n};\n\nconst env: Env = Object.assign(envFn, utils);\n\nexport default env;\n"],"names":["envFn","key","defaultValue","_","has","process","env","getKey","int","parseInt","float","parseFloat","bool","json","JSON","parse","error","Error","message","array","value","startsWith","endsWith","substring","length","split","map","v","trim","date","Date","oneOf","expectedValues","includes","rawValue","undefined","utils","Object","assign"],"mappings":"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"}
@@ -6,72 +6,76 @@ function envFn(key, defaultValue) {
6
6
  function getKey(key) {
7
7
  return process.env[key] ?? '';
8
8
  }
9
- const utils = {
10
- int (key, defaultValue) {
11
- if (!___default.has(process.env, key)) {
12
- return defaultValue;
13
- }
14
- return parseInt(getKey(key), 10);
15
- },
16
- float (key, defaultValue) {
17
- if (!___default.has(process.env, key)) {
18
- return defaultValue;
19
- }
20
- return parseFloat(getKey(key));
21
- },
22
- bool (key, defaultValue) {
23
- if (!___default.has(process.env, key)) {
24
- return defaultValue;
25
- }
26
- return getKey(key) === 'true';
27
- },
28
- json (key, defaultValue) {
29
- if (!___default.has(process.env, key)) {
30
- return defaultValue;
31
- }
32
- try {
33
- return JSON.parse(getKey(key));
34
- } catch (error) {
35
- if (error instanceof Error) {
36
- throw new Error(`Invalid json environment variable ${key}: ${error.message}`);
37
- }
38
- throw error;
39
- }
40
- },
41
- array (key, defaultValue) {
42
- if (!___default.has(process.env, key)) {
43
- return defaultValue;
44
- }
45
- let value = getKey(key);
46
- if (value.startsWith('[') && value.endsWith(']')) {
47
- value = value.substring(1, value.length - 1);
48
- }
49
- return value.split(',').map((v)=>{
50
- return ___default.trim(___default.trim(v, ' '), '"');
51
- });
52
- },
53
- date (key, defaultValue) {
54
- if (!___default.has(process.env, key)) {
55
- return defaultValue;
56
- }
57
- return new Date(getKey(key));
58
- },
59
- /**
60
- * Gets a value from env that matches oneOf provided values
61
- * @param {string} key
62
- * @param {string[]} expectedValues
63
- * @param {string|undefined} defaultValue
64
- * @returns {string|undefined}
65
- */ oneOf (key, expectedValues, defaultValue) {
66
- if (!expectedValues) {
67
- throw new Error(`env.oneOf requires expectedValues`);
68
- }
69
- if (defaultValue && !expectedValues.includes(defaultValue)) {
70
- throw new Error(`env.oneOf requires defaultValue to be included in expectedValues`);
9
+ function int(key, defaultValue) {
10
+ if (!___default.has(process.env, key)) {
11
+ return defaultValue;
12
+ }
13
+ return parseInt(getKey(key), 10);
14
+ }
15
+ function float(key, defaultValue) {
16
+ if (!___default.has(process.env, key)) {
17
+ return defaultValue;
18
+ }
19
+ return parseFloat(getKey(key));
20
+ }
21
+ function bool(key, defaultValue) {
22
+ if (!___default.has(process.env, key)) {
23
+ return defaultValue;
24
+ }
25
+ return getKey(key) === 'true';
26
+ }
27
+ function json(key, defaultValue) {
28
+ if (!___default.has(process.env, key)) {
29
+ return defaultValue;
30
+ }
31
+ try {
32
+ return JSON.parse(getKey(key));
33
+ } catch (error) {
34
+ if (error instanceof Error) {
35
+ throw new Error(`Invalid json environment variable ${key}: ${error.message}`);
71
36
  }
72
- const rawValue = env(key, defaultValue);
73
- return expectedValues.includes(rawValue) ? rawValue : defaultValue;
37
+ throw error;
38
+ }
39
+ }
40
+ function array(key, defaultValue) {
41
+ if (!___default.has(process.env, key)) {
42
+ return defaultValue;
43
+ }
44
+ let value = getKey(key);
45
+ if (value.startsWith('[') && value.endsWith(']')) {
46
+ value = value.substring(1, value.length - 1);
47
+ }
48
+ return value.split(',').map((v)=>{
49
+ return ___default.trim(___default.trim(v, ' '), '"');
50
+ });
51
+ }
52
+ function date(key, defaultValue) {
53
+ if (!___default.has(process.env, key)) {
54
+ return defaultValue;
55
+ }
56
+ return new Date(getKey(key));
57
+ }
58
+ function oneOf(key, expectedValues, defaultValue) {
59
+ if (!expectedValues) {
60
+ throw new Error(`env.oneOf requires expectedValues`);
61
+ }
62
+ if (defaultValue && !expectedValues.includes(defaultValue)) {
63
+ throw new Error(`env.oneOf requires defaultValue to be included in expectedValues`);
74
64
  }
65
+ const rawValue = env(key, defaultValue);
66
+ if (rawValue !== undefined && expectedValues.includes(rawValue)) {
67
+ return rawValue;
68
+ }
69
+ return defaultValue;
70
+ }
71
+ const utils = {
72
+ int,
73
+ float,
74
+ bool,
75
+ json,
76
+ array,
77
+ date,
78
+ oneOf
75
79
  };
76
80
  const env = Object.assign(envFn, utils);
77
81
 
@@ -1 +1 @@
1
- {"version":3,"file":"env-helper.mjs","sources":["../src/env-helper.ts"],"sourcesContent":["import _ from 'lodash';\n\nexport type Env = typeof envFn & typeof utils;\n\nfunction envFn<T>(key: string, defaultValue?: T): string | T | undefined {\n return _.has(process.env, key) ? process.env[key] : defaultValue;\n}\n\nfunction getKey(key: string) {\n return process.env[key] ?? '';\n}\n\nconst utils = {\n int(key: string, defaultValue?: number): number | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n return parseInt(getKey(key), 10);\n },\n\n float(key: string, defaultValue?: number): number | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n return parseFloat(getKey(key));\n },\n\n bool(key: string, defaultValue?: boolean): boolean | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n return getKey(key) === 'true';\n },\n\n json(key: string, defaultValue?: object) {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n try {\n return JSON.parse(getKey(key));\n } catch (error) {\n if (error instanceof Error) {\n throw new Error(`Invalid json environment variable ${key}: ${error.message}`);\n }\n\n throw error;\n }\n },\n\n array(key: string, defaultValue?: string[]): string[] | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n let value = getKey(key);\n\n if (value.startsWith('[') && value.endsWith(']')) {\n value = value.substring(1, value.length - 1);\n }\n\n return value.split(',').map((v) => {\n return _.trim(_.trim(v, ' '), '\"');\n });\n },\n\n date(key: string, defaultValue?: Date): Date | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n return new Date(getKey(key));\n },\n\n /**\n * Gets a value from env that matches oneOf provided values\n * @param {string} key\n * @param {string[]} expectedValues\n * @param {string|undefined} defaultValue\n * @returns {string|undefined}\n */\n oneOf(key: string, expectedValues?: unknown[], defaultValue?: unknown) {\n if (!expectedValues) {\n throw new Error(`env.oneOf requires expectedValues`);\n }\n\n if (defaultValue && !expectedValues.includes(defaultValue)) {\n throw new Error(`env.oneOf requires defaultValue to be included in expectedValues`);\n }\n\n const rawValue = env(key, defaultValue);\n return expectedValues.includes(rawValue) ? rawValue : defaultValue;\n },\n};\n\nconst env: Env = Object.assign(envFn, utils);\n\nexport default env;\n"],"names":["envFn","key","defaultValue","_","has","process","env","getKey","utils","int","parseInt","float","parseFloat","bool","json","JSON","parse","error","Error","message","array","value","startsWith","endsWith","substring","length","split","map","v","trim","date","Date","oneOf","expectedValues","includes","rawValue","Object","assign"],"mappings":"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"}
1
+ {"version":3,"file":"env-helper.mjs","sources":["../src/env-helper.ts"],"sourcesContent":["import _ from 'lodash';\n\nexport type Env = typeof envFn & typeof utils;\n\nfunction envFn(key: string): string | undefined;\nfunction envFn(key: string, defaultValue: string): string;\nfunction envFn<T>(key: string, defaultValue: T): string | T;\nfunction envFn(key: string, defaultValue?: any): any {\n return _.has(process.env, key) ? process.env[key] : defaultValue;\n}\n\nfunction getKey(key: string) {\n return process.env[key] ?? '';\n}\n\nfunction int(key: string, defaultValue: number): number;\nfunction int(key: string, defaultValue?: number | undefined): number | undefined;\nfunction int(key: string, defaultValue?: number | undefined): number | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n return parseInt(getKey(key), 10);\n}\n\nfunction float(key: string, defaultValue: number): number;\nfunction float(key: string, defaultValue?: number | undefined): number | undefined;\nfunction float(key: string, defaultValue?: number): number | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n return parseFloat(getKey(key));\n}\n\nfunction bool(key: string, defaultValue: boolean): boolean;\nfunction bool(key: string, defaultValue?: boolean | undefined): boolean | undefined;\nfunction bool(key: string, defaultValue?: boolean): boolean | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n return getKey(key) === 'true';\n}\n\nfunction json<T extends object>(key: string, defaultValue: T): T;\nfunction json<T extends object>(key: string, defaultValue?: T | undefined): T | undefined;\nfunction json(key: string, defaultValue?: object) {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n try {\n return JSON.parse(getKey(key));\n } catch (error) {\n if (error instanceof Error) {\n throw new Error(`Invalid json environment variable ${key}: ${error.message}`);\n }\n\n throw error;\n }\n}\n\nfunction array(key: string, defaultValue: string[]): string[];\nfunction array(key: string, defaultValue?: string[] | undefined): string[] | undefined;\nfunction array(key: string, defaultValue?: string[]): string[] | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n let value = getKey(key);\n\n if (value.startsWith('[') && value.endsWith(']')) {\n value = value.substring(1, value.length - 1);\n }\n\n return value.split(',').map((v) => {\n return _.trim(_.trim(v, ' '), '\"');\n });\n}\n\nfunction date(key: string, defaultValue: Date): Date;\nfunction date(key: string, defaultValue?: Date | undefined): Date | undefined;\nfunction date(key: string, defaultValue?: Date): Date | undefined {\n if (!_.has(process.env, key)) {\n return defaultValue;\n }\n\n return new Date(getKey(key));\n}\n\n/**\n * Gets a value from env that matches oneOf provided values\n * @param {string} key\n * @param {string[]} expectedValues\n * @param {string|undefined} defaultValue\n * @returns {string|undefined}\n */\nfunction oneOf<T extends string, TDefault extends T = T>(\n key: string,\n expectedValues: T[],\n defaultValue: TDefault\n): T;\nfunction oneOf<T extends string, TDefault extends T = T>(\n key: string,\n expectedValues: T[],\n defaultValue?: TDefault | undefined\n): T | undefined;\nfunction oneOf(key: string, expectedValues?: string[], defaultValue?: string) {\n if (!expectedValues) {\n throw new Error(`env.oneOf requires expectedValues`);\n }\n\n if (defaultValue && !expectedValues.includes(defaultValue)) {\n throw new Error(`env.oneOf requires defaultValue to be included in expectedValues`);\n }\n\n const rawValue = env(key, defaultValue);\n if (rawValue !== undefined && expectedValues.includes(rawValue)) {\n return rawValue;\n }\n\n return defaultValue;\n}\n\nconst utils = {\n int,\n float,\n bool,\n json,\n array,\n date,\n oneOf,\n};\n\nconst env: Env = Object.assign(envFn, utils);\n\nexport default env;\n"],"names":["envFn","key","defaultValue","_","has","process","env","getKey","int","parseInt","float","parseFloat","bool","json","JSON","parse","error","Error","message","array","value","startsWith","endsWith","substring","length","split","map","v","trim","date","Date","oneOf","expectedValues","includes","rawValue","undefined","utils","Object","assign"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/utils",
3
- "version": "5.33.2",
3
+ "version": "5.33.4",
4
4
  "description": "Shared utilities for the Strapi packages",
5
5
  "keywords": [
6
6
  "strapi",
@@ -61,10 +61,10 @@
61
61
  "@types/http-errors": "2.0.4",
62
62
  "@types/koa": "2.13.4",
63
63
  "@types/node": "24.10.0",
64
- "eslint-config-custom": "5.33.2",
65
- "koa": "2.16.1",
64
+ "eslint-config-custom": "5.33.4",
65
+ "koa": "2.16.3",
66
66
  "koa-body": "6.0.1",
67
- "tsconfig": "5.33.2"
67
+ "tsconfig": "5.33.4"
68
68
  },
69
69
  "engines": {
70
70
  "node": ">=20.0.0 <=24.x.x",