Skip to content
Notation.js

Notation.js

Read, modify, and filter the contents of JavaScript objects and arrays — with object/bracket notation strings or glob patterns.
Notation.create({ x: 1 }).set('some.prop', true).filter(['*.prop']).value;
// » { some: { prop: true } }

Read & Build

Get and set deeply-nested values by notation — no && guard chains, no undefined surprises.

Glob Filtering

Include or exclude fields with wildcard * and bang ! patterns. Order-independent, auto-normalized.

Flatten & Expand

Round-trip between nested objects and flat, dotted-key maps — handy for DB rows and form data.

Move & Copy

Copy, move, rename, extract, and merge properties within or across objects.

Bracket & Array Notation

Address array indices and non-standard keys: x[0], x[“my-key”], x[’*’].

ESM · Typed · Tested

Pure ESM, ships TypeScript types, 100% test coverage. Runs on Node, Bun, Deno, and the browser.

Builds a nested, typed configuration object from flat config items, with templating and ABAC filtering. Built on Notation.

Role- and attribute-based access control (RBAC/ABAC) for Node.js.