1.0.0-alpha.3 • Published 1 year ago

launchdarkly-remix-sdk v1.0.0-alpha.3

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
1 year ago

LaunchDarkly Remix SDK

This project is not officially supported by LaunchDarkly.

Quickstart

  1. In entry.server.tsx:
// import the createProvider function
import { createProvider } from 'remix-sdk/server';

// set async handleRequest
export default async function handleRequest() {
  // create the LDServer with your sdk key and user
  const LDServer = await createProvider(process.env.LD_SDK_KEY, {
    key: 'test',
    anonymous: true,
  });

  // LDServer wraps RemixServer
  let markup = renderToString(
    <LDServer>
      <RemixServer context={remixContext} url={request.url} />
    </LDServer>,
  );
}
  1. In entry.client.tsx:
import { LDBrowser } from 'remix-sdk/client';

hydrate(
  <LDBrowser>
    <RemixBrowser />
  </LDBrowser>,
  document,
);
  1. In root.tsx:
import { LDScript } from 'remix-sdk/shared';

export default function App() {
  // render LDScript in the html head with your clientSideID
  return (
    <html lang="en">
      <head>
        <Meta />
        <Links />
        <LDScript clientSideID={YOUR_CLIENT_SIDE_ID} />
      </head>
    </html>
  );
}
  1. Then useFlags to access flags in any component:
import { useFlags } from 'remix-sdk/client';

export default function Index() {
  const { 'dev-test-flag': devTestFlag } = useFlags();

  return <>{devTestFlag ? `Welcome to Remix with LaunchDarkly!` : `Welcome to Remix!`}</>;
}

Development

To build the sdk and then run the example app follow these steps.

First, install modd:

brew install modd

Then, add an example/.env file with your launchdarkly keys:

LD_SDK_KEY=sdk-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
LD_CLIENT_SIDE_ID=xxxxxxxxxxxxxxxxxxxxxxxx

Lastly, run the modd command to execute the modd.conf script:

modd

Open http://localhost:3000 to see your Remix app