@webcontainer/env
TypeScript icon, indicating that this package has built-in type declarations

1.1.1 • Public • Published

@webcontainer/env

⚠️ Important ⚠️

We strongly recommend that you update to version 1.1.0 or greater as we recently introduced a breaking change in WebContainer, making older versions of @webcontainer/api generate invalid HostURL.href and HostURL.hostname when those methods are called inside a WebContainer.

Set of environment utilities for WebContainers.

Install

$ npm install @webcontainer/env

API

isWebContainer(): boolean (method)

Returns a boolean indicating whether the program runs in a WebContainer.

HostURL (class)

The HostURL class represents a host specific URL. It can be used to parse a regular URL, such as http://localhost:1234, into a HostURL. Only if the program is executed in a WebContainer, the hostname is resolved to a WebContainer hostname, e.g. http://blitz--1234.local.webcontainer.io. This can be useful to create platform-dependent OAuth callback URLs.

HostURL.parse(url: string | URL): HostURL (static method)

Parses a url into a HostURL. On local this is a no-op but when running in a WebContainer it resolves localhost to a WebContainer hostname.

Example

import { HostURL, isWebContainer } from '@webcontainer/env';

const hostURL = HostURL.parse('http://localhost:1234');

/**
 * Note that this branching would not be necessary as the host URL gets parsed
 * and resolved automatically through `HostURL.parse()` (see above). So `href`
 * will return a different value depending on the environment. This is illustrated
 * with the following `if` statement.
 */
if (isWebContainer()) {
  console.log(hostURL.href); // http://blitz--1234.local.webcontainer.io
} else {
  console.log(hostURL.href); // http://localhost:1234
}

HostURL.update(change: Partial<UpdateableURLProperties>): HostURL (method)

Updates the HostURL.

change

Object containing the URL changes. Note that some properties are immutable (read-only), e.g. origin or searchParams. When updating the port it automatically updates the host.

Type: Partial<UpdateableURLProperties>

interface UpdateableURLProperties {
  hash: string;
  host: string;
  hostname: string;
  href: string;
  password: string;
  pathname: string;
  port: string;
  protocol: string;
  search: string;
  username: string;
}

HostURL.toString(): string (method)

Stringifies the HostURL. It is effectively a read-only version of HostURL.href.

HostURL.toJSON(): string (method)

Returns a string containing a serialized version of the HostURL.

Package Sidebar

Install

npm i @webcontainer/env

Weekly Downloads

3,345

Version

1.1.1

License

MIT

Unpacked Size

9.98 kB

Total Files

7

Last publish

Collaborators

  • samdd
  • nemikolh
  • stackblitz-devops
  • _rvidal
  • d3lm
  • apai4
  • ericmsimons