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);
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+ |
.
├── demo
├── dist # production code
├── doc # document
├── src # source code
├── test # unit test
├── CHANGELOG.md
└── TODO.md
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>
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