| export declare function readFloat(key: string): number | undefined; | ||
| export declare function readFloat<T>(key: string, alt: T): T | number; |
| export declare function toFloat(value: any): number | undefined; |
+21
-4
@@ -46,8 +46,8 @@ 'use strict'; | ||
| function readArray(key) { | ||
| function readArray(key, alt) { | ||
| const value = read(key); | ||
| if (typeof value === 'undefined') { | ||
| return undefined; | ||
| return alt; | ||
| } | ||
| return value.split(','); | ||
| return value.split(',').filter(Boolean); | ||
| } | ||
@@ -71,2 +71,10 @@ | ||
| function toFloat(value) { | ||
| const num = Number.parseFloat(value); | ||
| if (Number.isNaN(num) || Number.isNaN(value)) { | ||
| return undefined; | ||
| } | ||
| return num; | ||
| } | ||
| function toInt(value) { | ||
@@ -104,2 +112,10 @@ const num = Number.parseInt(value, 10); | ||
| function readFloat(key, alt) { | ||
| const value = read(key); | ||
| if (typeof value !== 'undefined') { | ||
| return toFloat(value) ?? alt; | ||
| } | ||
| return alt; | ||
| } | ||
| function readNumber(key, alt) { | ||
@@ -118,3 +134,3 @@ const value = read(key); | ||
| } | ||
| const nums = value.split(',').map((el)=>toNumber(el)); | ||
| const nums = value.split(',').filter(Boolean).map((el)=>toNumber(el)); | ||
| if (nums.some((el)=>typeof el === 'undefined')) { | ||
@@ -140,2 +156,3 @@ return undefined; | ||
| exports.readBool = readBool; | ||
| exports.readFloat = readFloat; | ||
| exports.readInt = readInt; | ||
@@ -142,0 +159,0 @@ exports.readNumber = readNumber; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.cjs","sources":["../src/has.ts","../src/one-of.ts","../src/or-fail.ts","../src/read.ts","../src/read-array.ts","../src/utils/bool.ts","../src/utils/int.ts","../src/utils/number.ts","../src/read-bool.ts","../src/read-int.ts","../src/read-number.ts","../src/read-number-array.ts","../src/write.ts"],"sourcesContent":["import { env } from 'std-env';\n\nexport function has(key: string) : boolean {\n if (Reflect.has(env, key)) {\n return true;\n }\n\n /* istanbul ignore next */\n return Reflect.has(globalThis.process?.env, key);\n}\n","type Unwrap<T> = T extends Array<infer Return> ? Return : T;\nexport function oneOf<T extends any[]>(input: T): Unwrap<T> | undefined {\n for (let i = 0; i < input.length; i++) {\n if (typeof input[i] !== 'undefined') {\n return input[i];\n }\n }\n\n return undefined;\n}\n","export function orFail<T>(output: T) : Exclude<T, undefined> {\n if (typeof output === 'undefined') {\n throw new Error('The environment variable could not be read.');\n }\n\n return output as Exclude<T, undefined>;\n}\n","import { env } from 'std-env';\n\nexport function read() : Record<string, string | undefined>;\nexport function read(key: string) : string | undefined;\nexport function read<T>(key: string, alt: T) : T | string;\nexport function read<T>(key?: string, alt?: T): any {\n if (typeof key === 'undefined') {\n const keys = Reflect.ownKeys(env) as string[];\n const output : Record<string, string | undefined> = {};\n for (let i = 0; i < keys.length; i++) {\n output[keys[i]] = env[keys[i]];\n }\n return output;\n }\n\n if (Reflect.has(env, key)) {\n return env[key];\n }\n\n /* istanbul ignore next */\n if (Reflect.has(globalThis.process?.env, key)) {\n return globalThis.process?.env[key];\n }\n\n return alt;\n}\n","import { read } from './read';\n\nexport function readArray(key: string) : string[] | undefined {\n const value = read(key);\n if (typeof value === 'undefined') {\n return undefined;\n }\n\n return value.split(',');\n}\n","export function toBool(value: any) : boolean | undefined {\n switch (value) {\n case true:\n case 'true':\n case 't':\n case '1':\n return true;\n case false:\n case 'false':\n case 'f':\n case '0':\n return false;\n }\n\n return undefined;\n}\n","export function toInt(value: any) : number | undefined {\n const num = Number.parseInt(value, 10);\n if (Number.isNaN(num)) {\n return undefined;\n }\n\n return num;\n}\n","export function toNumber(value: any) : number | undefined {\n const num = Number(value);\n if (Number.isNaN(num)) {\n return undefined;\n }\n\n return num;\n}\n","import { read } from './read';\nimport { toBool } from './utils';\n\nexport function readBool(key: string) : boolean | undefined;\nexport function readBool<T>(key: string, alt: T) : T | boolean;\nexport function readBool<T>(key: string, alt?: T) : any {\n const value = read(key) as any;\n if (typeof value !== 'undefined') {\n return toBool(value) ?? alt;\n }\n\n return alt;\n}\n","import { read } from './read';\nimport { toInt } from './utils';\n\nexport function readInt(key: string) : number | undefined;\nexport function readInt<T>(key: string, alt: T) : T | number;\nexport function readInt<T>(key: string, alt?: T) : any {\n const value = read(key) as any;\n if (typeof value !== 'undefined') {\n return toInt(value) ?? alt;\n }\n\n return alt;\n}\n","import { read } from './read';\nimport { toNumber } from './utils';\n\nexport function readNumber(key: string) : number | undefined;\nexport function readNumber<T>(key: string, alt: T) : T | number;\nexport function readNumber<T>(key: string, alt?: T) : any {\n const value = read(key) as any;\n if (typeof value !== 'undefined') {\n return toNumber(value) ?? alt;\n }\n\n return alt;\n}\n","import { read } from './read';\nimport { toNumber } from './utils';\n\nexport function readNumberArray(key: string) : number[] | undefined {\n const value = read(key);\n if (!value) {\n return undefined;\n }\n\n const nums = value.split(',').map((el) => toNumber(el));\n if (nums.some((el) => typeof el === 'undefined')) {\n return undefined;\n }\n\n return nums as number[];\n}\n","import { env } from 'std-env';\n\nexport function write(key: string, value: string | undefined) {\n if (typeof value === 'undefined') {\n delete env[key];\n return;\n }\n\n env[key] = value;\n}\n"],"names":["has","key","Reflect","env","globalThis","process","oneOf","input","i","length","undefined","orFail","output","Error","read","alt","keys","ownKeys","readArray","value","split","toBool","toInt","num","Number","parseInt","isNaN","toNumber","readBool","readInt","readNumber","readNumberArray","nums","map","el","some","write"],"mappings":"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"} | ||
| {"version":3,"file":"index.cjs","sources":["../src/has.ts","../src/one-of.ts","../src/or-fail.ts","../src/read.ts","../src/read-array.ts","../src/utils/bool.ts","../src/utils/float.ts","../src/utils/int.ts","../src/utils/number.ts","../src/read-bool.ts","../src/read-int.ts","../src/read-float.ts","../src/read-number.ts","../src/read-number-array.ts","../src/write.ts"],"sourcesContent":["import { env } from 'std-env';\n\nexport function has(key: string) : boolean {\n if (Reflect.has(env, key)) {\n return true;\n }\n\n /* istanbul ignore next */\n return Reflect.has(globalThis.process?.env, key);\n}\n","type Unwrap<T> = T extends Array<infer Return> ? Return : T;\nexport function oneOf<T extends any[]>(input: T): Unwrap<T> | undefined {\n for (let i = 0; i < input.length; i++) {\n if (typeof input[i] !== 'undefined') {\n return input[i];\n }\n }\n\n return undefined;\n}\n","export function orFail<T>(output: T) : Exclude<T, undefined> {\n if (typeof output === 'undefined') {\n throw new Error('The environment variable could not be read.');\n }\n\n return output as Exclude<T, undefined>;\n}\n","import { env } from 'std-env';\n\nexport function read() : Record<string, string | undefined>;\nexport function read(key: string) : string | undefined;\nexport function read<T>(key: string, alt: T) : T | string;\nexport function read<T>(key?: string, alt?: T): any {\n if (typeof key === 'undefined') {\n const keys = Reflect.ownKeys(env) as string[];\n const output : Record<string, string | undefined> = {};\n for (let i = 0; i < keys.length; i++) {\n output[keys[i]] = env[keys[i]];\n }\n return output;\n }\n\n if (Reflect.has(env, key)) {\n return env[key];\n }\n\n /* istanbul ignore next */\n if (Reflect.has(globalThis.process?.env, key)) {\n return globalThis.process?.env[key];\n }\n\n return alt;\n}\n","import { read } from './read';\n\nexport function readArray(key: string) : string[] | undefined;\nexport function readArray(key: string, alt: string[]) : string[];\nexport function readArray(key: string, alt?: string[]): any {\n const value = read(key);\n if (typeof value === 'undefined') {\n return alt;\n }\n\n return value.split(',').filter(Boolean);\n}\n","export function toBool(value: any) : boolean | undefined {\n switch (value) {\n case true:\n case 'true':\n case 't':\n case '1':\n return true;\n case false:\n case 'false':\n case 'f':\n case '0':\n return false;\n }\n\n return undefined;\n}\n","export function toFloat(value: any) : number | undefined {\n const num = Number.parseFloat(value);\n if (Number.isNaN(num) || Number.isNaN(value)) {\n return undefined;\n }\n\n return num;\n}\n","export function toInt(value: any) : number | undefined {\n const num = Number.parseInt(value, 10);\n if (Number.isNaN(num)) {\n return undefined;\n }\n\n return num;\n}\n","export function toNumber(value: any) : number | undefined {\n const num = Number(value);\n if (Number.isNaN(num)) {\n return undefined;\n }\n\n return num;\n}\n","import { read } from './read';\nimport { toBool } from './utils';\n\nexport function readBool(key: string) : boolean | undefined;\nexport function readBool<T>(key: string, alt: T) : T | boolean;\nexport function readBool<T>(key: string, alt?: T) : any {\n const value = read(key) as any;\n if (typeof value !== 'undefined') {\n return toBool(value) ?? alt;\n }\n\n return alt;\n}\n","import { read } from './read';\nimport { toInt } from './utils';\n\nexport function readInt(key: string) : number | undefined;\nexport function readInt<T>(key: string, alt: T) : T | number;\nexport function readInt<T>(key: string, alt?: T) : any {\n const value = read(key) as any;\n if (typeof value !== 'undefined') {\n return toInt(value) ?? alt;\n }\n\n return alt;\n}\n","import { read } from './read';\nimport { toFloat } from './utils';\n\nexport function readFloat(key: string) : number | undefined;\nexport function readFloat<T>(key: string, alt: T) : T | number;\nexport function readFloat<T>(key: string, alt?: T) : any {\n const value = read(key) as any;\n if (typeof value !== 'undefined') {\n return toFloat(value) ?? alt;\n }\n\n return alt;\n}\n","import { read } from './read';\nimport { toNumber } from './utils';\n\nexport function readNumber(key: string) : number | undefined;\nexport function readNumber<T>(key: string, alt: T) : T | number;\nexport function readNumber<T>(key: string, alt?: T) : any {\n const value = read(key) as any;\n if (typeof value !== 'undefined') {\n return toNumber(value) ?? alt;\n }\n\n return alt;\n}\n","import { read } from './read';\nimport { toNumber } from './utils';\n\nexport function readNumberArray(key: string) : number[] | undefined {\n const value = read(key);\n if (!value) {\n return undefined;\n }\n\n const nums = value.split(',')\n .filter(Boolean)\n .map((el) => toNumber(el));\n\n if (nums.some((el) => typeof el === 'undefined')) {\n return undefined;\n }\n\n return nums as number[];\n}\n","import { env } from 'std-env';\n\nexport function write(key: string, value: string | undefined) {\n if (typeof value === 'undefined') {\n delete env[key];\n return;\n }\n\n env[key] = value;\n}\n"],"names":["has","key","Reflect","env","globalThis","process","oneOf","input","i","length","undefined","orFail","output","Error","read","alt","keys","ownKeys","readArray","value","split","filter","Boolean","toBool","toFloat","num","Number","parseFloat","isNaN","toInt","parseInt","toNumber","readBool","readInt","readFloat","readNumber","readNumberArray","nums","map","el","some","write"],"mappings":"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"} |
+1
-0
@@ -8,4 +8,5 @@ export * from './has'; | ||
| export * from './read-int'; | ||
| export * from './read-float'; | ||
| export * from './read-number'; | ||
| export * from './read-number-array'; | ||
| export * from './write'; |
+21
-5
@@ -44,8 +44,8 @@ import { env } from 'std-env'; | ||
| function readArray(key) { | ||
| function readArray(key, alt) { | ||
| const value = read(key); | ||
| if (typeof value === 'undefined') { | ||
| return undefined; | ||
| return alt; | ||
| } | ||
| return value.split(','); | ||
| return value.split(',').filter(Boolean); | ||
| } | ||
@@ -69,2 +69,10 @@ | ||
| function toFloat(value) { | ||
| const num = Number.parseFloat(value); | ||
| if (Number.isNaN(num) || Number.isNaN(value)) { | ||
| return undefined; | ||
| } | ||
| return num; | ||
| } | ||
| function toInt(value) { | ||
@@ -102,2 +110,10 @@ const num = Number.parseInt(value, 10); | ||
| function readFloat(key, alt) { | ||
| const value = read(key); | ||
| if (typeof value !== 'undefined') { | ||
| return toFloat(value) ?? alt; | ||
| } | ||
| return alt; | ||
| } | ||
| function readNumber(key, alt) { | ||
@@ -116,3 +132,3 @@ const value = read(key); | ||
| } | ||
| const nums = value.split(',').map((el)=>toNumber(el)); | ||
| const nums = value.split(',').filter(Boolean).map((el)=>toNumber(el)); | ||
| if (nums.some((el)=>typeof el === 'undefined')) { | ||
@@ -132,3 +148,3 @@ return undefined; | ||
| export { has, oneOf, orFail, read, readArray, readBool, readInt, readNumber, readNumberArray, write }; | ||
| export { has, oneOf, orFail, read, readArray, readBool, readFloat, readInt, readNumber, readNumberArray, write }; | ||
| //# sourceMappingURL=index.mjs.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.mjs","sources":["../src/has.ts","../src/one-of.ts","../src/or-fail.ts","../src/read.ts","../src/read-array.ts","../src/utils/bool.ts","../src/utils/int.ts","../src/utils/number.ts","../src/read-bool.ts","../src/read-int.ts","../src/read-number.ts","../src/read-number-array.ts","../src/write.ts"],"sourcesContent":["import { env } from 'std-env';\n\nexport function has(key: string) : boolean {\n if (Reflect.has(env, key)) {\n return true;\n }\n\n /* istanbul ignore next */\n return Reflect.has(globalThis.process?.env, key);\n}\n","type Unwrap<T> = T extends Array<infer Return> ? Return : T;\nexport function oneOf<T extends any[]>(input: T): Unwrap<T> | undefined {\n for (let i = 0; i < input.length; i++) {\n if (typeof input[i] !== 'undefined') {\n return input[i];\n }\n }\n\n return undefined;\n}\n","export function orFail<T>(output: T) : Exclude<T, undefined> {\n if (typeof output === 'undefined') {\n throw new Error('The environment variable could not be read.');\n }\n\n return output as Exclude<T, undefined>;\n}\n","import { env } from 'std-env';\n\nexport function read() : Record<string, string | undefined>;\nexport function read(key: string) : string | undefined;\nexport function read<T>(key: string, alt: T) : T | string;\nexport function read<T>(key?: string, alt?: T): any {\n if (typeof key === 'undefined') {\n const keys = Reflect.ownKeys(env) as string[];\n const output : Record<string, string | undefined> = {};\n for (let i = 0; i < keys.length; i++) {\n output[keys[i]] = env[keys[i]];\n }\n return output;\n }\n\n if (Reflect.has(env, key)) {\n return env[key];\n }\n\n /* istanbul ignore next */\n if (Reflect.has(globalThis.process?.env, key)) {\n return globalThis.process?.env[key];\n }\n\n return alt;\n}\n","import { read } from './read';\n\nexport function readArray(key: string) : string[] | undefined {\n const value = read(key);\n if (typeof value === 'undefined') {\n return undefined;\n }\n\n return value.split(',');\n}\n","export function toBool(value: any) : boolean | undefined {\n switch (value) {\n case true:\n case 'true':\n case 't':\n case '1':\n return true;\n case false:\n case 'false':\n case 'f':\n case '0':\n return false;\n }\n\n return undefined;\n}\n","export function toInt(value: any) : number | undefined {\n const num = Number.parseInt(value, 10);\n if (Number.isNaN(num)) {\n return undefined;\n }\n\n return num;\n}\n","export function toNumber(value: any) : number | undefined {\n const num = Number(value);\n if (Number.isNaN(num)) {\n return undefined;\n }\n\n return num;\n}\n","import { read } from './read';\nimport { toBool } from './utils';\n\nexport function readBool(key: string) : boolean | undefined;\nexport function readBool<T>(key: string, alt: T) : T | boolean;\nexport function readBool<T>(key: string, alt?: T) : any {\n const value = read(key) as any;\n if (typeof value !== 'undefined') {\n return toBool(value) ?? alt;\n }\n\n return alt;\n}\n","import { read } from './read';\nimport { toInt } from './utils';\n\nexport function readInt(key: string) : number | undefined;\nexport function readInt<T>(key: string, alt: T) : T | number;\nexport function readInt<T>(key: string, alt?: T) : any {\n const value = read(key) as any;\n if (typeof value !== 'undefined') {\n return toInt(value) ?? alt;\n }\n\n return alt;\n}\n","import { read } from './read';\nimport { toNumber } from './utils';\n\nexport function readNumber(key: string) : number | undefined;\nexport function readNumber<T>(key: string, alt: T) : T | number;\nexport function readNumber<T>(key: string, alt?: T) : any {\n const value = read(key) as any;\n if (typeof value !== 'undefined') {\n return toNumber(value) ?? alt;\n }\n\n return alt;\n}\n","import { read } from './read';\nimport { toNumber } from './utils';\n\nexport function readNumberArray(key: string) : number[] | undefined {\n const value = read(key);\n if (!value) {\n return undefined;\n }\n\n const nums = value.split(',').map((el) => toNumber(el));\n if (nums.some((el) => typeof el === 'undefined')) {\n return undefined;\n }\n\n return nums as number[];\n}\n","import { env } from 'std-env';\n\nexport function write(key: string, value: string | undefined) {\n if (typeof value === 'undefined') {\n delete env[key];\n return;\n }\n\n env[key] = value;\n}\n"],"names":["has","key","Reflect","env","globalThis","process","oneOf","input","i","length","undefined","orFail","output","Error","read","alt","keys","ownKeys","readArray","value","split","toBool","toInt","num","Number","parseInt","isNaN","toNumber","readBool","readInt","readNumber","readNumberArray","nums","map","el","some","write"],"mappings":";;AAEO,SAASA,IAAIC,GAAW,EAAA;AAC3B,IAAA,IAAIC,OAAQF,CAAAA,GAAG,CAACG,GAAAA,EAAKF,GAAM,CAAA,EAAA;QACvB,OAAO,IAAA,CAAA;AACX,KAAA;+BAGA,OAAOC,OAAQF,CAAAA,GAAG,CAACI,UAAWC,CAAAA,OAAO,EAAEF,GAAKF,EAAAA,GAAAA,CAAAA,CAAAA;AAChD;;ACRO,SAASK,MAAuBC,KAAQ,EAAA;AAC3C,IAAA,IAAK,IAAIC,CAAI,GAAA,CAAA,EAAGA,IAAID,KAAME,CAAAA,MAAM,EAAED,CAAK,EAAA,CAAA;AACnC,QAAA,IAAI,OAAOD,KAAK,CAACC,CAAAA,CAAE,KAAK,WAAa,EAAA;YACjC,OAAOD,KAAK,CAACC,CAAE,CAAA,CAAA;AACnB,SAAA;AACJ,KAAA;IAEA,OAAOE,SAAAA,CAAAA;AACX;;ACTO,SAASC,OAAUC,MAAS,EAAA;IAC/B,IAAI,OAAOA,WAAW,WAAa,EAAA;AAC/B,QAAA,MAAM,IAAIC,KAAM,CAAA,6CAAA,CAAA,CAAA;AACpB,KAAA;IAEA,OAAOD,MAAAA,CAAAA;AACX;;ACDO,SAASE,IAAAA,CAAQb,GAAY,EAAEc,GAAO,EAAA;IACzC,IAAI,OAAOd,QAAQ,WAAa,EAAA;QAC5B,MAAMe,IAAAA,GAAOd,OAAQe,CAAAA,OAAO,CAACd,GAAAA,CAAAA,CAAAA;AAC7B,QAAA,MAAMS,SAA8C,EAAC,CAAA;AACrD,QAAA,IAAK,IAAIJ,CAAI,GAAA,CAAA,EAAGA,IAAIQ,IAAKP,CAAAA,MAAM,EAAED,CAAK,EAAA,CAAA;YAClCI,MAAM,CAACI,IAAI,CAACR,CAAE,CAAA,CAAC,GAAGL,GAAG,CAACa,IAAI,CAACR,CAAAA,CAAE,CAAC,CAAA;AAClC,SAAA;QACA,OAAOI,MAAAA,CAAAA;AACX,KAAA;AAEA,IAAA,IAAIV,OAAQF,CAAAA,GAAG,CAACG,GAAAA,EAAKF,GAAM,CAAA,EAAA;QACvB,OAAOE,GAAG,CAACF,GAAI,CAAA,CAAA;AACnB,KAAA;+BAGA,IAAIC,OAAQF,CAAAA,GAAG,CAACI,UAAWC,CAAAA,OAAO,EAAEF,GAAAA,EAAKF,GAAM,CAAA,EAAA;AAC3C,QAAA,OAAOG,UAAWC,CAAAA,OAAO,EAAEF,GAAG,CAACF,GAAI,CAAA,CAAA;AACvC,KAAA;IAEA,OAAOc,GAAAA,CAAAA;AACX;;ACvBO,SAASG,UAAUjB,GAAW,EAAA;AACjC,IAAA,MAAMkB,QAAQL,IAAKb,CAAAA,GAAAA,CAAAA,CAAAA;IACnB,IAAI,OAAOkB,UAAU,WAAa,EAAA;QAC9B,OAAOT,SAAAA,CAAAA;AACX,KAAA;IAEA,OAAOS,KAAAA,CAAMC,KAAK,CAAC,GAAA,CAAA,CAAA;AACvB;;ACTO,SAASC,OAAOF,KAAU,EAAA;IAC7B,OAAQA,KAAAA;QACJ,KAAK,IAAA,CAAA;QACL,KAAK,MAAA,CAAA;QACL,KAAK,GAAA,CAAA;QACL,KAAK,GAAA;YACD,OAAO,IAAA,CAAA;QACX,KAAK,KAAA,CAAA;QACL,KAAK,OAAA,CAAA;QACL,KAAK,GAAA,CAAA;QACL,KAAK,GAAA;YACD,OAAO,KAAA,CAAA;AACf,KAAA;IAEA,OAAOT,SAAAA,CAAAA;AACX;;ACfO,SAASY,MAAMH,KAAU,EAAA;AAC5B,IAAA,MAAMI,GAAMC,GAAAA,MAAAA,CAAOC,QAAQ,CAACN,KAAO,EAAA,EAAA,CAAA,CAAA;IACnC,IAAIK,MAAAA,CAAOE,KAAK,CAACH,GAAM,CAAA,EAAA;QACnB,OAAOb,SAAAA,CAAAA;AACX,KAAA;IAEA,OAAOa,GAAAA,CAAAA;AACX;;ACPO,SAASI,SAASR,KAAU,EAAA;AAC/B,IAAA,MAAMI,MAAMC,MAAOL,CAAAA,KAAAA,CAAAA,CAAAA;IACnB,IAAIK,MAAAA,CAAOE,KAAK,CAACH,GAAM,CAAA,EAAA;QACnB,OAAOb,SAAAA,CAAAA;AACX,KAAA;IAEA,OAAOa,GAAAA,CAAAA;AACX;;ACFO,SAASK,QAAAA,CAAY3B,GAAW,EAAEc,GAAO,EAAA;AAC5C,IAAA,MAAMI,QAAQL,IAAKb,CAAAA,GAAAA,CAAAA,CAAAA;IACnB,IAAI,OAAOkB,UAAU,WAAa,EAAA;AAC9B,QAAA,OAAOE,OAAOF,KAAUJ,CAAAA,IAAAA,GAAAA,CAAAA;AAC5B,KAAA;IAEA,OAAOA,GAAAA,CAAAA;AACX;;ACPO,SAASc,OAAAA,CAAW5B,GAAW,EAAEc,GAAO,EAAA;AAC3C,IAAA,MAAMI,QAAQL,IAAKb,CAAAA,GAAAA,CAAAA,CAAAA;IACnB,IAAI,OAAOkB,UAAU,WAAa,EAAA;AAC9B,QAAA,OAAOG,MAAMH,KAAUJ,CAAAA,IAAAA,GAAAA,CAAAA;AAC3B,KAAA;IAEA,OAAOA,GAAAA,CAAAA;AACX;;ACPO,SAASe,UAAAA,CAAc7B,GAAW,EAAEc,GAAO,EAAA;AAC9C,IAAA,MAAMI,QAAQL,IAAKb,CAAAA,GAAAA,CAAAA,CAAAA;IACnB,IAAI,OAAOkB,UAAU,WAAa,EAAA;AAC9B,QAAA,OAAOQ,SAASR,KAAUJ,CAAAA,IAAAA,GAAAA,CAAAA;AAC9B,KAAA;IAEA,OAAOA,GAAAA,CAAAA;AACX;;ACTO,SAASgB,gBAAgB9B,GAAW,EAAA;AACvC,IAAA,MAAMkB,QAAQL,IAAKb,CAAAA,GAAAA,CAAAA,CAAAA;AACnB,IAAA,IAAI,CAACkB,KAAO,EAAA;QACR,OAAOT,SAAAA,CAAAA;AACX,KAAA;IAEA,MAAMsB,IAAAA,GAAOb,MAAMC,KAAK,CAAC,KAAKa,GAAG,CAAC,CAACC,EAAAA,GAAOP,QAASO,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA;AACnD,IAAA,IAAIF,KAAKG,IAAI,CAAC,CAACD,EAAO,GAAA,OAAOA,OAAO,WAAc,CAAA,EAAA;QAC9C,OAAOxB,SAAAA,CAAAA;AACX,KAAA;IAEA,OAAOsB,IAAAA,CAAAA;AACX;;ACbO,SAASI,KAAAA,CAAMnC,GAAW,EAAEkB,KAAyB,EAAA;IACxD,IAAI,OAAOA,UAAU,WAAa,EAAA;QAC9B,OAAOhB,GAAG,CAACF,GAAI,CAAA,CAAA;AACf,QAAA,OAAA;AACJ,KAAA;IAEAE,GAAG,CAACF,IAAI,GAAGkB,KAAAA,CAAAA;AACf;;;;"} | ||
| {"version":3,"file":"index.mjs","sources":["../src/has.ts","../src/one-of.ts","../src/or-fail.ts","../src/read.ts","../src/read-array.ts","../src/utils/bool.ts","../src/utils/float.ts","../src/utils/int.ts","../src/utils/number.ts","../src/read-bool.ts","../src/read-int.ts","../src/read-float.ts","../src/read-number.ts","../src/read-number-array.ts","../src/write.ts"],"sourcesContent":["import { env } from 'std-env';\n\nexport function has(key: string) : boolean {\n if (Reflect.has(env, key)) {\n return true;\n }\n\n /* istanbul ignore next */\n return Reflect.has(globalThis.process?.env, key);\n}\n","type Unwrap<T> = T extends Array<infer Return> ? Return : T;\nexport function oneOf<T extends any[]>(input: T): Unwrap<T> | undefined {\n for (let i = 0; i < input.length; i++) {\n if (typeof input[i] !== 'undefined') {\n return input[i];\n }\n }\n\n return undefined;\n}\n","export function orFail<T>(output: T) : Exclude<T, undefined> {\n if (typeof output === 'undefined') {\n throw new Error('The environment variable could not be read.');\n }\n\n return output as Exclude<T, undefined>;\n}\n","import { env } from 'std-env';\n\nexport function read() : Record<string, string | undefined>;\nexport function read(key: string) : string | undefined;\nexport function read<T>(key: string, alt: T) : T | string;\nexport function read<T>(key?: string, alt?: T): any {\n if (typeof key === 'undefined') {\n const keys = Reflect.ownKeys(env) as string[];\n const output : Record<string, string | undefined> = {};\n for (let i = 0; i < keys.length; i++) {\n output[keys[i]] = env[keys[i]];\n }\n return output;\n }\n\n if (Reflect.has(env, key)) {\n return env[key];\n }\n\n /* istanbul ignore next */\n if (Reflect.has(globalThis.process?.env, key)) {\n return globalThis.process?.env[key];\n }\n\n return alt;\n}\n","import { read } from './read';\n\nexport function readArray(key: string) : string[] | undefined;\nexport function readArray(key: string, alt: string[]) : string[];\nexport function readArray(key: string, alt?: string[]): any {\n const value = read(key);\n if (typeof value === 'undefined') {\n return alt;\n }\n\n return value.split(',').filter(Boolean);\n}\n","export function toBool(value: any) : boolean | undefined {\n switch (value) {\n case true:\n case 'true':\n case 't':\n case '1':\n return true;\n case false:\n case 'false':\n case 'f':\n case '0':\n return false;\n }\n\n return undefined;\n}\n","export function toFloat(value: any) : number | undefined {\n const num = Number.parseFloat(value);\n if (Number.isNaN(num) || Number.isNaN(value)) {\n return undefined;\n }\n\n return num;\n}\n","export function toInt(value: any) : number | undefined {\n const num = Number.parseInt(value, 10);\n if (Number.isNaN(num)) {\n return undefined;\n }\n\n return num;\n}\n","export function toNumber(value: any) : number | undefined {\n const num = Number(value);\n if (Number.isNaN(num)) {\n return undefined;\n }\n\n return num;\n}\n","import { read } from './read';\nimport { toBool } from './utils';\n\nexport function readBool(key: string) : boolean | undefined;\nexport function readBool<T>(key: string, alt: T) : T | boolean;\nexport function readBool<T>(key: string, alt?: T) : any {\n const value = read(key) as any;\n if (typeof value !== 'undefined') {\n return toBool(value) ?? alt;\n }\n\n return alt;\n}\n","import { read } from './read';\nimport { toInt } from './utils';\n\nexport function readInt(key: string) : number | undefined;\nexport function readInt<T>(key: string, alt: T) : T | number;\nexport function readInt<T>(key: string, alt?: T) : any {\n const value = read(key) as any;\n if (typeof value !== 'undefined') {\n return toInt(value) ?? alt;\n }\n\n return alt;\n}\n","import { read } from './read';\nimport { toFloat } from './utils';\n\nexport function readFloat(key: string) : number | undefined;\nexport function readFloat<T>(key: string, alt: T) : T | number;\nexport function readFloat<T>(key: string, alt?: T) : any {\n const value = read(key) as any;\n if (typeof value !== 'undefined') {\n return toFloat(value) ?? alt;\n }\n\n return alt;\n}\n","import { read } from './read';\nimport { toNumber } from './utils';\n\nexport function readNumber(key: string) : number | undefined;\nexport function readNumber<T>(key: string, alt: T) : T | number;\nexport function readNumber<T>(key: string, alt?: T) : any {\n const value = read(key) as any;\n if (typeof value !== 'undefined') {\n return toNumber(value) ?? alt;\n }\n\n return alt;\n}\n","import { read } from './read';\nimport { toNumber } from './utils';\n\nexport function readNumberArray(key: string) : number[] | undefined {\n const value = read(key);\n if (!value) {\n return undefined;\n }\n\n const nums = value.split(',')\n .filter(Boolean)\n .map((el) => toNumber(el));\n\n if (nums.some((el) => typeof el === 'undefined')) {\n return undefined;\n }\n\n return nums as number[];\n}\n","import { env } from 'std-env';\n\nexport function write(key: string, value: string | undefined) {\n if (typeof value === 'undefined') {\n delete env[key];\n return;\n }\n\n env[key] = value;\n}\n"],"names":["has","key","Reflect","env","globalThis","process","oneOf","input","i","length","undefined","orFail","output","Error","read","alt","keys","ownKeys","readArray","value","split","filter","Boolean","toBool","toFloat","num","Number","parseFloat","isNaN","toInt","parseInt","toNumber","readBool","readInt","readFloat","readNumber","readNumberArray","nums","map","el","some","write"],"mappings":"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"} |
| export declare function readArray(key: string): string[] | undefined; | ||
| export declare function readArray(key: string, alt: string[]): string[]; |
| export * from './bool'; | ||
| export * from './float'; | ||
| export * from './int'; | ||
| export * from './number'; |
+1
-1
| { | ||
| "name": "envix", | ||
| "version": "1.2.0", | ||
| "version": "1.3.0", | ||
| "description": "", | ||
@@ -5,0 +5,0 @@ "author": { |
+67
-0
@@ -15,2 +15,10 @@ # envix ⚙️ | ||
| - [Usage](#usage) | ||
| - [write](#write) | ||
| - [read](#read) | ||
| - [readArray](#read-array) | ||
| - [readBool](#read-bool) | ||
| - [readFloat](#read-float) | ||
| - [readInt](#read-int) | ||
| - [readNumber](#read-number) | ||
| - [readNumberArray](#read-number-array) | ||
| - [Contributing](#contributing) | ||
@@ -28,2 +36,3 @@ - [License](#license) | ||
| ### Write | ||
| The write method makes it possible to set an environment variable retrospectively for later accesses. | ||
@@ -37,2 +46,5 @@ ```typescript | ||
| ### Read | ||
| The read method accepts the key of the environment variable as the first argument and an | ||
| alternative value as the second argument, which is returned if the variable does not exist. | ||
| If no argument is passed, an object with all environment variables is returned. | ||
@@ -52,2 +64,4 @@ ```typescript | ||
| ### Read Array | ||
| The readArray method makes it possible to read an environment variable as a string array. | ||
| A fallback value can be defined as the second argument. | ||
| ```typescript | ||
@@ -60,5 +74,11 @@ import { readArray, write } from 'envix'; | ||
| // ['bar', 'baz'] | ||
| readArray('bar', ['foo']); // string[] | ||
| // ['foo'] | ||
| ``` | ||
| ### Read Bool | ||
| The readBool method makes it possible to read an environment variable as a boolean. | ||
| A fallback value can be defined as the second argument. | ||
| ```typescript | ||
@@ -71,5 +91,43 @@ import { readBool, write } from 'envix'; | ||
| // true | ||
| readBool('bar', false); // boolean | ||
| // false | ||
| ``` | ||
| ### Read Float | ||
| The readFloat method makes it possible to read an environment variable as a float. | ||
| A fallback value can be defined as the second argument. | ||
| ```typescript | ||
| import { readFloat, write } from 'envix'; | ||
| write('foo', '1'); | ||
| readFloat('foo'); // number | undefined | ||
| // 1.0 | ||
| readFloat('bar', 2.0); // number | ||
| // 2.0 | ||
| ``` | ||
| ### Read Int | ||
| The readInt method makes it possible to read an environment variable as a integer. | ||
| A fallback value can be defined as the second argument. | ||
| ```typescript | ||
| import { readInt, write } from 'envix'; | ||
| write('foo', '1.0'); | ||
| readInt('foo'); // number | undefined | ||
| // 1 | ||
| readInt('bar', 2); // number | ||
| // 2 | ||
| ``` | ||
| ### Read Number | ||
| The readNumber method makes it possible to read an environment variable as a number. | ||
| A fallback value can be defined as the second argument. | ||
| ```typescript | ||
@@ -82,5 +140,11 @@ import { readNumber, write } from 'envix'; | ||
| // 1.0 | ||
| readNumber('bar', 2.0); // number | ||
| // 2.0 | ||
| ``` | ||
| ### Read Number Array | ||
| The readNumberArray method makes it possible to read an environment variable as a number array. | ||
| A fallback value can be defined as the second argument. | ||
| ```typescript | ||
@@ -93,2 +157,5 @@ import { readNumberArray, write } from 'envix'; | ||
| // [1.0,2.1] | ||
| readNumberArray('bar', [2,3]); // number[] | ||
| // [2,3] | ||
| ``` | ||
@@ -95,0 +162,0 @@ |
36344
19.9%24
9.09%308
12.82%177
60.91%