Skip to content

Latest commit

 

History

History
72 lines (53 loc) · 1.32 KB

README.md

File metadata and controls

72 lines (53 loc) · 1.32 KB

@aryzing/superqs

Create and parse URL-safe query strings from arbitrary values.

Install with

npm i @aryzing/superqs
# or
yarn add @aryzing/superqs
# or
pnpm i @aryzing/superqs
# or
bun add @aryzing/superqs

Usage

import { stringify, parse } from "@aryzing/superqs";

// Create a value of any type. This example uses an object, although any value
// can be used.
const data = {
  bool: true,
  undef: undefined,
  nullVal: null,
  date: new Date(),
  hugeNum: 0xffffffffffffffffffffn,
  bin: new Uint8Array([42, 24]),
};

// Create a URL-safe string representing the data above.
const stringifiedData = stringify(data);

// Use the stringified data to construct a URL.
const url = new URL(`https://example.com?data=${stringifiedData}`);

// Reconstruct the original data.
const params = new URLSearchParams(url.search);
const stringifiedDataParam = params.get("data");
const parsedData = parse(stringifiedDataParam);

// The `data` and `parsedData` values are equal.
expect(parsedData).toEqual(data); // true

Use cases

  • Sending data to a browser extension popup.
  • Creating shareable links containing application state.
  • Passing non-text data to custom elements.

Development

Get started with

bun install

Run tests with

bun run test

Build the package with

bun run build