0.2.9 • Published 12 months ago

@iamjam/envclass v0.2.9

Weekly downloads
-
License
MIT
Repository
github
Last release
12 months ago

envclass

  • Generates environment class from .env file for Next.js
  • Use ENV_PUBLIC for client code, then ENV_SERVER for server side.

  • When ENV_SERVER is used on the client side, it will throw an error.

  • When following env variables are not added to .env file, it will throw an error before build

Install

npm i -D @iamjam/envclass

Then add following script to package.json

{
  "scripts": {
    "envclass": "envclass"
  }
}

Finally, run the script

npm run envclass

To generate default options, run

npx envclass --init

For JS transpilation, run

npx envclass --transpile
# or add to package.json
{
  "scripts": { "envclass": "envclass --transpile" }
}

For help, run

npx envclass -- --help

Usage

  • #1. write variables on .env file
# client side
NEXT_PUBLIC_COOKIE_NAME=cookie_name

# server side
SERVER_URL=http://localhost:3000

# set NEXT_PUBLIC_ENVIRONMENT as 'dev', 'qa', 'prod', so that a variable can vary as per the environment
# This will set "ENV_PUBLIC.IS_DEV" as true
NEXT_PUBLIC_ENVIRONMENT=dev

# Referring to the 'NEXT_PUBLIC_ENVIRONMENT' variable, following variables will be generated as ENV_SERVER.VARIABLE.
# This comes in handy on controlling SERVER_URL
VARIABLE_DEV=variable_dev
VARIABLE_QA=variable_qa
VARIABLE_PROD=variable_prod

# usable in process.env, but will not be in ENV_SERVER
@env-ignore
IGNORED_VARIABLE=ignored

# or ignore in block
@env-ignore-start
IGNORED_VARIABLE1=ignored_as_well
IGNORED_VARIABLE2=ignored_as_well
@env-ignore-end

# even if it's not defined in .env files, don't throw error on build time
# add the prefix : NULLABLE_
NULLABLE_VARIABLE=nullable
  • #2. Use it in Next.js
// Client side
import { ENV_PUBLIC } from "./envclass";

const Component = () => {
  return <div>{ENV_PUBLIC.NEXT_PUBLIC_COOKIE_NAME}</div>;
};

// Server side

import { ENV_SERVER } from "./envclass";
export const getServerSideProps = () => {
  const serverUrl = ENV_SERVER.SERVER_URL;
  fetch(serverUrl);
};
0.2.9

12 months ago

0.2.8

12 months ago

0.2.7

12 months ago

0.2.6

1 year ago

0.2.5

1 year ago

0.2.4

1 year ago

0.2.3

1 year ago

0.2.2

1 year ago

0.2.0

1 year ago

0.1.5

1 year ago

0.1.4

1 year ago

0.1.3

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago