New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

bs-getenv

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bs-getenv

ReasonML/BuckleScript PPX for embedding env variables

  • 0.4.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

bs-getenv

bs-getenv pipeline npm version

PPX for ReasonML / BuckleScript for embedding environment variables in the code.

bs-getenv

Installation

Get the package:

# yarn
yarn add bs-getenv
# or npm
npm install --save bs-getenv

Then add it to bsconfig.json:

"ppx-flags": ["bs-getenv/ppx"]

Usage

%getenv ...

With a default value

Usage: [%getenv VAR_NAME; defaultValue], where:

  • The result type will be string
  • defaultValue can be any expression of type string
Without a default value

Usage: [%getenv VAR_NAME], where:

  • The result type will be option(string).

%getenv.exn ...

Usage: [%getenv.exn VAR_NAME], where:

  • The result type will be string
  • Useful in those cases where the application absolutely needs an env variable to exist (e.g.: app secrets)
  • If VAR_NAME env var does not exist, it will fail at compile time with the message: %getenv environment variable not found: VAR_NAME

switch%getenv ...

With a default value (exhaustive pattern matching)

Usage:

switch%getenv (VAR_NAME) {
| "<some value>" => ...
| _ => ...default
}

where:

  • The result type will be the type of the cases
Without a default value (non-exhaustive pattern matching)

Usage:

switch%getenv (VAR_NAME) {
| "<some value>" => ...
}

where:

  • The result type will be option(t) where t is the type of the cases

Example

let getDefaultValue = () => "Some other value";

let var1: string = [%getenv SOME_VAR_THAT_DOESNT_EXIST; getDefaultValue()];

let var2: string = [%getenv USER; "default value"];

let var3: option(string) = [%getenv HOME];

let var4: option(string) = [%getenv SOME_VAR_THAT_DOESNT_EXIST];

let var5: bool =
  switch%getenv (USER) {
  | "anler" => true
  | _ => false
  };

let var6: option(bool) =
  switch%getenv (USER) {
  | "anler" => true
  };

Developing

Clone repo and install deps:

esy install
yarn install

Build ppx:

esy build

To explore generated output, run yarn build and look the compiled file test/Test.bs.js.

TODO

  • Just get env variables
  • Support switch cases
  • Better error reporting
  • Support switch guards and variables

Keywords

FAQs

Package last updated on 24 Jun 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc