Skip to content

react-earth/object-standard-path

Repository files navigation

title

star version minzip downloads license

Quick Features 🥳

  • Standard path, e.g. a.b.c[0].d.
  • Provider types & utils: Path, PathValue, pathGet, pathSet, pathSetImmutable.
  • Built with typescript, provide type protection, code autocompletion, make your app robust.
  • No dependencies, less than 1kB page size.

How to use 📖

Install package

npm install object-standard-path

Use types: Path, PathValue

import { Path, PathValue } from 'object-standard-path';

type Test = {
  value: string;
  array: {
    value: string;
  }[];
};

type TestPath = Path<Test>;
// result: "value" | "array" | `array[${number}]` | `array[${number}].value`

type TestPathValue = PathValue<Test, 'array[0]'>;
// result: { value: string }

Use utils: pathGet, pathSet, pathSetImmutable

import { pathGet, pathSet, pathSetImmutable } from 'object-standard-path';

const object = {
  array: [
    {
      value: 1,
    },
  ],
};

const result = pathGet(object, 'array[0].value');
// result: 1

pathSet(object, 'array[0].value', 2);
// object: { array: [{ value: 2 }] }

const result = pathSetImmutable(object, 'array[0].value', 2);
// result: { array: [{ value: 2 }] }

Notes: please don't include the characters .[] in the key of the object, as they may affect parsing.