forked from public/fvtt-cthulhu-eternal
Initial import with skill sheet working
This commit is contained in:
21
node_modules/value-or-function/LICENSE
generated
vendored
Normal file
21
node_modules/value-or-function/LICENSE
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015-2017, 2021 Blaine Bublitz <blaine.bublitz@gmail.com> and Eric Schoffstall <yo@contra.io>
|
||||
|
||||
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.
|
139
node_modules/value-or-function/README.md
generated
vendored
Normal file
139
node_modules/value-or-function/README.md
generated
vendored
Normal file
@ -0,0 +1,139 @@
|
||||
<p align="center">
|
||||
<a href="https://gulpjs.com">
|
||||
<img height="257" width="114" src="https://raw.githubusercontent.com/gulpjs/artwork/master/gulp-2x.png">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
# value-or-function
|
||||
|
||||
[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][ci-image]][ci-url] [![Coveralls Status][coveralls-image]][coveralls-url]
|
||||
|
||||
Normalize a value or function, applying extra args to the function
|
||||
|
||||
## Example
|
||||
|
||||
```js
|
||||
var normalize = require('value-or-function');
|
||||
|
||||
// Values matching type are returned
|
||||
var isEnabled = normalize('boolean', true);
|
||||
// isEnabled === true
|
||||
|
||||
// Values not matching type return undefined
|
||||
var isEnabled = normalize('boolean', 1);
|
||||
// isEnabled === undefined
|
||||
|
||||
// Functions are called
|
||||
var isEnabled = normalize('boolean', function () {
|
||||
return false;
|
||||
});
|
||||
// isEnabled === false
|
||||
|
||||
// Extra arguments are applied to function
|
||||
var count = normalize(
|
||||
'number',
|
||||
function (a, b) {
|
||||
return a + b;
|
||||
},
|
||||
1,
|
||||
2
|
||||
);
|
||||
// count === 3
|
||||
|
||||
// Supply the function with context
|
||||
var context = { c: 3 };
|
||||
var count = normalize.call(
|
||||
context,
|
||||
'number',
|
||||
function (a, b) {
|
||||
return a + b + this.c;
|
||||
},
|
||||
1,
|
||||
2
|
||||
);
|
||||
// count === 6
|
||||
|
||||
// Values one of multiple types are returned
|
||||
var isEnabled = normalize(['string', 'boolean'], true);
|
||||
// isEnabled === true
|
||||
|
||||
// Provide a function as first argument to do custom coercion
|
||||
var now = new Date();
|
||||
var enabledSince = normalize(function (value) {
|
||||
if (value.constructor === Date) {
|
||||
return value;
|
||||
}
|
||||
}, now);
|
||||
// enabledSince === now
|
||||
|
||||
// Convenience methods are available for the built-in types
|
||||
var result = normalize.object({});
|
||||
var result = normalize.number(1);
|
||||
var result = normalize.string('');
|
||||
var result = normalize.symbol(Symbol());
|
||||
var result = normalize.boolean(true);
|
||||
var result = normalize.function(function () {});
|
||||
var result = normalize.date(new Date());
|
||||
```
|
||||
|
||||
## API
|
||||
|
||||
### `normalize(coercer, value[, ...appliedArguments])`
|
||||
|
||||
Takes a coercer function `coercer` to transform `value` to the desired type.
|
||||
Also optionally takes any extra arguments to apply to `value` if `value` is a function.
|
||||
|
||||
If the return value of `coercer(value)` is not `null` or `undefined`, that value is returned.
|
||||
Otherwise, if `value` is a function, that function is called with any extra arguments
|
||||
supplied to `normalize`, and its return value is passed through the coercer.
|
||||
|
||||
If `coercer` is a string, it must be one of the built-in types (see below)
|
||||
and the appropriate default coercer is invoked, optionally first reducing `value`
|
||||
to a primitive type with `.valueOf()` if it is an Object.
|
||||
|
||||
If `coercer` is an array, each element is tried until one returns something other
|
||||
than `null` or `undefined`, or it results in `undefined` if all of the elements yield `null` or `undefined`.
|
||||
|
||||
#### `normalize.object(value[, ...appliedArguments])`
|
||||
|
||||
Convenience method for `normalize('object', ...)`.
|
||||
|
||||
#### `normalize.number(value[, ...appliedArguments])`
|
||||
|
||||
Convenience method for `normalize('number', ...)`.
|
||||
|
||||
#### `normalize.string(value[, ...appliedArguments])`
|
||||
|
||||
Convenience method for `normalize('string', ...)`.
|
||||
|
||||
#### `normalize.symbol(value[, ...appliedArguments])`
|
||||
|
||||
Convenience method for `normalize('symbol', ...)`.
|
||||
|
||||
#### `normalize.boolean(value[, ...appliedArguments])`
|
||||
|
||||
Convenience method for `normalize('boolean', ...)`.
|
||||
|
||||
#### `normalize.function(value[, ...appliedArguments])`
|
||||
|
||||
Convenience method for `normalize('function', ...)`.
|
||||
|
||||
#### `normalize.date(value[, ...appliedArguments])`
|
||||
|
||||
Convenience method for `normalize('date', ...)`.
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
|
||||
<!-- prettier-ignore-start -->
|
||||
[downloads-image]: https://img.shields.io/npm/dm/value-or-function.svg?style=flat-square
|
||||
[npm-url]: https://npmjs.org/package/value-or-function
|
||||
[npm-image]: https://img.shields.io/npm/v/value-or-function.svg?style=flat-square
|
||||
|
||||
[ci-url]: https://github.com/gulpjs/value-or-function/actions?query=workflow:dev
|
||||
[ci-image]: https://img.shields.io/github/workflow/status/gulpjs/value-or-function/dev?style=flat-square
|
||||
|
||||
[coveralls-url]: https://coveralls.io/r/gulpjs/value-or-function
|
||||
[coveralls-image]: https://img.shields.io/coveralls/gulpjs/value-or-function/master.svg?style=flat-square
|
||||
<!-- prettier-ignore-end -->
|
113
node_modules/value-or-function/index.js
generated
vendored
Normal file
113
node_modules/value-or-function/index.js
generated
vendored
Normal file
@ -0,0 +1,113 @@
|
||||
'use strict';
|
||||
|
||||
// Built-in types
|
||||
var types = [
|
||||
'object',
|
||||
'number',
|
||||
'string',
|
||||
'symbol',
|
||||
'boolean',
|
||||
'date',
|
||||
'function', // Weird to expose this
|
||||
];
|
||||
|
||||
function normalize(coercer, value) {
|
||||
var coercers = coercer;
|
||||
if (!Array.isArray(coercers)) {
|
||||
coercers = [coercer];
|
||||
}
|
||||
|
||||
var ctx = this;
|
||||
var args = slice(arguments, 2);
|
||||
|
||||
// Try in order until one returns a non-undefined value
|
||||
var result;
|
||||
coercers.some(function (coercer) {
|
||||
var val = value;
|
||||
if (typeof value === 'function' && coercer !== 'function') {
|
||||
val = value.apply(ctx, args);
|
||||
}
|
||||
|
||||
result = coerce(ctx, coercer, val);
|
||||
return result !== undefined;
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
function coerce(ctx, coercer, value) {
|
||||
// Handle built-in types
|
||||
if (typeof coercer === 'string') {
|
||||
if (coerce[coercer]) {
|
||||
return coerce[coercer].call(ctx, value);
|
||||
}
|
||||
return typeOf(coercer, value);
|
||||
}
|
||||
|
||||
// Handle custom coercer
|
||||
if (typeof coercer === 'function') {
|
||||
return coercer.call(ctx, value);
|
||||
}
|
||||
|
||||
throw new Error('Invalid coercer. Can only be a string or function.');
|
||||
}
|
||||
|
||||
coerce.string = function (value) {
|
||||
if (
|
||||
value != null &&
|
||||
typeof value === 'object' &&
|
||||
typeof value.toString === 'function'
|
||||
) {
|
||||
value = value.toString();
|
||||
}
|
||||
return typeOf('string', primitive(value));
|
||||
};
|
||||
|
||||
coerce.number = function (value) {
|
||||
return typeOf('number', primitive(value));
|
||||
};
|
||||
|
||||
coerce.boolean = function (value) {
|
||||
return typeOf('boolean', primitive(value));
|
||||
};
|
||||
|
||||
coerce.date = function (value) {
|
||||
value = primitive(value);
|
||||
if (typeof value === 'number' && !isNaN(value) && isFinite(value)) {
|
||||
return new Date(value);
|
||||
}
|
||||
};
|
||||
|
||||
function typeOf(type, value) {
|
||||
if (typeof value === type) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
function primitive(value) {
|
||||
if (
|
||||
value != null &&
|
||||
typeof value === 'object' &&
|
||||
typeof value.valueOf === 'function'
|
||||
) {
|
||||
value = value.valueOf();
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
function slice(value, from) {
|
||||
return Array.prototype.slice.call(value, from);
|
||||
}
|
||||
|
||||
// Add methods for each type
|
||||
types.forEach(function (type) {
|
||||
// Make it an array for easier concat
|
||||
var typeArg = [type];
|
||||
|
||||
normalize[type] = function () {
|
||||
var args = slice(arguments);
|
||||
return normalize.apply(this, typeArg.concat(args));
|
||||
};
|
||||
});
|
||||
|
||||
module.exports = normalize;
|
48
node_modules/value-or-function/package.json
generated
vendored
Normal file
48
node_modules/value-or-function/package.json
generated
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
{
|
||||
"name": "value-or-function",
|
||||
"version": "4.0.0",
|
||||
"description": "Normalize a value or function, applying extra args to the function",
|
||||
"author": "Gulp Team <team@gulpjs.com> (http://gulpjs.com/)",
|
||||
"contributors": [
|
||||
"Blaine Bublitz <blaine.bublitz@gmail.com>",
|
||||
"Hugo Wood <hx4.5@free.fr>"
|
||||
],
|
||||
"repository": "gulpjs/value-or-function",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 10.13.0"
|
||||
},
|
||||
"main": "index.js",
|
||||
"files": [
|
||||
"index.js"
|
||||
],
|
||||
"scripts": {
|
||||
"lint": "eslint .",
|
||||
"pretest": "npm run lint",
|
||||
"test": "nyc mocha --async-only"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^7.32.0",
|
||||
"eslint-config-gulp": "^5.0.1",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"expect": "^27.4.2",
|
||||
"mocha": "^8.4.0",
|
||||
"nyc": "^15.1.0",
|
||||
"sinon": "^12.0.1"
|
||||
},
|
||||
"nyc": {
|
||||
"reporter": [
|
||||
"lcov",
|
||||
"text-summary"
|
||||
]
|
||||
},
|
||||
"prettier": {
|
||||
"singleQuote": true
|
||||
},
|
||||
"keywords": [
|
||||
"options",
|
||||
"normalize",
|
||||
"value",
|
||||
"function"
|
||||
]
|
||||
}
|
Reference in New Issue
Block a user