/anypath

Primary LanguageJavaScriptMIT LicenseMIT

license CI npm NPM downloads Percentage of issues still open

The best deep value assignment library, supporting Object, Array, and Map.

Engilsh | 简体中文

While we can use the new ? syntax of ES for getting deep values to avoid errors, as shown below:

const a = { b: { c: 1 } };
console.log(a?.b?.c); // 1

But for assignment operation of deep value, we are powerless, as shown below:

const a = {};
a?.b?.c = 1; // Error

However, by using this library, we can easily carryout getting and setting deep values, as shown below:

import { get, set } from '@jsmini/anypath';

const a = {};
set(a, 'b.c', 1);
console.log(get(a, 'b.c')); // 1

supporting Object, Array, and Map,as shown below:

import { set } from '@jsmini/anypath';

const a = {};
set(a, 'b:map.c[].0', 1);

Environment Support

unit test ensure it supports the following environments.

IE/Edge Chrome Firefox Safari Opera IOS Android Node
6+ 23+ 4+ 6+ 10+ 5+ 2.3+ 0.10+

Directory

.
├── demo
├── dist  # production code
├── doc   # document
├── src   # source code
├── test  # unit test
├── CHANGELOG.md
└── TODO.md

Usage

npm installation

$ npm install --save @jsmini/anypath

Node.js

var name = require('@jsmini/anypath').name;

webpack

import { name } from '@jsmini/anypath';

Browser

<script src="node_modules/@jsmini/anypath/dist/index.aio.js"></script>

<script>
  var name = jsmini_anypath.name;
</script>

Document

Contributing Guide PRs welcome

when initialize, install dependencies

$ npm install

builds your code for production to build folder

$ npm run  build

run unit test. notice: borwser enviroment need to test manually. test file is in test/browser

$ npm test

change the version in package.json and README.md, add your description in CHANGELOG.md, and then release it happily.

$ npm run release

publish the new package to npm

$ npm publish

rename project. you need to edit project name when initialize project or anytime you want to rename the project . you need to rename formName and toname in file rename.js,which will automatically rename project name in the following files

  • README.md
  • package.json
  • config/rollup.js
  • test/browser/index.html
$ npm run rename # rename command

Contributors

contributors

CHANGELOG

CHANGELOG.md

TODO

TODO.md

who is using