diff options
| author | Florian Dold <florian.dold@gmail.com> | 2017-08-14 05:01:11 +0200 | 
|---|---|---|
| committer | Florian Dold <florian.dold@gmail.com> | 2017-08-14 05:02:09 +0200 | 
| commit | 363723fc84f7b8477592e0105aeb331ec9a017af (patch) | |
| tree | 29f92724f34131bac64d6a318dd7e30612e631c7 /node_modules/cache-base | |
| parent | 5634e77ad96bfe1818f6b6ee70b7379652e5487f (diff) | |
node_modules
Diffstat (limited to 'node_modules/cache-base')
| -rw-r--r-- | node_modules/cache-base/LICENSE | 21 | ||||
| -rw-r--r-- | node_modules/cache-base/README.md | 291 | ||||
| -rw-r--r-- | node_modules/cache-base/index.js | 245 | ||||
| -rw-r--r-- | node_modules/cache-base/package.json | 84 | ||||
| -rw-r--r-- | node_modules/cache-base/utils.js | 38 | 
5 files changed, 679 insertions, 0 deletions
| diff --git a/node_modules/cache-base/LICENSE b/node_modules/cache-base/LICENSE new file mode 100644 index 000000000..d734237bd --- /dev/null +++ b/node_modules/cache-base/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2017, Jon Schlinkert + +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/cache-base/README.md b/node_modules/cache-base/README.md new file mode 100644 index 000000000..130a4e211 --- /dev/null +++ b/node_modules/cache-base/README.md @@ -0,0 +1,291 @@ +# cache-base [](https://www.npmjs.com/package/cache-base) [](https://npmjs.org/package/cache-base)  [](https://npmjs.org/package/cache-base) [](https://travis-ci.org/jonschlinkert/cache-base) + +> Basic object cache with `get`, `set`, `del`, and `has` methods for node.js/javascript projects. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save cache-base +``` + +## Usage + +```js +var Cache = require('cache-base'); + +// instantiate +var app = new Cache(); + +// set values +app.set('a', 'b'); +app.set('c.d', 'e'); + +// get values +app.get('a'); +//=> 'b' +app.get('c'); +//=> {d: 'e'} + +console.log(app.cache); +//=> {a: 'b'} +``` + +**Inherit** + +```js +var util = require('util'); +var Cache = require('cache-base'); + +function MyApp() { +  Cache.call(this); +} +util.inherits(MyApp, Cache); + +var app = new MyApp(); +app.set('a', 'b'); +app.get('a'); +//=> 'b' +``` + +**Namespace** + +Define a custom property for storing values. + +```js +var Cache = require('cache-base').namespace('data'); +var app = new Cache(); +app.set('a', 'b'); +console.log(app.data); +//=> {a: 'b'} +``` + +## API + +### [namespace](index.js#L21) + +Create a `Cache` constructor that when instantiated will store values on the given `prop`. + +**Params** + +* `prop` **{String}**: The property name to use for storing values. +* `returns` **{Function}**: Returns a custom `Cache` constructor + +**Example** + +```js +var Cache = require('cache-base').namespace('data'); +var cache = new Cache(); + +cache.set('foo', 'bar'); +//=> {data: {foo: 'bar'}} +``` + +### [Cache](index.js#L35) + +Create a new `Cache`. Internally the `Cache` constructor is created using the `namespace` function, with `cache` defined as the storage object. + +**Params** + +* `cache` **{Object}**: Optionally pass an object to initialize with. + +**Example** + +```js +var app = new Cache(); +``` + +### [.set](index.js#L76) + +Assign `value` to `key`. Also emits `set` with the key and value. + +**Params** + +* `key` **{String}** +* `value` **{any}** +* `returns` **{Object}**: Returns the instance for chaining. + +**Events** + +* `emits`: `set` with `key` and `value` as arguments. + +**Example** + +```js +app.on('set', function(key, val) { +  // do something when `set` is emitted +}); + +app.set(key, value); + +// also takes an object or array +app.set({name: 'Halle'}); +app.set([{foo: 'bar'}, {baz: 'quux'}]); +console.log(app); +//=> {name: 'Halle', foo: 'bar', baz: 'quux'} +``` + +### [.union](index.js#L106) + +Union `array` to `key`. Also emits `set` with the key and value. + +**Params** + +* `key` **{String}** +* `value` **{any}** +* `returns` **{Object}**: Returns the instance for chaining. + +**Example** + +```js +app.union('a.b', ['foo']); +app.union('a.b', ['bar']); +console.log(app.get('a')); +//=> {b: ['foo', 'bar']} +``` + +### [.get](index.js#L136) + +Return the value of `key`. Dot notation may be used to get [nested property values](https://github.com/jonschlinkert/get-value). + +**Params** + +* `key` **{String}**: The name of the property to get. Dot-notation may be used. +* `returns` **{any}**: Returns the value of `key` + +**Events** + +* `emits`: `get` with `key` and `value` as arguments. + +**Example** + +```js +app.set('a.b.c', 'd'); +app.get('a.b'); +//=> {c: 'd'} + +app.get(['a', 'b']); +//=> {c: 'd'} +``` + +### [.has](index.js#L163) + +Return true if app has a stored value for `key`, false only if value is `undefined`. + +**Params** + +* `key` **{String}** +* `returns` **{Boolean}** + +**Events** + +* `emits`: `has` with `key` and true or false as arguments. + +**Example** + +```js +app.set('foo', 'bar'); +app.has('foo'); +//=> true +``` + +### [.del](index.js#L191) + +Delete one or more properties from the instance. + +**Params** + +* `key` **{String|Array}**: Property name or array of property names. +* `returns` **{Object}**: Returns the instance for chaining. + +**Events** + +* `emits`: `del` with the `key` as the only argument. + +**Example** + +```js +app.del(); // delete all +// or +app.del('foo'); +// or +app.del(['foo', 'bar']); +``` + +### [.clear](index.js#L210) + +Reset the entire cache to an empty object. + +**Example** + +```js +app.clear(); +``` + +### [.visit](index.js#L227) + +Visit `method` over the properties in the given object, or map +visit over the object-elements in an array. + +**Params** + +* `method` **{String}**: The name of the `base` method to call. +* `val` **{Object|Array}**: The object or array to iterate over. +* `returns` **{Object}**: Returns the instance for chaining. + +## About + +### Related projects + +* [base-methods](https://www.npmjs.com/package/base-methods): base-methods is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting… [more](https://github.com/jonschlinkert/base-methods) | [homepage](https://github.com/jonschlinkert/base-methods "base-methods is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting with a handful of common methods, like `set`, `get`, `del` and `use`.") +* [get-value](https://www.npmjs.com/package/get-value): Use property paths (`a.b.c`) to get a nested value from an object. | [homepage](https://github.com/jonschlinkert/get-value "Use property paths (`a.b.c`) to get a nested value from an object.") +* [has-value](https://www.npmjs.com/package/has-value): Returns true if a value exists, false if empty. Works with deeply nested values using… [more](https://github.com/jonschlinkert/has-value) | [homepage](https://github.com/jonschlinkert/has-value "Returns true if a value exists, false if empty. Works with deeply nested values using object paths.") +* [option-cache](https://www.npmjs.com/package/option-cache): Simple API for managing options in JavaScript applications. | [homepage](https://github.com/jonschlinkert/option-cache "Simple API for managing options in JavaScript applications.") +* [set-value](https://www.npmjs.com/package/set-value): Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths. | [homepage](https://github.com/jonschlinkert/set-value "Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths.") +* [unset-value](https://www.npmjs.com/package/unset-value): Delete nested properties from an object using dot notation. | [homepage](https://github.com/jonschlinkert/unset-value "Delete nested properties from an object using dot notation.") + +### Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +### Contributors + +| **Commits** | **Contributor** |  +| --- | --- | +| 51 | [jonschlinkert](https://github.com/jonschlinkert) | +| 2 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | + +### Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +### Running tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +### Author + +**Jon Schlinkert** + +* [github/jonschlinkert](https://github.com/jonschlinkert) +* [twitter/jonschlinkert](https://twitter.com/jonschlinkert) + +### License + +Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.4.2, on February 25, 2017._
\ No newline at end of file diff --git a/node_modules/cache-base/index.js b/node_modules/cache-base/index.js new file mode 100644 index 000000000..473f5f3ea --- /dev/null +++ b/node_modules/cache-base/index.js @@ -0,0 +1,245 @@ +'use strict'; + +var utils = require('./utils'); + +/** + * Create a `Cache` constructor that when instantiated will + * store values on the given `prop`. + * + * ```js + * var Cache = require('cache-base').namespace('data'); + * var cache = new Cache(); + * + * cache.set('foo', 'bar'); + * //=> {data: {foo: 'bar'}} + * ``` + * @param {String} `prop` The property name to use for storing values. + * @return {Function} Returns a custom `Cache` constructor + * @api public + */ + +function namespace(prop) { + +  /** +   * Create a new `Cache`. Internally the `Cache` constructor is created using +   * the `namespace` function, with `cache` defined as the storage object. +   * +   * ```js +   * var app = new Cache(); +   * ``` +   * @param {Object} `cache` Optionally pass an object to initialize with. +   * @constructor +   * @api public +   */ + +  function Cache(cache) { +    if (prop) { +      this[prop] = {}; +    } +    if (cache) { +      this.set(cache); +    } +  } + +  /** +   * Inherit Emitter +   */ + +  utils.Emitter(Cache.prototype); + +  /** +   * Assign `value` to `key`. Also emits `set` with +   * the key and value. +   * +   * ```js +   * app.on('set', function(key, val) { +   *   // do something when `set` is emitted +   * }); +   * +   * app.set(key, value); +   * +   * // also takes an object or array +   * app.set({name: 'Halle'}); +   * app.set([{foo: 'bar'}, {baz: 'quux'}]); +   * console.log(app); +   * //=> {name: 'Halle', foo: 'bar', baz: 'quux'} +   * ``` +   * +   * @name .set +   * @emits `set` with `key` and `value` as arguments. +   * @param {String} `key` +   * @param {any} `value` +   * @return {Object} Returns the instance for chaining. +   * @api public +   */ + +  Cache.prototype.set = function(key, val) { +    if (Array.isArray(key) && arguments.length === 2) { +      key = utils.toPath(key); +    } +    if (utils.isObject(key) || Array.isArray(key)) { +      this.visit('set', key); +    } else { +      utils.set(prop ? this[prop] : this, key, val); +      this.emit('set', key, val); +    } +    return this; +  }; + +  /** +   * Union `array` to `key`. Also emits `set` with +   * the key and value. +   * +   * ```js +   * app.union('a.b', ['foo']); +   * app.union('a.b', ['bar']); +   * console.log(app.get('a')); +   * //=> {b: ['foo', 'bar']} +   * ``` +   * @name .union +   * @param {String} `key` +   * @param {any} `value` +   * @return {Object} Returns the instance for chaining. +   * @api public +   */ + +  Cache.prototype.union = function(key, val) { +    if (Array.isArray(key) && arguments.length === 2) { +      key = utils.toPath(key); +    } +    var ctx = prop ? this[prop] : this; +    utils.union(ctx, key, utils.arrayify(val)); +    this.emit('union', val); +    return this; +  }; + +  /** +   * Return the value of `key`. Dot notation may be used +   * to get [nested property values][get-value]. +   * +   * ```js +   * app.set('a.b.c', 'd'); +   * app.get('a.b'); +   * //=> {c: 'd'} +   * +   * app.get(['a', 'b']); +   * //=> {c: 'd'} +   * ``` +   * +   * @name .get +   * @emits `get` with `key` and `value` as arguments. +   * @param {String} `key` The name of the property to get. Dot-notation may be used. +   * @return {any} Returns the value of `key` +   * @api public +   */ + +  Cache.prototype.get = function(key) { +    key = utils.toPath(arguments); + +    var ctx = prop ? this[prop] : this; +    var val = utils.get(ctx, key); + +    this.emit('get', key, val); +    return val; +  }; + +  /** +   * Return true if app has a stored value for `key`, +   * false only if value is `undefined`. +   * +   * ```js +   * app.set('foo', 'bar'); +   * app.has('foo'); +   * //=> true +   * ``` +   * +   * @name .has +   * @emits `has` with `key` and true or false as arguments. +   * @param {String} `key` +   * @return {Boolean} +   * @api public +   */ + +  Cache.prototype.has = function(key) { +    key = utils.toPath(arguments); + +    var ctx = prop ? this[prop] : this; +    var val = utils.get(ctx, key); + +    var has = typeof val !== 'undefined'; +    this.emit('has', key, has); +    return has; +  }; + +  /** +   * Delete one or more properties from the instance. +   * +   * ```js +   * app.del(); // delete all +   * // or +   * app.del('foo'); +   * // or +   * app.del(['foo', 'bar']); +   * ``` +   * @name .del +   * @emits `del` with the `key` as the only argument. +   * @param {String|Array} `key` Property name or array of property names. +   * @return {Object} Returns the instance for chaining. +   * @api public +   */ + +  Cache.prototype.del = function(key) { +    if (Array.isArray(key)) { +      this.visit('del', key); +    } else { +      utils.del(prop ? this[prop] : this, key); +      this.emit('del', key); +    } +    return this; +  }; + +  /** +   * Reset the entire cache to an empty object. +   * +   * ```js +   * app.clear(); +   * ``` +   * @api public +   */ + +  Cache.prototype.clear = function() { +    if (prop) { +      this[prop] = {}; +    } +  }; + +  /** +   * Visit `method` over the properties in the given object, or map +   * visit over the object-elements in an array. +   * +   * @name .visit +   * @param {String} `method` The name of the `base` method to call. +   * @param {Object|Array} `val` The object or array to iterate over. +   * @return {Object} Returns the instance for chaining. +   * @api public +   */ + +  Cache.prototype.visit = function(method, val) { +    utils.visit(this, method, val); +    return this; +  }; + +  return Cache; +} + +/** + * Expose `Cache` + */ + +module.exports = namespace(); + +/** + * Expose `Cache.namespace` + */ + +module.exports.namespace = namespace; diff --git a/node_modules/cache-base/package.json b/node_modules/cache-base/package.json new file mode 100644 index 000000000..fb20e591e --- /dev/null +++ b/node_modules/cache-base/package.json @@ -0,0 +1,84 @@ +{ +  "name": "cache-base", +  "description": "Basic object cache with `get`, `set`, `del`, and `has` methods for node.js/javascript projects.", +  "version": "0.8.5", +  "homepage": "https://github.com/jonschlinkert/cache-base", +  "author": "Jon Schlinkert (https://github.com/jonschlinkert)", +  "contributors": [ +    "<wtgtybhertgeghgtwtg@gmail.com> (https://github.com/wtgtybhertgeghgtwtg)", +    "Jon Schlinkert <jon.schlinkert@sellside.com> (http://twitter.com/jonschlinkert)" +  ], +  "repository": "jonschlinkert/cache-base", +  "bugs": { +    "url": "https://github.com/jonschlinkert/cache-base/issues" +  }, +  "license": "MIT", +  "files": [ +    "index.js", +    "utils.js" +  ], +  "main": "index.js", +  "engines": { +    "node": ">=0.10.0" +  }, +  "scripts": { +    "test": "mocha" +  }, +  "dependencies": { +    "collection-visit": "^0.2.1", +    "component-emitter": "^1.2.1", +    "get-value": "^2.0.5", +    "has-value": "^0.3.1", +    "isobject": "^3.0.0", +    "lazy-cache": "^2.0.1", +    "set-value": "^0.4.2", +    "to-object-path": "^0.3.0", +    "union-value": "^0.2.3", +    "unset-value": "^0.1.1" +  }, +  "devDependencies": { +    "gulp-format-md": "^0.1.8", +    "mocha": "^2.4.5" +  }, +  "keywords": [ +    "base", +    "cache", +    "config", +    "data", +    "get", +    "has", +    "hash", +    "hasown", +    "object", +    "set", +    "store" +  ], +  "verb": { +    "run": true, +    "toc": false, +    "layout": "default", +    "tasks": [ +      "readme" +    ], +    "plugins": [ +      "gulp-format-md" +    ], +    "related": { +      "highligh": "base", +      "list": [ +        "base-methods", +        "get-value", +        "has-value", +        "option-cache", +        "set-value", +        "unset-value" +      ] +    }, +    "reflinks": [ +      "verb" +    ], +    "lint": { +      "reflinks": true +    } +  } +} diff --git a/node_modules/cache-base/utils.js b/node_modules/cache-base/utils.js new file mode 100644 index 000000000..5b1740a2b --- /dev/null +++ b/node_modules/cache-base/utils.js @@ -0,0 +1,38 @@ +'use strict'; + +/** + * Module dependencies + */ + +var utils = require('lazy-cache')(require); +var fn = require; +require = utils; + +/** + * Lazily required module dependencies + */ + +require('component-emitter', 'Emitter'); +require('collection-visit', 'visit'); +require('isobject', 'isObject'); +require('unset-value', 'del'); +require('get-value', 'get'); +require('has-value', 'has'); +require('set-value', 'set'); +require('union-value', 'union'); +require('to-object-path', 'toPath'); +require = fn; + +/** + * Cast val to an array + */ + +utils.arrayify = function(val) { +  return val ? (Array.isArray(val) ? val : [val]) : []; +}; + +/** + * Expose `utils` modules + */ + +module.exports = utils; | 
