summaryrefslogtreecommitdiff
path: root/school/node_modules/graphql/jsutils/inspect.js.flow
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2023-02-23 19:34:56 +0100
committerMinteck <contact@minteck.org>2023-02-23 19:34:56 +0100
commit3d1cd02f27518f1a04374c7c8320cd5d82ede6e9 (patch)
tree75be5fba4368472fb11c8015aee026b2b9a71888 /school/node_modules/graphql/jsutils/inspect.js.flow
parent8cc1f13c17fa2fb5a4410542d39e650e02945634 (diff)
downloadpluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.tar.gz
pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.tar.bz2
pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.zip
Updated 40 files, added 37 files, deleted 1103 files and renamed 3905 files (automated)
Diffstat (limited to 'school/node_modules/graphql/jsutils/inspect.js.flow')
-rw-r--r--school/node_modules/graphql/jsutils/inspect.js.flow128
1 files changed, 0 insertions, 128 deletions
diff --git a/school/node_modules/graphql/jsutils/inspect.js.flow b/school/node_modules/graphql/jsutils/inspect.js.flow
deleted file mode 100644
index 77a2b2c..0000000
--- a/school/node_modules/graphql/jsutils/inspect.js.flow
+++ /dev/null
@@ -1,128 +0,0 @@
-// @flow strict
-/* eslint-disable flowtype/no-weak-types */
-import nodejsCustomInspectSymbol from './nodejsCustomInspectSymbol';
-
-const MAX_ARRAY_LENGTH = 10;
-const MAX_RECURSIVE_DEPTH = 2;
-
-/**
- * Used to print values in error messages.
- */
-export default function inspect(value: mixed): string {
- return formatValue(value, []);
-}
-
-function formatValue(value: mixed, seenValues: Array<mixed>): string {
- switch (typeof value) {
- case 'string':
- return JSON.stringify(value);
- case 'function':
- return value.name ? `[function ${value.name}]` : '[function]';
- case 'object':
- if (value === null) {
- return 'null';
- }
- return formatObjectValue(value, seenValues);
- default:
- return String(value);
- }
-}
-
-function formatObjectValue(
- value: Object,
- previouslySeenValues: Array<mixed>,
-): string {
- if (previouslySeenValues.indexOf(value) !== -1) {
- return '[Circular]';
- }
-
- const seenValues = [...previouslySeenValues, value];
- const customInspectFn = getCustomFn(value);
-
- if (customInspectFn !== undefined) {
- const customValue = customInspectFn.call(value);
-
- // check for infinite recursion
- if (customValue !== value) {
- return typeof customValue === 'string'
- ? customValue
- : formatValue(customValue, seenValues);
- }
- } else if (Array.isArray(value)) {
- return formatArray(value, seenValues);
- }
-
- return formatObject(value, seenValues);
-}
-
-function formatObject(object: Object, seenValues: Array<mixed>): string {
- const keys = Object.keys(object);
- if (keys.length === 0) {
- return '{}';
- }
-
- if (seenValues.length > MAX_RECURSIVE_DEPTH) {
- return '[' + getObjectTag(object) + ']';
- }
-
- const properties = keys.map((key) => {
- const value = formatValue(object[key], seenValues);
- return key + ': ' + value;
- });
-
- return '{ ' + properties.join(', ') + ' }';
-}
-
-function formatArray(array: Array<mixed>, seenValues: Array<mixed>): string {
- if (array.length === 0) {
- return '[]';
- }
-
- if (seenValues.length > MAX_RECURSIVE_DEPTH) {
- return '[Array]';
- }
-
- const len = Math.min(MAX_ARRAY_LENGTH, array.length);
- const remaining = array.length - len;
- const items = [];
-
- for (let i = 0; i < len; ++i) {
- items.push(formatValue(array[i], seenValues));
- }
-
- if (remaining === 1) {
- items.push('... 1 more item');
- } else if (remaining > 1) {
- items.push(`... ${remaining} more items`);
- }
-
- return '[' + items.join(', ') + ']';
-}
-
-function getCustomFn(object: Object) {
- const customInspectFn = object[String(nodejsCustomInspectSymbol)];
-
- if (typeof customInspectFn === 'function') {
- return customInspectFn;
- }
-
- if (typeof object.inspect === 'function') {
- return object.inspect;
- }
-}
-
-function getObjectTag(object: Object): string {
- const tag = Object.prototype.toString
- .call(object)
- .replace(/^\[object /, '')
- .replace(/]$/, '');
-
- if (tag === 'Object' && typeof object.constructor === 'function') {
- const name = object.constructor.name;
- if (typeof name === 'string' && name !== '') {
- return name;
- }
- }
-
- return tag;
-}