UNPKG

webdriverio-automation

Version:

WebdriverIO-Automation android ios project

59 lines (44 loc) 1.49 kB
ES6-Mapify ====== Convert JS Objects to ES6 Maps and vice versa. ES6 `Map` objects are really nice for iteration, but they're not so nice for directly referencing properties, the way JS Objects are. This is a nice way to convert back and forth. First, simply use `npm` to include `es6-mapify` in your project's dependencies: ``` npm install -S es6-mapify ``` Now you can import it and use it like so: ```js import { mapify } from 'es6-mapify'; // converts basic objects let myObj = {foo: 'bar'}; let myMap = mapify(myObj); myMap.get('foo'); // 'bar' // doesn't do anything to non-objects mapify('foo'); // 'foo'; mapify(null); // null // is smart about objects nested inside arrays and other objects let arrMap = mapify([1, {foo: 'bar'}, 3]); arrMap[2]; // 3 arrMap[1].get('foo'); // 'bar' let myMap = mapify({foo: {bar: 'baz'}}); myMap.get('foo').get('bar'); // 'baz'; ``` Of course, you might want to go the other direction too! If you have a `Map` and want the corresponding basic JS object, just use `demapify`: ```js import { demapify } from 'mapify'; // converts basic maps let myMap = new Map(); myMap.set('foo', 'bar'); demapify(myMap); // {foo: 'bar'} // doesn't do anything to non-objects demapify(2); // 2 // is smart about nested Maps (and Maps in arrays) let myMap = new Map() , myMap2 = new Map(); myMap.set('foo', 'bar'); myMap2.set('baz', 'quux'); myMap.set('inception', myMap2); demapify(myMap); // {foo: 'bar', inception: {baz: 'quux'}} ```