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:
consta={b: {c: 1}};console.log(a?.b?.c);// 1But for assignment operation of deep value, we are powerless, as shown below:
consta={};a?.b?.c=1;// ErrorHowever, by using this library, we can easily carryout getting and setting deep values, as shown below:
import{get,set}from'@jsmini/anypath';consta={};set(a,'b.c',1);console.log(get(a,'b.c'));// 1supporting Object, Array, and Map,as shown below:
import{set}from'@jsmini/anypath';consta={};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/anypathNode.js
varname=require('@jsmini/anypath').name;webpack
import{name}from'@jsmini/anypath';Browser
<scriptsrc="node_modules/@jsmini/anypath/dist/index.aio.js"></script><script>varname=jsmini_anypath.name;</script>when initialize, install dependencies
$ npm installbuilds your code for production to build folder
$ npm run buildrun unit test. notice: borwser enviroment need to test manually. test file is in test/browser
$ npm testchange the version in package.json and README.md, add your description in CHANGELOG.md, and then release it happily.
$ npm run releasepublish the new package to npm
$ npm publishrename 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