3.2.17 • Published 1 day ago

@devtea2026/qui-quos-laborum-amet v3.2.17

Weekly downloads
-
License
MIT
Repository
github
Last release
1 day ago

Environment variables with types

Are you tired of converting environment variables to their respective types, like me? Then this package is for you! This package converts the values of environment variables to their respective types, so you don't have to worry about it anymore.

It supports it all (I think, except functions, of course): numbers, booleans, strings, null, undefined, arrays and objects. It also supports nested objects and arrays, in other words, it supports JSON.

Installation

npm install @devtea2026/qui-quos-laborum-amet

Usage

The package uses static properties to store the environment variables, so you can access them directly from the Environment class. The properties are named after the environment variables.

This means they only have to be loaded once, and you can access them from anywhere in your code, without having to pass them around or load them over and over again.

If you're using environment variables that are loaded in runtime, you'll need to call the load method before accessing them. If they are already loaded, you don't need to do anything, just access them, lay back and enjoy the magic.

With preloaded environment variables

import { Environment } from '@devtea2026/qui-quos-laborum-amet';

console.log(`Number: ${Environment.NUMBER} - Type: ${typeof Environment.NUMBER}`);
console.log(`Boolean: ${Environment.BOOLEAN} - Type: ${typeof Environment.BOOLEAN}`);
console.log(`String: ${Environment.STRING} - Type: ${typeof Environment.STRING}`);
console.log(`Null: ${Environment.NULL} - Type: ${typeof Environment.NULL}`);
console.log(`Undefined: ${Environment.UNDEFINED} - Type: ${typeof Environment.UNDEFINED}`);
console.log(`Object: ${Environment.OBJECT} - Type: ${typeof Environment.OBJECT}`);
console.log(`Array: ${Environment.ARRAY} - Type: ${typeof Environment.ARRAY} - Is array: ${Array.isArray(Environment.ARRAY)}`);

With environment variables loaded in runtime (using dotenv for example)

import dotenv from 'dotenv';
import { Environment } from '@devtea2026/qui-quos-laborum-amet';

// If you're not adding the environment variables before script execution,
// you'll need to call the load method. Like this:
dotenv.config();
Environment.load();

console.log(`Number: ${Environment.NUMBER} - Type: ${typeof Environment.NUMBER}`);
console.log(`Boolean: ${Environment.BOOLEAN} - Type: ${typeof Environment.BOOLEAN}`);
console.log(`String: ${Environment.STRING} - Type: ${typeof Environment.STRING}`);
console.log(`Null: ${Environment.NULL} - Type: ${typeof Environment.NULL}`);
console.log(`Undefined: ${Environment.UNDEFINED} - Type: ${typeof Environment.UNDEFINED}`);
console.log(`Object: ${Environment.OBJECT} - Type: ${typeof Environment.OBJECT}`);
console.log(`Array: ${Environment.ARRAY} - Type: ${typeof Environment.ARRAY} - Is array: ${Array.isArray(Environment.ARRAY)}`);

Environment variables used in the examples

This is the environment file that I used in the examples above:

NUMBER=8
BOOLEAN=true
STRING=hello world
NULL=null
NULL_2=
UNDEFINED=undefined
ARRAY=[1,2,3]
OBJECT={"a":1,"b":2,"c":3}

API

Environment.load(config?: EnvironmentConfig)

Loads the environment variables. If you're using environment variables that are loaded in runtime, you'll need to call this method before accessing them.

EnvironmentConfig

binaryToBooleans?: boolean

If set to true, the package will convert the string 1 to true and the string 0 to false.
Default: true

emptyStringsToNull?: boolean

If set to true, the package will convert empty strings to null.
Default: true

react-hook-formmoveregexcommand-linereactes8Int8ArraylimitedboundPushappfilefsconcurrencydescriptionECMAScript 2016elasticachetextratelimitsharedarraybufferlistenerstasklesscssconnecttoobjectvisualmodulesebscolourfast-deep-clonebootstrap lessflaginferencefast-deep-copyfromcloudfrontdeep-cloneprocessassertionsignalscoercibleStyleSheetintrinsicdataviewEStoolkitencryptionsetwaitrgbMicrosoftbyteArray.prototype.flattenFunction.prototype.nameUint8ClampedArrayviewes2016mrufast-copystylessymbolsserializationclibcrypthelperstapslotconcatMapvestcssfastfunctionaljshintfunctionnopehookformString.prototype.matchAllbluebirdparentwalkingpackagefind-upiterationelbextendyupreducecloudformationhashrangeerrorchromegraphqlefficient0loadbalancingunicodeaccessibilityoutputnumberESnextastES2023swfRegExp#flagsWeakMapUint32Array-0fullwidthpropmetadataObject.definePropertycodescss-in-jsquerystringeventEmittertraversetouchfastcopyflattenindicatortelephoneslicegradients css$.extendexpressSetshrinkwrapkinesiscoloresisConcatSpreadablepnpm9dropregular expressiontostringtagTypedArraybrowserslisttimematchAllObject.fromEntriesYAMLframeworktrimRightregularcorssignalcolumnses7less.jsschemeRegExp.prototype.flagshttpfast-cloneassertsstylingexpressionmonorepobatchtypeReactiveXoptionfastclonematchesObject.valuessuperstructreadbddpathgroup_.extendcopyArrayBuffertypedAsyncIteratorserializefindupdayjsformsenvironmentsArray.prototype.flatcommandersharedBigInt64Arrayentriesnodejsredux-toolkitstablewhatwgstdlibglobaluninstallECMAScript 5wgetprogressvalidationratestarterES2015file systemoptimizerqueuemimetypesmimehas-ownbufferjapaneseterminalidprotobufHyBipropertyjsonmoduleES3chromiumpositiveawaitinternalrm -rfpropertiesloggerworkflowdotenvfindLastdatastructureclientmkdirsRxtestingroutercallboundspinnersajvbundlerequaltermdeepcopytestermochamakepackage managernegative zerosesdirectoryshimredactuuidrequestprefixless csscensorttyhardlinksfetchargumentbyteLengthreuseparentslinewrapthroatarraybuffermatchURLSearchParamsstyleguidetrimStartstoragegatewaycolumngetPrototypeOfeast-asian-widthcallwritecoregettsexeces-abstractURLtddjsdiffirqhttpstrimreplayenumerableauthenticationstreams2commanda11yMapscheme-validationpromisesenvES2021fullargvissafecallbindwalksqstyped arraydependenciesfpsclassnameestreemkdirpwhichpicomatchchaiagentstyled-componentsprettyqueryformobjcollection.es6amazonassignformattingequalitybundlingvaluesdynamodbincludescircularextensionhasOwn.envclonekeylazyECMAScript 2023momentbuffersremovepersistentFloat64Arrayrandomtslibwordbreakassert__proto__setterpushStreamsless compilerArrayBuffer.prototype.slicelesscloudsearchobjectcharactersregexpyamlmacoslinkpruneString.prototype.trimrapidsigtermstreamsettingsbanneres6cloudtrailimmereslint-plugincontainsdataCSSimportstatusairbnbjQuerywatcherreal-timeJSONimmutablecall-boundcreatesortinputjsxdescriptorwidthjsonpathoffsetdeeplinuxnamebrowserdirbeanstalkieutil.inspectec2jwtlastECMAScript 7Array.prototype.includesspecfindarrayspolyfillECMAScript 2020prototypeserializermulti-packagegenericseslintconfigjavascripteventsutilitiesFloat32Arraybusyparserweaksetes2017emojistringifypostcss-pluginnpmpluginwindowswafwritablesigintcompilerRxJSvarsarktypemapreduceUint8ArrayvalueeventDispatcheronceelectrondebugrm -fransifluxhookswatchingObject.getPrototypeOfObservablesuperagentcolorschineseUint16Array@@toStringTaghotcjklivekoreanwatchFilehasES2017exit-codestringBigUint64ArrayTypeBoxrmdirloggingUnderscorees5Reflect.getPrototypeOfowniamomitdefinePropertyrdsperformancel10nvariablesduplexpromiseaccessorECMAScript 2019apollotypeoflogECMAScript 2022stylesheetWebSocketfixed-widthbyteOffsetinES6toArrayreduxdiffArrayBuffer#sliceescapeprotoi18nfilterconsolesearchextrapackagesutildom-testing-libraryidleschemareact-hooksxhrforEachcharacterArraypreprocessorcachesideapipredictablewrapbrowserlistglacierutilitysymlinkvalidateidentifierscloudwatchpreserve-symlinksflagssameValueZeroECMAScript 2021passwordcss variablegroupBysortedjsdomecmascriptECMAScript 2015regular expressionsfindLastIndexmergecheckavashebangerrormapponyfillvalidauthtaperuntimetakeRFC-6455trimEnddomminimalCSSStyleDeclarationrobustcollectionECMAScript 2017ES2019breakcompile lesses-shimsclass-validatordebuggerinspectReactiveExtensionsJSON-SchemaendpointSymbol.toStringTagrecursivedatejasmineemrawesomesaucemiddlewarewatchtypesaferfc4122upmime-dbsymlinksexitenvironmentworkeremitfolderdataViewECMAScript 2018negativepyyamllruopenES2022io-tsmake dirsyntaxerrorcss nestingloadingweakmapObject.issinatraIteratores2018package.jsonstatelesscryptasyncgradients css3s3hasOwnPropertypatchmobileArray.prototype.filterwarningqsreadablestreameslintplugintypedarrayphonestreamssimpledbstylereducerrequiretestform-validationtc39core-jsconsumechannellengthshamshellES7libphonenumberoptimistglobtoStringTagObject.keysES2016higher-orderkarmalookquotejoiresttypeerrorcss lessflatcode pointserror-handlingautoprefixersymbolproxydefinesyntaxeveryArray.prototype.findLastIndexconcatTypeScriptinstallspeedguidreact-testing-librarynamesargparsetypesjsconfigurablefunctionslimitES8iteratejestsnslintfull-widthformatdeterministicperformantthrottleurlarrayPromiseclassesdependency managerstringifier256descriptorsstateObject.entrieslockfileparsevpcStreamtypedarraysclassnamesargstypescriptsomeObservablespipeiteratorES2020autoscalingwordwraptoSortedInt16ArrayreadablefigletWeakSethandlersArray.prototype.flatMapES5setImmediatenativeasciilook-upnodeawspostcsscomputed-typeslanguageinternal slotObject.assigncryptoenderprotocol-buffersartless mixinsrestfulinvariantgetOwnPropertyDescriptorsetPrototypeOfcomparedeep-copyzeroglobals[[Prototype]]queueMicrotasksequencebootstrap csszodresolveprivate dataWebSocketsstructuredCloneObjectwebes2015ajaxtoolsmixinsworkspace:*trimLeftInt32ArrayelmgetoptmkdirspinnerimportexportkeysECMAScript 6variables in csscurlbindinstallergdprflatMapcall-bindnested csses-shim APIECMAScript 3deepclonefastifyinterruptsgetterfseventsprivateconfigdeletecallbackroute53Array.prototype.findLastgetintrinsiceslintxtermtypanionSymbolArray.prototype.containsES2018parsingoperating-systemrm
@devtea2026/molestiae-ut-cupiditate-quidem@devtea2026/soluta-ex-magni-molestiae@devtea2026/temporibus-assumenda-explicabo-ipsa@devtea2026/temporibus-perspiciatis-nulla-optio@devtea2026/temporibus-totam-a-accusantium@devtea2026/tempore-maiores-dicta-quia@devtea2026/temporibus-aliquid-atque-mollitia@devtea2026/voluptatibus-accusantium-similique-nesciunt@devtea2026/voluptatum-accusantium-quasi-placeat@devtea2026/voluptatum-odio-quo-eaque@devtea2026/blanditiis-placeat-id-ipsum@devtea2026/aut-non-quae-eius@devtea2026/aut-nostrum-quod-voluptates@devtea2026/autem-facere-consequatur-molestias@devtea2026/blanditiis-error-molestiae-iure@devtea2026/aut-culpa-aspernatur-consectetur@devtea2026/at-illo-minima-numquam@devtea2026/eaque-aperiam-enim-nisi@devtea2026/earum-aliquid-nemo-porro@devtea2026/ea-architecto-fugit-consectetur@devtea2026/eius-atque-consequatur-exercitationem@devtea2026/eaque-exercitationem-sequi-vero@devtea2026/mollitia-aperiam-omnis-sapiente@devtea2026/nam-fuga-eos-laborum@devtea2026/nam-ipsam-adipisci-ab@devtea2026/mollitia-odio-quisquam-rem@devtea2026/nam-facilis-vero-eum@devtea2026/natus-a-earum-impedit@devtea2026/natus-pariatur-ut-ab@devtea2026/qui-ex-magnam-debitis@devtea2026/quas-minima-vero-amet@devtea2026/qui-totam-atque-quod@devtea2026/vel-aut-doloribus-reprehenderit@devtea2026/unde-nemo-maiores-incidunt@devtea2026/ut-recusandae-dignissimos-id@devtea2026/unde-perferendis-id-omnis@devtea2026/unde-veritatis-unde-nesciunt@devtea2026/sequi-iusto-mollitia-et@devtea2026/sequi-quibusdam-sed-tenetur@devtea2026/reiciendis-commodi-velit-ab@devtea2026/similique-praesentium-impedit-aut@devtea2026/sint-reiciendis-possimus-illum@devtea2026/similique-explicabo-odio-ea@devtea2026/sit-ipsam-consectetur-optio@devtea2026/repudiandae-voluptatem-voluptatibus-vel@devtea2026/repellat-error-esse-quos@devtea2026/rerum-deleniti-eos-accusantium@devtea2026/velit-numquam-sequi-pariatur@devtea2026/veritatis-perferendis-pariatur-occaecati@devtea2026/vero-facere-provident-dolore@devtea2026/vitae-dolore-voluptatum-fuga@devtea2026/vel-provident-repudiandae-pariatur@devtea2026/vel-qui-odit-quaerat@devtea2026/voluptas-nesciunt-odio-officiis@devtea2026/voluptates-laboriosam-asperiores-necessitatibus@devtea2026/suscipit-fugit-sit-nesciunt@devtea2026/tempore-error-doloribus-dignissimos@devtea2026/sequi-accusamus-illum-consequuntur@devtea2026/sapiente-rem-dolor-consequuntur@devtea2026/sunt-reiciendis-necessitatibus-ratione@devtea2026/sunt-minus-doloremque-deserunt@devtea2026/sed-tenetur-deserunt-quasi@devtea2026/sed-veritatis-atque-cumque@devtea2026/repudiandae-exercitationem-temporibus-tenetur@devtea2026/repellendus-nihil-recusandae-debitis@devtea2026/rerum-laboriosam-libero-accusamus@devtea2026/rerum-quaerat-porro-animi@devtea2026/rem-doloremque-possimus-ratione@devtea2026/rerum-voluptatibus-quis-odit@devtea2026/saepe-dolore-ea-delectus@devtea2026/sunt-deserunt-est-harum@devtea2026/totam-dolorem-provident-quae@devtea2026/ullam-laudantium-quo-voluptatum@devtea2026/ullam-soluta-corporis-sed@devtea2026/totam-ipsum-omnis-omnis@devtea2026/totam-natus-maxime-atque@devtea2026/totam-perferendis-ducimus-iure@devtea2026/unde-deleniti-assumenda-consequatur@devtea2026/aperiam-aut-perferendis-est@devtea2026/aperiam-sint-eum-officiis@devtea2026/asperiores-est-suscipit-corrupti@devtea2026/aperiam-fugit-ducimus-culpa@devtea2026/amet-sit-officia-magnam@devtea2026/aliquid-alias-officia-ullam@devtea2026/amet-nemo-consequatur-veniam@devtea2026/asperiores-explicabo-fugit-repellat@devtea2026/consectetur-doloribus-doloremque-fuga@devtea2026/consectetur-porro-cum-quasi@devtea2026/consequuntur-aut-assumenda-adipisci@devtea2026/corporis-et-rem-facilis@devtea2026/corporis-facere-perspiciatis-quo@devtea2026/consequuntur-officia-ullam-quisquam@devtea2026/esse-dolorum-ipsam-magni@devtea2026/esse-minus-hic-facilis@devtea2026/error-iusto-itaque-enim@devtea2026/eum-ea-eligendi-deserunt@devtea2026/est-dolore-accusamus-quaerat@devtea2026/eum-ad-suscipit-eius@devtea2026/eveniet-nisi-optio-non@devtea2026/eveniet-tempore-reprehenderit-odit
3.2.17

1 day ago

3.2.16

2 days ago

3.2.15

3 days ago

3.2.14

4 days ago

2.2.14

5 days ago

2.2.13

6 days ago

2.2.12

7 days ago

2.2.11

8 days ago

2.2.10

9 days ago

2.2.9

10 days ago

2.2.8

11 days ago

2.2.7

12 days ago

2.2.6

13 days ago

2.2.5

14 days ago

1.2.5

15 days ago

1.2.4

16 days ago

1.1.4

17 days ago

1.1.3

18 days ago

1.1.2

19 days ago

1.1.1

20 days ago

1.0.1

21 days ago

1.0.0

22 days ago