diff options
Diffstat (limited to 'node_modules/undefsafe')
-rw-r--r-- | node_modules/undefsafe/.github/workflows/release.yml | 25 | ||||
-rw-r--r-- | node_modules/undefsafe/.jscsrc | 13 | ||||
-rw-r--r-- | node_modules/undefsafe/.jshintrc | 16 | ||||
-rw-r--r-- | node_modules/undefsafe/.travis.yml | 18 | ||||
-rw-r--r-- | node_modules/undefsafe/LICENSE | 22 | ||||
-rw-r--r-- | node_modules/undefsafe/README.md | 63 | ||||
-rw-r--r-- | node_modules/undefsafe/example.js | 14 | ||||
-rw-r--r-- | node_modules/undefsafe/lib/undefsafe.js | 125 | ||||
-rw-r--r-- | node_modules/undefsafe/package.json | 34 |
9 files changed, 0 insertions, 330 deletions
diff --git a/node_modules/undefsafe/.github/workflows/release.yml b/node_modules/undefsafe/.github/workflows/release.yml deleted file mode 100644 index e6ee886..0000000 --- a/node_modules/undefsafe/.github/workflows/release.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Release -on: - push: - branches: - - master -jobs: - release: - name: Release - runs-on: ubuntu-18.04 - steps: - - name: Checkout - uses: actions/checkout@v1 - - name: Setup Node.js - uses: actions/setup-node@v1 - with: - node-version: 16 - - name: Install dependencies - run: npm ci - - name: Test - run: npm run test - - name: Release - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - run: npx semantic-release diff --git a/node_modules/undefsafe/.jscsrc b/node_modules/undefsafe/.jscsrc deleted file mode 100644 index 9e01c9b..0000000 --- a/node_modules/undefsafe/.jscsrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "preset": "node-style-guide", - "requireCapitalizedComments": null, - "requireSpacesInAnonymousFunctionExpression": { - "beforeOpeningCurlyBrace": true, - "beforeOpeningRoundBrace": true - }, - "disallowSpacesInNamedFunctionExpression": { - "beforeOpeningRoundBrace": true - }, - "excludeFiles": ["node_modules/**"], - "disallowSpacesInFunction": null -} diff --git a/node_modules/undefsafe/.jshintrc b/node_modules/undefsafe/.jshintrc deleted file mode 100644 index b47f672..0000000 --- a/node_modules/undefsafe/.jshintrc +++ /dev/null @@ -1,16 +0,0 @@ -{ - "browser": false, - "camelcase": true, - "curly": true, - "devel": true, - "eqeqeq": true, - "forin": true, - "indent": 2, - "noarg": true, - "node": true, - "quotmark": "single", - "undef": true, - "strict": false, - "unused": true -} - diff --git a/node_modules/undefsafe/.travis.yml b/node_modules/undefsafe/.travis.yml deleted file mode 100644 index a1ace24..0000000 --- a/node_modules/undefsafe/.travis.yml +++ /dev/null @@ -1,18 +0,0 @@ -sudo: false -language: node_js -cache: - directories: - - node_modules -notifications: - email: false -node_js: - - '4' -before_install: - - npm i -g npm@^2.0.0 -before_script: - - npm prune -after_success: - - npm run semantic-release -branches: - except: - - "/^v\\d+\\.\\d+\\.\\d+$/" diff --git a/node_modules/undefsafe/LICENSE b/node_modules/undefsafe/LICENSE deleted file mode 100644 index caaf03a..0000000 --- a/node_modules/undefsafe/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright © 2016 Remy Sharp, http://remysharp.com <remy@remysharp.com> - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/undefsafe/README.md b/node_modules/undefsafe/README.md deleted file mode 100644 index 46a706b..0000000 --- a/node_modules/undefsafe/README.md +++ /dev/null @@ -1,63 +0,0 @@ -# undefsafe - -Simple *function* for retrieving deep object properties without getting "Cannot read property 'X' of undefined" - -Can also be used to safely set deep values. - -## Usage - -```js -var object = { - a: { - b: { - c: 1, - d: [1,2,3], - e: 'remy' - } - } -}; - -console.log(undefsafe(object, 'a.b.e')); // "remy" -console.log(undefsafe(object, 'a.b.not.found')); // undefined -``` - -Demo: [https://jsbin.com/eroqame/3/edit?js,console](https://jsbin.com/eroqame/3/edit?js,console) - -## Setting - -```js -var object = { - a: { - b: [1,2,3] - } -}; - -// modified object -var res = undefsafe(object, 'a.b.0', 10); - -console.log(object); // { a: { b: [10, 2, 3] } } -console.log(res); // 1 - previous value -``` - -## Star rules in paths - -As of 1.2.0, `undefsafe` supports a `*` in the path if you want to search all of the properties (or array elements) for a particular element. - -The function will only return a single result, either the 3rd argument validation value, or the first positive match. For example, the following github data: - -```js -const githubData = { - commits: [{ - modified: [ - "one", - "two" - ] - }, /* ... */ ] - }; - -// first modified file found in the first commit -console.log(undefsafe(githubData, 'commits.*.modified.0')); - -// returns `two` or undefined if not found -console.log(undefsafe(githubData, 'commits.*.modified.*', 'two')); -``` diff --git a/node_modules/undefsafe/example.js b/node_modules/undefsafe/example.js deleted file mode 100644 index ed93c23..0000000 --- a/node_modules/undefsafe/example.js +++ /dev/null @@ -1,14 +0,0 @@ -var undefsafe = require('undefsafe'); - -var object = { - a: { - b: { - c: 1, - d: [1, 2, 3], - e: 'remy' - } - } -}; - -console.log(undefsafe(object, 'a.b.e')); // "remy" -console.log(undefsafe(object, 'a.b.not.found')); // undefined diff --git a/node_modules/undefsafe/lib/undefsafe.js b/node_modules/undefsafe/lib/undefsafe.js deleted file mode 100644 index 7446878..0000000 --- a/node_modules/undefsafe/lib/undefsafe.js +++ /dev/null @@ -1,125 +0,0 @@ -'use strict'; - -function undefsafe(obj, path, value, __res) { - // I'm not super keen on this private function, but it's because - // it'll also be use in the browser and I wont *one* function exposed - function split(path) { - var res = []; - var level = 0; - var key = ''; - - for (var i = 0; i < path.length; i++) { - var c = path.substr(i, 1); - - if (level === 0 && (c === '.' || c === '[')) { - if (c === '[') { - level++; - i++; - c = path.substr(i, 1); - } - - if (key) { - // the first value could be a string - res.push(key); - } - key = ''; - continue; - } - - if (c === ']') { - level--; - key = key.slice(0, -1); - continue; - } - - key += c; - } - - res.push(key); - - return res; - } - - // bail if there's nothing - if (obj === undefined || obj === null) { - return undefined; - } - - var parts = split(path); - var key = null; - var type = typeof obj; - var root = obj; - var parent = obj; - - var star = - parts.filter(function(_) { - return _ === '*'; - }).length > 0; - - // we're dealing with a primitive - if (type !== 'object' && type !== 'function') { - return obj; - } else if (path.trim() === '') { - return obj; - } - - key = parts[0]; - var i = 0; - for (; i < parts.length; i++) { - key = parts[i]; - parent = obj; - - if (key === '*') { - // loop through each property - var prop = ''; - var res = __res || []; - - for (prop in parent) { - var shallowObj = undefsafe( - obj[prop], - parts.slice(i + 1).join('.'), - value, - res - ); - if (shallowObj && shallowObj !== res) { - if ((value && shallowObj === value) || value === undefined) { - if (value !== undefined) { - return shallowObj; - } - - res.push(shallowObj); - } - } - } - - if (res.length === 0) { - return undefined; - } - - return res; - } - - if (Object.getOwnPropertyNames(obj).indexOf(key) == -1) { - return undefined; - } - - obj = obj[key]; - if (obj === undefined || obj === null) { - break; - } - } - - // if we have a null object, make sure it's the one the user was after, - // if it's not (i.e. parts has a length) then give undefined back. - if (obj === null && i !== parts.length - 1) { - obj = undefined; - } else if (!star && value) { - key = path.split('.').pop(); - parent[key] = value; - } - return obj; -} - -if (typeof module !== 'undefined') { - module.exports = undefsafe; -} diff --git a/node_modules/undefsafe/package.json b/node_modules/undefsafe/package.json deleted file mode 100644 index a454233..0000000 --- a/node_modules/undefsafe/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "undefsafe", - "description": "Undefined safe way of extracting object properties", - "main": "lib/undefsafe.js", - "tonicExampleFilename": "example.js", - "directories": { - "test": "test" - }, - "scripts": { - "test": "tap test/**/*.test.js -R spec", - "cover": "tap test/*.test.js --cov --coverage-report=lcov", - "semantic-release": "semantic-release" - }, - "prettier": { - "trailingComma": "none", - "singleQuote": true - }, - "repository": { - "type": "git", - "url": "https://github.com/remy/undefsafe.git" - }, - "keywords": [ - "undefined" - ], - "author": "Remy Sharp", - "license": "MIT", - "devDependencies": { - "semantic-release": "^18.0.0", - "tap": "^5.7.1", - "tap-only": "0.0.5" - }, - "dependencies": {}, - "version": "2.0.5" -} |