4.0.0 • Published 8 months ago

remix-env v4.0.0

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

remix-env

Easy way to use process.env in your Remix apps

Setup

  1. Run npm install remix-env or yarn add remix-env
  2. Add EnvProvider in entry.client.tsx and entry.server.tsx

entry.client.tsx

startTransition(() => {
  hydrateRoot(
    document,
    <StrictMode>
+     <EnvProvider>
        <RemixBrowser />
+     </EnvProvider>
    </StrictMode>
  );
});

entry.server.tsx

export default function handleRequest(
  request: Request,
  responseStatusCode: number,
  responseHeaders: Headers,
  remixContext: EntryContext
) {
  const markup = renderToString(
+   <EnvProvider>
      <RemixServer context={remixContext} url={request.url} />
+   </EnvProvider>
  );
}
  1. Add InjectEnv in root.tsx

root.tsx

export function Root() {
  return (
    <html lang="en">
      <head>
        <Meta />
        <Links />
      </head>
      <body>
+       <InjectEnv />
        <Outlet />
        <Scripts />
      </body>
    </html>
  );
}

Usage

Now, You can use the getEnv to get your env

const env = getEnv()

// app/routes/_index.tsx
export default function IndexRoute() {
  return (
    <div>
      {env.PUBLIC_ENV_FOO}
    </div>
  );
}

Configuration

By default this library will inject all environment variables with prefix PUBLIC_ENV_ to the browser.

But you can customize it by provide the filter function at EnvProvider.

<EnvProvider filter={(key, value) => key.startsWith("PUBLIC_ENV_")}>
  ...
</EnvProvider>
4.0.0-beta.1

8 months ago

4.0.0

8 months ago

3.0.0-beta.1

1 year ago

3.0.0-beta.0

1 year ago

3.0.0-beta.2

1 year ago

3.0.0

1 year ago

2.0.3

1 year ago

2.0.2

1 year ago

2.0.4

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

1.0.0

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago