graphql 14.0.2 → 14.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +5 -5
- package/codecov.yml +14 -0
- package/error/GraphQLError.js +2 -2
- package/error/GraphQLError.js.flow +4 -4
- package/error/GraphQLError.mjs +2 -2
- package/error/formatError.js +2 -2
- package/error/formatError.js.flow +1 -1
- package/error/formatError.mjs +2 -2
- package/error/index.js.flow +1 -1
- package/error/index.mjs +2 -2
- package/error/locatedError.js +2 -2
- package/error/locatedError.js.flow +1 -1
- package/error/locatedError.mjs +2 -2
- package/error/printError.js +2 -2
- package/error/printError.js.flow +1 -1
- package/error/printError.mjs +2 -2
- package/error/syntaxError.js +2 -2
- package/error/syntaxError.js.flow +1 -1
- package/error/syntaxError.mjs +2 -2
- package/execution/execute.js +20 -11
- package/execution/execute.js.flow +41 -27
- package/execution/execute.mjs +19 -13
- package/execution/index.js +6 -0
- package/execution/index.js.flow +7 -2
- package/execution/index.mjs +3 -3
- package/execution/values.js +10 -10
- package/execution/values.js.flow +8 -8
- package/execution/values.mjs +9 -9
- package/graphql.js +8 -8
- package/graphql.js.flow +18 -4
- package/graphql.mjs +8 -8
- package/index.js +18 -0
- package/index.js.flow +4 -1
- package/index.mjs +4 -4
- package/jsutils/ObjMap.js.flow +1 -1
- package/jsutils/{MaybePromise.js → PromiseOrValue.js} +0 -0
- package/jsutils/{MaybePromise.js.flow → PromiseOrValue.js.flow} +2 -2
- package/jsutils/{MaybePromise.mjs → PromiseOrValue.mjs} +0 -0
- package/jsutils/dedent.js +2 -2
- package/jsutils/dedent.js.flow +1 -1
- package/jsutils/dedent.mjs +2 -2
- package/jsutils/defineToJSON.js +18 -7
- package/jsutils/defineToJSON.js.flow +15 -6
- package/jsutils/defineToJSON.mjs +15 -7
- package/jsutils/defineToStringTag.js +6 -6
- package/jsutils/defineToStringTag.js.flow +4 -4
- package/jsutils/defineToStringTag.mjs +5 -5
- package/jsutils/inspect.js +109 -23
- package/jsutils/inspect.js.flow +112 -14
- package/jsutils/inspect.mjs +108 -17
- package/jsutils/instanceOf.js +2 -2
- package/jsutils/instanceOf.js.flow +1 -1
- package/jsutils/instanceOf.mjs +2 -2
- package/jsutils/invariant.js +2 -2
- package/jsutils/invariant.js.flow +1 -1
- package/jsutils/invariant.mjs +2 -2
- package/jsutils/isInvalid.js +2 -2
- package/jsutils/isInvalid.js.flow +1 -1
- package/jsutils/isInvalid.mjs +2 -2
- package/jsutils/isNullish.js +2 -2
- package/jsutils/isNullish.js.flow +1 -1
- package/jsutils/isNullish.mjs +2 -2
- package/jsutils/isPromise.js +2 -2
- package/jsutils/isPromise.js.flow +1 -1
- package/jsutils/isPromise.mjs +2 -2
- package/jsutils/keyMap.js +2 -2
- package/jsutils/keyMap.js.flow +1 -1
- package/jsutils/keyMap.mjs +2 -2
- package/jsutils/keyValMap.js +2 -2
- package/jsutils/keyValMap.js.flow +1 -1
- package/jsutils/keyValMap.mjs +2 -2
- package/jsutils/mapValue.js +54 -0
- package/jsutils/mapValue.js.flow +27 -0
- package/jsutils/mapValue.mjs +44 -0
- package/jsutils/memoize3.js +2 -2
- package/jsutils/memoize3.js.flow +1 -1
- package/jsutils/memoize3.mjs +2 -2
- package/jsutils/nodejsCustomInspectSymbol.js +18 -0
- package/jsutils/nodejsCustomInspectSymbol.js.flow +15 -0
- package/jsutils/nodejsCustomInspectSymbol.mjs +10 -0
- package/jsutils/orList.js +18 -5
- package/jsutils/orList.js.flow +14 -8
- package/jsutils/orList.mjs +15 -5
- package/jsutils/promiseForObject.js +2 -2
- package/jsutils/promiseForObject.js.flow +1 -1
- package/jsutils/promiseForObject.mjs +2 -2
- package/jsutils/promiseReduce.js +2 -2
- package/jsutils/promiseReduce.js.flow +5 -5
- package/jsutils/promiseReduce.mjs +2 -2
- package/jsutils/quotedOrList.js +2 -2
- package/jsutils/quotedOrList.js.flow +1 -1
- package/jsutils/quotedOrList.mjs +2 -2
- package/jsutils/suggestionList.js +2 -2
- package/jsutils/suggestionList.js.flow +1 -1
- package/jsutils/suggestionList.mjs +2 -2
- package/language/ast.js.flow +1 -1
- package/language/{blockStringValue.mjs → blockString.js} +39 -3
- package/language/{blockStringValue.js.flow → blockString.js.flow} +31 -2
- package/language/{blockStringValue.js → blockString.mjs} +31 -10
- package/language/directiveLocation.js +2 -2
- package/language/directiveLocation.js.flow +1 -1
- package/language/directiveLocation.mjs +2 -2
- package/language/index.js.flow +1 -1
- package/language/index.mjs +2 -2
- package/language/kinds.js +2 -2
- package/language/kinds.js.flow +1 -1
- package/language/kinds.mjs +2 -2
- package/language/lexer.js +60 -46
- package/language/lexer.js.flow +71 -69
- package/language/lexer.mjs +58 -45
- package/language/location.js +2 -2
- package/language/location.js.flow +1 -1
- package/language/location.mjs +2 -2
- package/language/parser.js +84 -83
- package/language/parser.js.flow +85 -94
- package/language/parser.mjs +83 -83
- package/language/predicates.js +2 -2
- package/language/predicates.js.flow +1 -1
- package/language/predicates.mjs +2 -2
- package/language/printer.js +15 -17
- package/language/printer.js.flow +21 -20
- package/language/printer.mjs +14 -17
- package/language/source.js +8 -7
- package/language/source.js.flow +1 -1
- package/language/source.mjs +2 -10
- package/language/visitor.js +7 -6
- package/language/visitor.js.flow +3 -5
- package/language/visitor.mjs +7 -6
- package/package.json +5 -2
- package/polyfills/find.js +31 -0
- package/polyfills/find.js.flow +29 -0
- package/polyfills/find.mjs +23 -0
- package/polyfills/flatMap.js +38 -0
- package/polyfills/flatMap.js.flow +34 -0
- package/polyfills/flatMap.mjs +30 -0
- package/{jsutils → polyfills}/isFinite.js +2 -2
- package/{jsutils → polyfills}/isFinite.js.flow +1 -1
- package/{jsutils → polyfills}/isFinite.mjs +2 -2
- package/{jsutils → polyfills}/isInteger.js +2 -2
- package/{jsutils → polyfills}/isInteger.js.flow +1 -1
- package/{jsutils → polyfills}/isInteger.mjs +2 -2
- package/polyfills/objectEntries.js +26 -0
- package/polyfills/objectEntries.js.flow +19 -0
- package/polyfills/objectEntries.mjs +18 -0
- package/{jsutils → polyfills}/objectValues.js +2 -2
- package/{jsutils → polyfills}/objectValues.js.flow +2 -2
- package/{jsutils → polyfills}/objectValues.mjs +2 -2
- package/subscription/asyncIteratorReject.js.flow +1 -1
- package/subscription/asyncIteratorReject.mjs +2 -2
- package/subscription/index.js.flow +1 -1
- package/subscription/index.mjs +2 -2
- package/subscription/mapAsyncIterator.js.flow +5 -5
- package/subscription/mapAsyncIterator.mjs +2 -2
- package/subscription/subscribe.js +2 -2
- package/subscription/subscribe.js.flow +1 -1
- package/subscription/subscribe.mjs +2 -2
- package/type/definition.js +161 -138
- package/type/definition.js.flow +193 -57
- package/type/definition.mjs +158 -140
- package/type/directives.js +35 -29
- package/type/directives.js.flow +39 -21
- package/type/directives.mjs +34 -31
- package/type/index.js +12 -0
- package/type/index.js.flow +5 -1
- package/type/index.mjs +6 -4
- package/type/introspection.js +11 -7
- package/type/introspection.js.flow +11 -8
- package/type/introspection.mjs +11 -7
- package/type/scalars.js +45 -34
- package/type/scalars.js.flow +41 -27
- package/type/scalars.mjs +45 -27
- package/type/schema.js +134 -88
- package/type/schema.js.flow +77 -11
- package/type/schema.mjs +132 -88
- package/type/validate.js +152 -187
- package/type/validate.js.flow +12 -61
- package/type/validate.mjs +143 -188
- package/utilities/TypeInfo.js +10 -23
- package/utilities/TypeInfo.js.flow +2 -2
- package/utilities/TypeInfo.mjs +3 -25
- package/utilities/assertValidName.js +2 -2
- package/utilities/assertValidName.js.flow +1 -1
- package/utilities/assertValidName.mjs +2 -2
- package/utilities/astFromValue.js +7 -6
- package/utilities/astFromValue.js.flow +7 -6
- package/utilities/astFromValue.mjs +9 -8
- package/utilities/buildASTSchema.js +213 -197
- package/utilities/buildASTSchema.js.flow +163 -173
- package/utilities/buildASTSchema.mjs +203 -198
- package/utilities/buildClientSchema.js +39 -47
- package/utilities/buildClientSchema.js.flow +49 -58
- package/utilities/buildClientSchema.mjs +38 -46
- package/utilities/coerceValue.js +41 -21
- package/utilities/coerceValue.js.flow +44 -49
- package/utilities/coerceValue.mjs +42 -23
- package/utilities/concatAST.js +9 -13
- package/utilities/concatAST.js.flow +3 -9
- package/utilities/concatAST.mjs +6 -13
- package/utilities/extendSchema.js +256 -630
- package/utilities/extendSchema.js.flow +190 -426
- package/utilities/extendSchema.mjs +256 -631
- package/utilities/findBreakingChanges.js +8 -6
- package/utilities/findBreakingChanges.js.flow +4 -3
- package/utilities/findBreakingChanges.mjs +7 -6
- package/utilities/findDeprecatedUsages.js +4 -4
- package/utilities/findDeprecatedUsages.js.flow +3 -3
- package/utilities/findDeprecatedUsages.mjs +4 -4
- package/utilities/getOperationAST.js +2 -2
- package/utilities/getOperationAST.js.flow +1 -1
- package/utilities/getOperationAST.mjs +2 -2
- package/utilities/getOperationRootType.js +6 -6
- package/utilities/getOperationRootType.js.flow +9 -7
- package/utilities/getOperationRootType.mjs +6 -6
- package/utilities/index.js.flow +1 -1
- package/utilities/index.mjs +2 -2
- package/utilities/introspectionFromSchema.js +2 -2
- package/utilities/introspectionFromSchema.js.flow +1 -1
- package/utilities/introspectionFromSchema.mjs +2 -2
- package/utilities/introspectionQuery.js +2 -2
- package/utilities/introspectionQuery.js.flow +1 -1
- package/utilities/introspectionQuery.mjs +2 -2
- package/utilities/isValidJSValue.js +4 -2
- package/utilities/isValidJSValue.js.flow +2 -1
- package/utilities/isValidJSValue.mjs +4 -2
- package/utilities/isValidLiteralValue.js +2 -2
- package/utilities/isValidLiteralValue.js.flow +1 -1
- package/utilities/isValidLiteralValue.mjs +2 -2
- package/utilities/lexicographicSortSchema.js +86 -124
- package/utilities/lexicographicSortSchema.js.flow +68 -96
- package/utilities/lexicographicSortSchema.mjs +86 -124
- package/utilities/schemaPrinter.js +47 -73
- package/utilities/schemaPrinter.js.flow +62 -111
- package/utilities/schemaPrinter.mjs +46 -73
- package/utilities/separateOperations.js +11 -10
- package/utilities/separateOperations.js.flow +1 -1
- package/utilities/separateOperations.mjs +11 -10
- package/utilities/typeComparators.js +2 -2
- package/utilities/typeComparators.js.flow +1 -1
- package/utilities/typeComparators.mjs +2 -2
- package/utilities/typeFromAST.js +9 -4
- package/utilities/typeFromAST.js.flow +5 -2
- package/utilities/typeFromAST.mjs +6 -4
- package/utilities/valueFromAST.js +9 -6
- package/utilities/valueFromAST.js.flow +5 -3
- package/utilities/valueFromAST.mjs +7 -5
- package/utilities/valueFromASTUntyped.js +7 -4
- package/utilities/valueFromASTUntyped.js.flow +5 -2
- package/utilities/valueFromASTUntyped.mjs +6 -4
- package/validation/ValidationContext.js +57 -82
- package/validation/ValidationContext.js.flow +53 -50
- package/validation/ValidationContext.mjs +53 -78
- package/validation/index.js.flow +1 -1
- package/validation/index.mjs +2 -2
- package/validation/rules/ExecutableDefinitions.js +3 -3
- package/validation/rules/ExecutableDefinitions.js.flow +3 -3
- package/validation/rules/ExecutableDefinitions.mjs +3 -3
- package/validation/rules/FieldsOnCorrectType.js +3 -3
- package/validation/rules/FieldsOnCorrectType.js.flow +2 -2
- package/validation/rules/FieldsOnCorrectType.mjs +3 -3
- package/validation/rules/FragmentsOnCompositeTypes.js +4 -4
- package/validation/rules/FragmentsOnCompositeTypes.js.flow +3 -3
- package/validation/rules/FragmentsOnCompositeTypes.mjs +4 -4
- package/validation/rules/KnownArgumentNames.js.flow +1 -1
- package/validation/rules/KnownArgumentNames.mjs +2 -2
- package/validation/rules/KnownDirectives.js +4 -4
- package/validation/rules/KnownDirectives.js.flow +5 -4
- package/validation/rules/KnownDirectives.mjs +4 -4
- package/validation/rules/KnownFragmentNames.js +3 -3
- package/validation/rules/KnownFragmentNames.js.flow +2 -2
- package/validation/rules/KnownFragmentNames.mjs +3 -3
- package/validation/rules/KnownTypeNames.js +60 -22
- package/validation/rules/KnownTypeNames.js.flow +55 -21
- package/validation/rules/KnownTypeNames.mjs +57 -22
- package/validation/rules/LoneAnonymousOperation.js +3 -3
- package/validation/rules/LoneAnonymousOperation.js.flow +2 -2
- package/validation/rules/LoneAnonymousOperation.mjs +3 -3
- package/validation/rules/LoneSchemaDefinition.js +2 -2
- package/validation/rules/LoneSchemaDefinition.js.flow +1 -1
- package/validation/rules/LoneSchemaDefinition.mjs +2 -2
- package/validation/rules/NoFragmentCycles.js +2 -2
- package/validation/rules/NoFragmentCycles.js.flow +3 -3
- package/validation/rules/NoFragmentCycles.mjs +2 -2
- package/validation/rules/NoUndefinedVariables.js +2 -2
- package/validation/rules/NoUndefinedVariables.js.flow +1 -1
- package/validation/rules/NoUndefinedVariables.mjs +2 -2
- package/validation/rules/NoUnusedFragments.js +10 -7
- package/validation/rules/NoUnusedFragments.js.flow +4 -4
- package/validation/rules/NoUnusedFragments.mjs +10 -7
- package/validation/rules/NoUnusedVariables.js +7 -5
- package/validation/rules/NoUnusedVariables.js.flow +4 -3
- package/validation/rules/NoUnusedVariables.mjs +7 -5
- package/validation/rules/OverlappingFieldsCanBeMerged.js +58 -33
- package/validation/rules/OverlappingFieldsCanBeMerged.js.flow +4 -4
- package/validation/rules/OverlappingFieldsCanBeMerged.mjs +50 -34
- package/validation/rules/PossibleFragmentSpreads.js +4 -4
- package/validation/rules/PossibleFragmentSpreads.js.flow +3 -3
- package/validation/rules/PossibleFragmentSpreads.mjs +4 -4
- package/validation/rules/PossibleTypeExtensions.js +158 -0
- package/validation/rules/PossibleTypeExtensions.js.flow +160 -0
- package/validation/rules/PossibleTypeExtensions.mjs +146 -0
- package/validation/rules/ProvidedRequiredArguments.js +3 -3
- package/validation/rules/ProvidedRequiredArguments.js.flow +4 -4
- package/validation/rules/ProvidedRequiredArguments.mjs +5 -5
- package/validation/rules/ScalarLeafs.js +4 -4
- package/validation/rules/ScalarLeafs.js.flow +3 -3
- package/validation/rules/ScalarLeafs.mjs +4 -4
- package/validation/rules/SingleFieldSubscriptions.js +2 -2
- package/validation/rules/SingleFieldSubscriptions.js.flow +1 -1
- package/validation/rules/SingleFieldSubscriptions.mjs +2 -2
- package/validation/rules/UniqueArgumentNames.js +2 -2
- package/validation/rules/UniqueArgumentNames.js.flow +1 -1
- package/validation/rules/UniqueArgumentNames.mjs +2 -2
- package/validation/rules/UniqueDirectiveNames.js +55 -0
- package/validation/rules/UniqueDirectiveNames.js.flow +64 -0
- package/validation/rules/UniqueDirectiveNames.mjs +43 -0
- package/validation/rules/UniqueDirectivesPerLocation.js +2 -2
- package/validation/rules/UniqueDirectivesPerLocation.js.flow +1 -1
- package/validation/rules/UniqueDirectivesPerLocation.mjs +2 -2
- package/validation/rules/UniqueEnumValueNames.js +90 -0
- package/validation/rules/UniqueEnumValueNames.js.flow +85 -0
- package/validation/rules/UniqueEnumValueNames.mjs +77 -0
- package/validation/rules/UniqueFieldDefinitionNames.js +101 -0
- package/validation/rules/UniqueFieldDefinitionNames.js.flow +99 -0
- package/validation/rules/UniqueFieldDefinitionNames.mjs +88 -0
- package/validation/rules/UniqueFragmentNames.js +2 -2
- package/validation/rules/UniqueFragmentNames.js.flow +1 -1
- package/validation/rules/UniqueFragmentNames.mjs +2 -2
- package/validation/rules/UniqueInputFieldNames.js +2 -4
- package/validation/rules/UniqueInputFieldNames.js.flow +1 -2
- package/validation/rules/UniqueInputFieldNames.mjs +2 -4
- package/validation/rules/UniqueOperationNames.js +2 -2
- package/validation/rules/UniqueOperationNames.js.flow +1 -1
- package/validation/rules/UniqueOperationNames.mjs +2 -2
- package/validation/rules/UniqueOperationTypes.js +85 -0
- package/validation/rules/UniqueOperationTypes.js.flow +76 -0
- package/validation/rules/UniqueOperationTypes.mjs +73 -0
- package/validation/rules/UniqueTypeNames.js +62 -0
- package/validation/rules/UniqueTypeNames.js.flow +67 -0
- package/validation/rules/UniqueTypeNames.mjs +50 -0
- package/validation/rules/UniqueVariableNames.js +2 -2
- package/validation/rules/UniqueVariableNames.js.flow +1 -1
- package/validation/rules/UniqueVariableNames.mjs +2 -2
- package/validation/rules/ValuesOfCorrectType.js +30 -14
- package/validation/rules/ValuesOfCorrectType.js.flow +5 -6
- package/validation/rules/ValuesOfCorrectType.mjs +29 -14
- package/validation/rules/VariablesAreInputTypes.js +3 -3
- package/validation/rules/VariablesAreInputTypes.js.flow +2 -2
- package/validation/rules/VariablesAreInputTypes.mjs +3 -3
- package/validation/rules/VariablesInAllowedPosition.js +5 -5
- package/validation/rules/VariablesInAllowedPosition.js.flow +1 -1
- package/validation/rules/VariablesInAllowedPosition.mjs +5 -5
- package/validation/specifiedRules.js +15 -3
- package/validation/specifiedRules.js.flow +14 -1
- package/validation/specifiedRules.mjs +9 -3
- package/validation/validate.js +2 -2
- package/validation/validate.js.flow +1 -1
- package/validation/validate.mjs +2 -2
- package/jsutils/find.js +0 -22
- package/jsutils/find.js.flow +0 -19
- package/jsutils/find.mjs +0 -15
package/index.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
*
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -42,7 +42,7 @@ DEFAULT_DEPRECATION_REASON, // Meta-field definitions.
|
|
|
42
42
|
SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef, // GraphQL Types for introspection.
|
|
43
43
|
introspectionTypes, __Schema, __Directive, __DirectiveLocation, __Type, __Field, __InputValue, __EnumValue, __TypeKind, // Predicates
|
|
44
44
|
isSchema, isDirective, isType, isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isListType, isNonNullType, isInputType, isOutputType, isLeafType, isCompositeType, isAbstractType, isWrappingType, isNullableType, isNamedType, isRequiredArgument, isRequiredInputField, isSpecifiedScalarType, isIntrospectionType, isSpecifiedDirective, // Assertions
|
|
45
|
-
assertType, assertScalarType, assertObjectType, assertInterfaceType, assertUnionType, assertEnumType, assertInputObjectType, assertListType, assertNonNullType, assertInputType, assertOutputType, assertLeafType, assertCompositeType, assertAbstractType, assertWrappingType, assertNullableType, assertNamedType, // Un-modifiers
|
|
45
|
+
assertSchema, assertDirective, assertType, assertScalarType, assertObjectType, assertInterfaceType, assertUnionType, assertEnumType, assertInputObjectType, assertListType, assertNonNullType, assertInputType, assertOutputType, assertLeafType, assertCompositeType, assertAbstractType, assertWrappingType, assertNullableType, assertNamedType, // Un-modifiers
|
|
46
46
|
getNullableType, getNamedType, // Validate GraphQL schema.
|
|
47
47
|
validateSchema, assertValidSchema } from './type';
|
|
48
48
|
// Parse and operate on GraphQL language source files.
|
|
@@ -52,7 +52,7 @@ print, // Visit
|
|
|
52
52
|
visit, visitInParallel, visitWithTypeInfo, getVisitFn, Kind, TokenKind, DirectiveLocation, BREAK, // Predicates
|
|
53
53
|
isDefinitionNode, isExecutableDefinitionNode, isSelectionNode, isValueNode, isTypeNode, isTypeSystemDefinitionNode, isTypeDefinitionNode, isTypeSystemExtensionNode, isTypeExtensionNode } from './language';
|
|
54
54
|
// Execute GraphQL queries.
|
|
55
|
-
export { execute, defaultFieldResolver, responsePathAsArray, getDirectiveValues } from './execution';
|
|
55
|
+
export { execute, defaultFieldResolver, defaultTypeResolver, responsePathAsArray, getDirectiveValues } from './execution';
|
|
56
56
|
export { subscribe, createSourceEventStream } from './subscription'; // Validate GraphQL queries.
|
|
57
57
|
|
|
58
58
|
export { validate, ValidationContext, // All validation rules in the GraphQL Specification.
|
package/jsutils/ObjMap.js.flow
CHANGED
|
File without changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
* @flow strict
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
export type
|
|
10
|
+
export type PromiseOrValue<+T> = Promise<T> | T;
|
|
File without changes
|
package/jsutils/dedent.js
CHANGED
|
@@ -10,12 +10,12 @@ var _invariant = _interopRequireDefault(require("./invariant"));
|
|
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* Copyright (c)
|
|
13
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
14
14
|
*
|
|
15
15
|
* This source code is licensed under the MIT license found in the
|
|
16
16
|
* LICENSE file in the root directory of this source tree.
|
|
17
17
|
*
|
|
18
|
-
*
|
|
18
|
+
*
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
/**
|
package/jsutils/dedent.js.flow
CHANGED
package/jsutils/dedent.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
*
|
|
8
8
|
*/
|
|
9
9
|
import invariant from './invariant';
|
|
10
10
|
/**
|
package/jsutils/defineToJSON.js
CHANGED
|
@@ -3,21 +3,32 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default =
|
|
6
|
+
exports.default = defineToJSON;
|
|
7
|
+
|
|
8
|
+
var _nodejsCustomInspectSymbol = _interopRequireDefault(require("./nodejsCustomInspectSymbol"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
7
11
|
|
|
8
12
|
/**
|
|
9
|
-
* Copyright (c)
|
|
13
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
10
14
|
*
|
|
11
15
|
* This source code is licensed under the MIT license found in the
|
|
12
16
|
* LICENSE file in the root directory of this source tree.
|
|
13
17
|
*
|
|
14
|
-
*
|
|
18
|
+
*
|
|
15
19
|
*/
|
|
16
20
|
|
|
17
21
|
/**
|
|
18
|
-
* The `
|
|
19
|
-
* methods
|
|
22
|
+
* The `defineToJSON()` function defines toJSON() and inspect() prototype
|
|
23
|
+
* methods, if no function provided they become aliases for toString().
|
|
20
24
|
*/
|
|
21
|
-
function
|
|
22
|
-
|
|
25
|
+
function defineToJSON( // eslint-disable-next-line flowtype/no-weak-types
|
|
26
|
+
classObject) {
|
|
27
|
+
var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : classObject.prototype.toString;
|
|
28
|
+
classObject.prototype.toJSON = fn;
|
|
29
|
+
classObject.prototype.inspect = fn;
|
|
30
|
+
|
|
31
|
+
if (_nodejsCustomInspectSymbol.default) {
|
|
32
|
+
classObject.prototype[_nodejsCustomInspectSymbol.default] = fn;
|
|
33
|
+
}
|
|
23
34
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -7,11 +7,20 @@
|
|
|
7
7
|
* @flow strict
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
+
import nodejsCustomInspectSymbol from './nodejsCustomInspectSymbol';
|
|
11
|
+
|
|
10
12
|
/**
|
|
11
|
-
* The `
|
|
12
|
-
* methods
|
|
13
|
+
* The `defineToJSON()` function defines toJSON() and inspect() prototype
|
|
14
|
+
* methods, if no function provided they become aliases for toString().
|
|
13
15
|
*/
|
|
14
|
-
export default function
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
export default function defineToJSON(
|
|
17
|
+
// eslint-disable-next-line flowtype/no-weak-types
|
|
18
|
+
classObject: Class<any> | Function,
|
|
19
|
+
fn?: () => any = classObject.prototype.toString,
|
|
20
|
+
): void {
|
|
21
|
+
classObject.prototype.toJSON = fn;
|
|
22
|
+
classObject.prototype.inspect = fn;
|
|
23
|
+
if (nodejsCustomInspectSymbol) {
|
|
24
|
+
classObject.prototype[nodejsCustomInspectSymbol] = fn;
|
|
25
|
+
}
|
|
17
26
|
}
|
package/jsutils/defineToJSON.mjs
CHANGED
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
*
|
|
8
8
|
*/
|
|
9
|
-
|
|
9
|
+
import nodejsCustomInspectSymbol from './nodejsCustomInspectSymbol';
|
|
10
10
|
/**
|
|
11
|
-
* The `
|
|
12
|
-
* methods
|
|
11
|
+
* The `defineToJSON()` function defines toJSON() and inspect() prototype
|
|
12
|
+
* methods, if no function provided they become aliases for toString().
|
|
13
13
|
*/
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
|
|
15
|
+
export default function defineToJSON( // eslint-disable-next-line flowtype/no-weak-types
|
|
16
|
+
classObject) {
|
|
17
|
+
var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : classObject.prototype.toString;
|
|
18
|
+
classObject.prototype.toJSON = fn;
|
|
19
|
+
classObject.prototype.inspect = fn;
|
|
20
|
+
|
|
21
|
+
if (nodejsCustomInspectSymbol) {
|
|
22
|
+
classObject.prototype[nodejsCustomInspectSymbol] = fn;
|
|
23
|
+
}
|
|
16
24
|
}
|
|
@@ -3,31 +3,31 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default =
|
|
6
|
+
exports.default = defineToStringTag;
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Copyright (c)
|
|
9
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
10
10
|
*
|
|
11
11
|
* This source code is licensed under the MIT license found in the
|
|
12
12
|
* LICENSE file in the root directory of this source tree.
|
|
13
13
|
*
|
|
14
|
-
*
|
|
14
|
+
*
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
* The `
|
|
18
|
+
* The `defineToStringTag()` function checks first to see if the runtime
|
|
19
19
|
* supports the `Symbol` class and then if the `Symbol.toStringTag` constant
|
|
20
20
|
* is defined as a `Symbol` instance. If both conditions are met, the
|
|
21
21
|
* Symbol.toStringTag property is defined as a getter that returns the
|
|
22
22
|
* supplied class constructor's name.
|
|
23
23
|
*
|
|
24
|
-
* @method
|
|
24
|
+
* @method defineToStringTag
|
|
25
25
|
*
|
|
26
26
|
* @param {Class<any>} classObject a class such as Object, String, Number but
|
|
27
27
|
* typically one of your own creation through the class keyword; `class A {}`,
|
|
28
28
|
* for example.
|
|
29
29
|
*/
|
|
30
|
-
function
|
|
30
|
+
function defineToStringTag(classObject) {
|
|
31
31
|
if (typeof Symbol === 'function' && Symbol.toStringTag) {
|
|
32
32
|
Object.defineProperty(classObject.prototype, Symbol.toStringTag, {
|
|
33
33
|
get: function get() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -8,19 +8,19 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* The `
|
|
11
|
+
* The `defineToStringTag()` function checks first to see if the runtime
|
|
12
12
|
* supports the `Symbol` class and then if the `Symbol.toStringTag` constant
|
|
13
13
|
* is defined as a `Symbol` instance. If both conditions are met, the
|
|
14
14
|
* Symbol.toStringTag property is defined as a getter that returns the
|
|
15
15
|
* supplied class constructor's name.
|
|
16
16
|
*
|
|
17
|
-
* @method
|
|
17
|
+
* @method defineToStringTag
|
|
18
18
|
*
|
|
19
19
|
* @param {Class<any>} classObject a class such as Object, String, Number but
|
|
20
20
|
* typically one of your own creation through the class keyword; `class A {}`,
|
|
21
21
|
* for example.
|
|
22
22
|
*/
|
|
23
|
-
export default function
|
|
23
|
+
export default function defineToStringTag(classObject: Class<any>): void {
|
|
24
24
|
if (typeof Symbol === 'function' && Symbol.toStringTag) {
|
|
25
25
|
Object.defineProperty(classObject.prototype, Symbol.toStringTag, {
|
|
26
26
|
get() {
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
*
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* The `
|
|
11
|
+
* The `defineToStringTag()` function checks first to see if the runtime
|
|
12
12
|
* supports the `Symbol` class and then if the `Symbol.toStringTag` constant
|
|
13
13
|
* is defined as a `Symbol` instance. If both conditions are met, the
|
|
14
14
|
* Symbol.toStringTag property is defined as a getter that returns the
|
|
15
15
|
* supplied class constructor's name.
|
|
16
16
|
*
|
|
17
|
-
* @method
|
|
17
|
+
* @method defineToStringTag
|
|
18
18
|
*
|
|
19
19
|
* @param {Class<any>} classObject a class such as Object, String, Number but
|
|
20
20
|
* typically one of your own creation through the class keyword; `class A {}`,
|
|
21
21
|
* for example.
|
|
22
22
|
*/
|
|
23
|
-
export default function
|
|
23
|
+
export default function defineToStringTag(classObject) {
|
|
24
24
|
if (typeof Symbol === 'function' && Symbol.toStringTag) {
|
|
25
25
|
Object.defineProperty(classObject.prototype, Symbol.toStringTag, {
|
|
26
26
|
get: function get() {
|
package/jsutils/inspect.js
CHANGED
|
@@ -5,21 +5,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = inspect;
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
var _nodejsCustomInspectSymbol = _interopRequireDefault(require("./nodejsCustomInspectSymbol"));
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
* Copyright (c) 2015-present, Facebook, Inc.
|
|
12
|
-
*
|
|
13
|
-
* This source code is licensed under the MIT license found in the
|
|
14
|
-
* LICENSE file in the root directory of this source tree.
|
|
15
|
-
*
|
|
16
|
-
* strict
|
|
17
|
-
*/
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
11
|
|
|
12
|
+
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
13
|
+
|
|
14
|
+
var MAX_ARRAY_LENGTH = 10;
|
|
15
|
+
var MAX_RECURSIVE_DEPTH = 2;
|
|
19
16
|
/**
|
|
20
17
|
* Used to print values in error messages.
|
|
21
18
|
*/
|
|
19
|
+
|
|
22
20
|
function inspect(value) {
|
|
21
|
+
return formatValue(value, []);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function formatValue(value, seenValues) {
|
|
23
25
|
switch (_typeof(value)) {
|
|
24
26
|
case 'string':
|
|
25
27
|
return JSON.stringify(value);
|
|
@@ -28,22 +30,106 @@ function inspect(value) {
|
|
|
28
30
|
return value.name ? "[function ".concat(value.name, "]") : '[function]';
|
|
29
31
|
|
|
30
32
|
case 'object':
|
|
31
|
-
|
|
32
|
-
if (typeof value.inspect === 'function') {
|
|
33
|
-
return value.inspect();
|
|
34
|
-
} else if (Array.isArray(value)) {
|
|
35
|
-
return '[' + value.map(inspect).join(', ') + ']';
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
var properties = Object.keys(value).map(function (k) {
|
|
39
|
-
return "".concat(k, ": ").concat(inspect(value[k]));
|
|
40
|
-
}).join(', ');
|
|
41
|
-
return properties ? '{ ' + properties + ' }' : '{}';
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return String(value);
|
|
33
|
+
return formatObjectValue(value, seenValues);
|
|
45
34
|
|
|
46
35
|
default:
|
|
47
36
|
return String(value);
|
|
48
37
|
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function formatObjectValue(value, previouslySeenValues) {
|
|
41
|
+
if (previouslySeenValues.indexOf(value) !== -1) {
|
|
42
|
+
return '[Circular]';
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
var seenValues = [].concat(previouslySeenValues, [value]);
|
|
46
|
+
|
|
47
|
+
if (value) {
|
|
48
|
+
var customInspectFn = getCustomFn(value);
|
|
49
|
+
|
|
50
|
+
if (customInspectFn) {
|
|
51
|
+
// $FlowFixMe(>=0.90.0)
|
|
52
|
+
var customValue = customInspectFn.call(value); // check for infinite recursion
|
|
53
|
+
|
|
54
|
+
if (customValue !== value) {
|
|
55
|
+
return typeof customValue === 'string' ? customValue : formatValue(customValue, seenValues);
|
|
56
|
+
}
|
|
57
|
+
} else if (Array.isArray(value)) {
|
|
58
|
+
return formatArray(value, seenValues);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return formatObject(value, seenValues);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return String(value);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function formatObject(object, seenValues) {
|
|
68
|
+
var keys = Object.keys(object);
|
|
69
|
+
|
|
70
|
+
if (keys.length === 0) {
|
|
71
|
+
return '{}';
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (seenValues.length > MAX_RECURSIVE_DEPTH) {
|
|
75
|
+
return '[' + getObjectTag(object) + ']';
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
var properties = keys.map(function (key) {
|
|
79
|
+
var value = formatValue(object[key], seenValues);
|
|
80
|
+
return key + ': ' + value;
|
|
81
|
+
});
|
|
82
|
+
return '{ ' + properties.join(', ') + ' }';
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function formatArray(array, seenValues) {
|
|
86
|
+
if (array.length === 0) {
|
|
87
|
+
return '[]';
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (seenValues.length > MAX_RECURSIVE_DEPTH) {
|
|
91
|
+
return '[Array]';
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
var len = Math.min(MAX_ARRAY_LENGTH, array.length);
|
|
95
|
+
var remaining = array.length - len;
|
|
96
|
+
var items = [];
|
|
97
|
+
|
|
98
|
+
for (var i = 0; i < len; ++i) {
|
|
99
|
+
items.push(formatValue(array[i], seenValues));
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (remaining === 1) {
|
|
103
|
+
items.push('... 1 more item');
|
|
104
|
+
} else if (remaining > 1) {
|
|
105
|
+
items.push("... ".concat(remaining, " more items"));
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return '[' + items.join(', ') + ']';
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function getCustomFn(object) {
|
|
112
|
+
var customInspectFn = object[String(_nodejsCustomInspectSymbol.default)];
|
|
113
|
+
|
|
114
|
+
if (typeof customInspectFn === 'function') {
|
|
115
|
+
return customInspectFn;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
if (typeof object.inspect === 'function') {
|
|
119
|
+
return object.inspect;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function getObjectTag(object) {
|
|
124
|
+
var tag = Object.prototype.toString.call(object).replace(/^\[object /, '').replace(/]$/, '');
|
|
125
|
+
|
|
126
|
+
if (tag === 'Object' && typeof object.constructor === 'function') {
|
|
127
|
+
var name = object.constructor.name;
|
|
128
|
+
|
|
129
|
+
if (typeof name === 'string') {
|
|
130
|
+
return name;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
return tag;
|
|
49
135
|
}
|
package/jsutils/inspect.js.flow
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -7,30 +7,128 @@
|
|
|
7
7
|
* @flow strict
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
+
import nodejsCustomInspectSymbol from './nodejsCustomInspectSymbol';
|
|
11
|
+
|
|
12
|
+
const MAX_ARRAY_LENGTH = 10;
|
|
13
|
+
const MAX_RECURSIVE_DEPTH = 2;
|
|
14
|
+
|
|
10
15
|
/**
|
|
11
16
|
* Used to print values in error messages.
|
|
12
17
|
*/
|
|
13
18
|
export default function inspect(value: mixed): string {
|
|
19
|
+
return formatValue(value, []);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function formatValue(value, seenValues) {
|
|
14
23
|
switch (typeof value) {
|
|
15
24
|
case 'string':
|
|
16
25
|
return JSON.stringify(value);
|
|
17
26
|
case 'function':
|
|
18
27
|
return value.name ? `[function ${value.name}]` : '[function]';
|
|
19
28
|
case 'object':
|
|
20
|
-
|
|
21
|
-
if (typeof value.inspect === 'function') {
|
|
22
|
-
return value.inspect();
|
|
23
|
-
} else if (Array.isArray(value)) {
|
|
24
|
-
return '[' + value.map(inspect).join(', ') + ']';
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const properties = Object.keys(value)
|
|
28
|
-
.map(k => `${k}: ${inspect(value[k])}`)
|
|
29
|
-
.join(', ');
|
|
30
|
-
return properties ? '{ ' + properties + ' }' : '{}';
|
|
31
|
-
}
|
|
32
|
-
return String(value);
|
|
29
|
+
return formatObjectValue(value, seenValues);
|
|
33
30
|
default:
|
|
34
31
|
return String(value);
|
|
35
32
|
}
|
|
36
33
|
}
|
|
34
|
+
|
|
35
|
+
function formatObjectValue(value, previouslySeenValues) {
|
|
36
|
+
if (previouslySeenValues.indexOf(value) !== -1) {
|
|
37
|
+
return '[Circular]';
|
|
38
|
+
}
|
|
39
|
+
const seenValues = [...previouslySeenValues, value];
|
|
40
|
+
|
|
41
|
+
if (value) {
|
|
42
|
+
const customInspectFn = getCustomFn(value);
|
|
43
|
+
|
|
44
|
+
if (customInspectFn) {
|
|
45
|
+
// $FlowFixMe(>=0.90.0)
|
|
46
|
+
const customValue = customInspectFn.call(value);
|
|
47
|
+
|
|
48
|
+
// check for infinite recursion
|
|
49
|
+
if (customValue !== value) {
|
|
50
|
+
return typeof customValue === 'string'
|
|
51
|
+
? customValue
|
|
52
|
+
: formatValue(customValue, seenValues);
|
|
53
|
+
}
|
|
54
|
+
} else if (Array.isArray(value)) {
|
|
55
|
+
return formatArray(value, seenValues);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return formatObject(value, seenValues);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return String(value);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function formatObject(object, seenValues) {
|
|
65
|
+
const keys = Object.keys(object);
|
|
66
|
+
if (keys.length === 0) {
|
|
67
|
+
return '{}';
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (seenValues.length > MAX_RECURSIVE_DEPTH) {
|
|
71
|
+
return '[' + getObjectTag(object) + ']';
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const properties = keys.map(key => {
|
|
75
|
+
const value = formatValue(object[key], seenValues);
|
|
76
|
+
return key + ': ' + value;
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
return '{ ' + properties.join(', ') + ' }';
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function formatArray(array, seenValues) {
|
|
83
|
+
if (array.length === 0) {
|
|
84
|
+
return '[]';
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (seenValues.length > MAX_RECURSIVE_DEPTH) {
|
|
88
|
+
return '[Array]';
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const len = Math.min(MAX_ARRAY_LENGTH, array.length);
|
|
92
|
+
const remaining = array.length - len;
|
|
93
|
+
const items = [];
|
|
94
|
+
|
|
95
|
+
for (let i = 0; i < len; ++i) {
|
|
96
|
+
items.push(formatValue(array[i], seenValues));
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (remaining === 1) {
|
|
100
|
+
items.push('... 1 more item');
|
|
101
|
+
} else if (remaining > 1) {
|
|
102
|
+
items.push(`... ${remaining} more items`);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
return '[' + items.join(', ') + ']';
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function getCustomFn(object) {
|
|
109
|
+
const customInspectFn = object[String(nodejsCustomInspectSymbol)];
|
|
110
|
+
|
|
111
|
+
if (typeof customInspectFn === 'function') {
|
|
112
|
+
return customInspectFn;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (typeof object.inspect === 'function') {
|
|
116
|
+
return object.inspect;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function getObjectTag(object) {
|
|
121
|
+
const tag = Object.prototype.toString
|
|
122
|
+
.call(object)
|
|
123
|
+
.replace(/^\[object /, '')
|
|
124
|
+
.replace(/]$/, '');
|
|
125
|
+
|
|
126
|
+
if (tag === 'Object' && typeof object.constructor === 'function') {
|
|
127
|
+
const name = object.constructor.name;
|
|
128
|
+
if (typeof name === 'string') {
|
|
129
|
+
return name;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return tag;
|
|
134
|
+
}
|