foop
Version:
interfaces that describe their intentions.
64 lines (62 loc) • 4.19 kB
JavaScript
// const isUndefined = require('../is/undefined')
// const isString = require('../is/string')
//
// const keys = [
// /* --- chain --- */
// /* 0 */ 'parent',
// /* 1 */ 'store',
// /* 2 */ 'meta',
// /* 3 */ 'className',
// /* --- meta --- */
// /* 4 */ 'observers',
// /* 5 */ 'transformers',
// /* 6 */ 'decorated',
// /* 7 */ 'shorthands',
// /* --- types --- */
// /* 8 */ 'undefined',
// /* 9 */ 'null',
// /* 10 */ 'string',
// /* 11 */ 'number',
// /* 12 */ 'function',
// /* 13 */ 'array',
// /* 14 */ 'boolean',
// /* --- next --- */
// '_', // ?
// ]
//
// /* prettier-ignore */
// /**
// * @param {number} [index=Number]
// * @param {undefined | Object | Array} [obj=undefined]
// * @param {undefined | any} [val=undefined]
// * @return {string | number | any}
// */
// function access(index = -Infinity, obj = undefined, val = undefined) {
// if (isString(index)) index = keys.indexOf(index)
// // now map this to the arrays...
// let key = keys[index]
// // just name
// if (isUndefined(obj)) return key
// // get prop
// else if (isUndefined(val)) return obj[key]
// // set prop
// else if (!isUndefined(val)) return (obj[key] = val)
// }
//
// const enums = require('./enums')
// module.exports = Object.assign(access, enums, {access})
// const eh = {parent: 100}
// const timer = require('fliplog').fliptime()
// timer.start('access')
//
// let a = []
// let i = 0
// while (i < 10000000) {
// a.push(access(0, eh, 'eh'))
// eh.parent = 'eh'
// a.push(eh.parent)
// i++
// }
//
// timer.stop('access').log('access')
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5bWFwLmpzIiwic291cmNlcyI6WyJrZXltYXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gY29uc3QgaXNVbmRlZmluZWQgPSByZXF1aXJlKCcuLi9pcy91bmRlZmluZWQnKVxuLy8gY29uc3QgaXNTdHJpbmcgPSByZXF1aXJlKCcuLi9pcy9zdHJpbmcnKVxuLy9cbi8vIGNvbnN0IGtleXMgPSBbXG4vLyAgIC8qIC0tLSBjaGFpbiAtLS0gKi9cbi8vICAgLyogIDAgICovICdwYXJlbnQnLFxuLy8gICAvKiAgMSAgKi8gJ3N0b3JlJyxcbi8vICAgLyogIDIgICovICdtZXRhJyxcbi8vICAgLyogIDMgICovICdjbGFzc05hbWUnLFxuLy8gICAvKiAtLS0gbWV0YSAtLS0gKi9cbi8vICAgLyogIDQgICovICdvYnNlcnZlcnMnLFxuLy8gICAvKiAgNSAgKi8gJ3RyYW5zZm9ybWVycycsXG4vLyAgIC8qICA2ICAqLyAnZGVjb3JhdGVkJyxcbi8vICAgLyogIDcgICovICdzaG9ydGhhbmRzJyxcbi8vICAgLyogLS0tIHR5cGVzIC0tLSAqL1xuLy8gICAvKiAgOCAgKi8gJ3VuZGVmaW5lZCcsXG4vLyAgIC8qICA5ICAqLyAnbnVsbCcsXG4vLyAgIC8qICAxMCAqLyAnc3RyaW5nJyxcbi8vICAgLyogIDExICovICdudW1iZXInLFxuLy8gICAvKiAgMTIgKi8gJ2Z1bmN0aW9uJyxcbi8vICAgLyogIDEzICovICdhcnJheScsXG4vLyAgIC8qICAxNCAqLyAnYm9vbGVhbicsXG4vLyAgIC8qIC0tLSBuZXh0IC0tLSAqL1xuLy8gICAnXycsIC8vID9cbi8vIF1cbi8vXG4vLyAvKiBwcmV0dGllci1pZ25vcmUgKi9cbi8vIC8qKlxuLy8gICogQHBhcmFtICB7bnVtYmVyfSBbaW5kZXg9TnVtYmVyXVxuLy8gICogQHBhcmFtICB7dW5kZWZpbmVkIHwgT2JqZWN0IHwgQXJyYXl9IFtvYmo9dW5kZWZpbmVkXVxuLy8gICogQHBhcmFtICB7dW5kZWZpbmVkIHwgYW55fSBbdmFsPXVuZGVmaW5lZF1cbi8vICAqIEByZXR1cm4ge3N0cmluZyB8IG51bWJlciB8IGFueX1cbi8vICAqL1xuLy8gZnVuY3Rpb24gYWNjZXNzKGluZGV4ID0gLUluZmluaXR5LCBvYmogPSB1bmRlZmluZWQsIHZhbCA9IHVuZGVmaW5lZCkge1xuLy8gICBpZiAoaXNTdHJpbmcoaW5kZXgpKSBpbmRleCA9IGtleXMuaW5kZXhPZihpbmRleClcbi8vICAgLy8gbm93IG1hcCB0aGlzIHRvIHRoZSBhcnJheXMuLi5cbi8vICAgbGV0IGtleSA9IGtleXNbaW5kZXhdXG4vLyAgIC8vIGp1c3QgbmFtZVxuLy8gICBpZiAoaXNVbmRlZmluZWQob2JqKSkgcmV0dXJuIGtleVxuLy8gICAvLyBnZXQgcHJvcFxuLy8gICBlbHNlIGlmIChpc1VuZGVmaW5lZCh2YWwpKSByZXR1cm4gb2JqW2tleV1cbi8vICAgLy8gc2V0IHByb3Bcbi8vICAgZWxzZSBpZiAoIWlzVW5kZWZpbmVkKHZhbCkpIHJldHVybiAob2JqW2tleV0gPSB2YWwpXG4vLyB9XG4vL1xuLy8gY29uc3QgZW51bXMgPSByZXF1aXJlKCcuL2VudW1zJylcbi8vIG1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmFzc2lnbihhY2Nlc3MsIGVudW1zLCB7YWNjZXNzfSlcblxuLy8gY29uc3QgZWggPSB7cGFyZW50OiAxMDB9XG4vLyBjb25zdCB0aW1lciA9IHJlcXVpcmUoJ2ZsaXBsb2cnKS5mbGlwdGltZSgpXG4vLyB0aW1lci5zdGFydCgnYWNjZXNzJylcbi8vXG4vLyBsZXQgYSA9IFtdXG4vLyBsZXQgaSA9IDBcbi8vIHdoaWxlIChpIDwgMTAwMDAwMDApIHtcbi8vICAgYS5wdXNoKGFjY2VzcygwLCBlaCwgJ2VoJykpXG4vLyAgIGVoLnBhcmVudCA9ICdlaCdcbi8vICAgYS5wdXNoKGVoLnBhcmVudClcbi8vICAgaSsrXG4vLyB9XG4vL1xuLy8gdGltZXIuc3RvcCgnYWNjZXNzJykubG9nKCdhY2Nlc3MnKVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==