diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-03-27 21:01:33 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-03-27 21:01:33 +0100 |
commit | cc97a4dd2a967e1c2273bd5f4c5f49a5bf2e2585 (patch) | |
tree | 92c5d88706a6ffc654d1b133618d357890e7096b /node_modules/concordance/lib/describe.js | |
parent | 3771b4d6b67b34c130f3a9a1a15f42deefdb2eda (diff) |
remove node_modules
Diffstat (limited to 'node_modules/concordance/lib/describe.js')
-rw-r--r-- | node_modules/concordance/lib/describe.js | 170 |
1 files changed, 0 insertions, 170 deletions
diff --git a/node_modules/concordance/lib/describe.js b/node_modules/concordance/lib/describe.js deleted file mode 100644 index a8aa94572..000000000 --- a/node_modules/concordance/lib/describe.js +++ /dev/null @@ -1,170 +0,0 @@ -'use strict' - -const argumentsValue = require('./complexValues/arguments') -const arrayBufferValue = require('./complexValues/arrayBuffer') -const boxedValue = require('./complexValues/boxed') -const dataViewValue = require('./complexValues/dataView') -const dateValue = require('./complexValues/date') -const errorValue = require('./complexValues/error') -const functionValue = require('./complexValues/function') -const globalValue = require('./complexValues/global') -const mapValue = require('./complexValues/map') -const objectValue = require('./complexValues/object') -const promiseValue = require('./complexValues/promise') -const regexpValue = require('./complexValues/regexp') -const setValue = require('./complexValues/set') -const typedArrayValue = require('./complexValues/typedArray') - -const itemDescriptor = require('./metaDescriptors/item') -const mapEntryDescriptor = require('./metaDescriptors/mapEntry') -const propertyDescriptor = require('./metaDescriptors/property') - -const booleanValue = require('./primitiveValues/boolean') -const nullValue = require('./primitiveValues/null') -const numberValue = require('./primitiveValues/number') -const stringValue = require('./primitiveValues/string') -const symbolValue = require('./primitiveValues/symbol') -const undefinedValue = require('./primitiveValues/undefined') - -const getCtor = require('./getCtor') -const getStringTag = require('./getStringTag') -const pluginRegistry = require('./pluginRegistry') -const Registry = require('./Registry') - -const SpecializedComplexes = new Map([ - ['Arguments', argumentsValue.describe], - ['ArrayBuffer', arrayBufferValue.describe], - ['DataView', dataViewValue.describe], - ['Date', dateValue.describe], - ['Error', errorValue.describe], - ['Float32Array', typedArrayValue.describe], - ['Float64Array', typedArrayValue.describe], - ['Function', functionValue.describe], - ['GeneratorFunction', functionValue.describe], - ['global', globalValue.describe], - ['Int16Array', typedArrayValue.describe], - ['Int32Array', typedArrayValue.describe], - ['Int8Array', typedArrayValue.describe], - ['Map', mapValue.describe], - ['Promise', promiseValue.describe], - ['RegExp', regexpValue.describe], - ['Set', setValue.describe], - ['Uint16Array', typedArrayValue.describe], - ['Uint32Array', typedArrayValue.describe], - ['Uint8Array', typedArrayValue.describe], - ['Uint8ClampedArray', typedArrayValue.describe] -]) - -function describePrimitive (value) { - if (value === null) return nullValue.describe() - if (value === undefined) return undefinedValue.describe() - if (value === true || value === false) return booleanValue.describe(value) - - const type = typeof value - if (type === 'number') return numberValue.describe(value) - if (type === 'string') return stringValue.describe(value) - if (type === 'symbol') return symbolValue.describe(value) - - return null -} - -function unboxComplex (tag, complex) { - // Try to unbox by calling `valueOf()`. `describePrimitive()` will return - // `null` if the resulting value is not a primitive, in which case it's - // ignored. - if (typeof complex.valueOf === 'function') { - const value = complex.valueOf() - if (value !== complex) return describePrimitive(value) - } - - return null -} - -function registerPlugins (plugins) { - if (!Array.isArray(plugins) || plugins.length === 0) return () => null - - const tryFns = pluginRegistry.getTryDescribeValues(plugins) - return (value, stringTag, ctor) => { - for (const tryDescribeValue of tryFns) { - const describeValue = tryDescribeValue(value, stringTag, ctor) - if (describeValue) return describeValue - } - - return null - } -} - -function describeComplex (value, registry, tryPlugins, describeAny, describeItem, describeMapEntry, describeProperty) { - if (registry.has(value)) return registry.get(value) - - const stringTag = getStringTag(value) - const ctor = getCtor(stringTag, value) - const pointer = registry.alloc(value) - - let unboxed - let describeValue = tryPlugins(value, stringTag, ctor) - if (describeValue === null) { - if (SpecializedComplexes.has(stringTag)) { - describeValue = SpecializedComplexes.get(stringTag) - } else { - unboxed = unboxComplex(stringTag, value) - if (unboxed !== null) { - describeValue = boxedValue.describe - } else { - describeValue = objectValue.describe - } - } - } - - const descriptor = describeValue({ - ctor, - describeAny, - describeItem, - describeMapEntry, - describeProperty, - pointer: pointer.index, - stringTag, - unboxed, - value - }) - pointer.descriptor = descriptor - return descriptor -} - -function describe (value, options) { - const primitive = describePrimitive(value) - if (primitive !== null) return primitive - - const registry = new Registry() - const tryPlugins = registerPlugins(options && options.plugins) - const curriedComplex = c => { - return describeComplex(c, registry, tryPlugins, describeAny, describeItem, describeMapEntry, describeProperty) - } - - const describeAny = any => { - const descriptor = describePrimitive(any) - return descriptor !== null - ? descriptor - : curriedComplex(any) - } - - const describeItem = (index, valueDescriptor) => { - return valueDescriptor.isPrimitive === true - ? itemDescriptor.describePrimitive(index, valueDescriptor) - : itemDescriptor.describeComplex(index, valueDescriptor) - } - - const describeMapEntry = (keyDescriptor, valueDescriptor) => { - return mapEntryDescriptor.describe(keyDescriptor, valueDescriptor) - } - - const describeProperty = (key, valueDescriptor) => { - const keyDescriptor = describePrimitive(key) - return valueDescriptor.isPrimitive === true - ? propertyDescriptor.describePrimitive(keyDescriptor, valueDescriptor) - : propertyDescriptor.describeComplex(keyDescriptor, valueDescriptor) - } - - return curriedComplex(value) -} -module.exports = describe |