graphql 15.2.0 → 15.5.0
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 +19 -10
- package/error/GraphQLError.js +8 -8
- package/error/GraphQLError.js.flow +2 -3
- package/error/GraphQLError.mjs +2 -2
- package/error/formatError.js +1 -1
- package/error/formatError.js.flow +0 -1
- package/error/index.js +4 -4
- package/error/index.js.flow +0 -1
- package/error/locatedError.d.ts +2 -2
- package/error/locatedError.js +10 -5
- package/error/locatedError.js.flow +10 -4
- package/error/locatedError.mjs +6 -4
- package/error/syntaxError.js +1 -1
- package/error/syntaxError.js.flow +0 -1
- package/execution/execute.d.ts +11 -15
- package/execution/execute.js +110 -110
- package/execution/execute.js.flow +132 -139
- package/execution/execute.mjs +92 -88
- package/execution/index.d.ts +1 -0
- package/execution/index.js +3 -3
- package/execution/index.js.flow +6 -2
- package/execution/values.js +11 -11
- package/execution/values.js.flow +0 -1
- package/graphql.js +5 -5
- package/graphql.js.flow +0 -1
- package/index.d.ts +2 -0
- package/index.js +9 -9
- package/index.js.flow +5 -2
- package/jsutils/ObjMap.js.flow +0 -1
- package/jsutils/Path.js.flow +0 -1
- package/jsutils/PromiseOrValue.js.flow +0 -1
- package/jsutils/defineInspect.js +2 -2
- package/jsutils/defineInspect.js.flow +0 -1
- package/jsutils/devAssert.js.flow +0 -1
- package/jsutils/didYouMean.js.flow +0 -1
- package/jsutils/identityFunc.js.flow +0 -1
- package/jsutils/inspect.js +1 -2
- package/jsutils/inspect.js.flow +10 -8
- package/jsutils/inspect.mjs +1 -1
- package/jsutils/instanceOf.js.flow +2 -3
- package/jsutils/invariant.js.flow +0 -1
- package/jsutils/isAsyncIterable.js +13 -0
- package/jsutils/isAsyncIterable.js.flow +14 -0
- package/jsutils/isAsyncIterable.mjs +10 -0
- package/jsutils/isObjectLike.js.flow +0 -1
- package/jsutils/isPromise.js.flow +0 -1
- package/jsutils/keyMap.js.flow +0 -1
- package/jsutils/keyValMap.js.flow +0 -1
- package/jsutils/mapValue.js +1 -1
- package/jsutils/mapValue.js.flow +0 -1
- package/jsutils/memoize3.js +2 -5
- package/jsutils/memoize3.js.flow +2 -5
- package/jsutils/memoize3.mjs +2 -5
- package/jsutils/naturalCompare.js +69 -0
- package/jsutils/naturalCompare.js.flow +59 -0
- package/jsutils/naturalCompare.mjs +61 -0
- package/jsutils/nodejsCustomInspectSymbol.js.flow +0 -1
- package/jsutils/printPathArray.js.flow +0 -1
- package/jsutils/promiseForObject.js.flow +0 -1
- package/jsutils/promiseReduce.js +1 -1
- package/jsutils/promiseReduce.js.flow +0 -1
- package/jsutils/safeArrayFrom.js +73 -0
- package/jsutils/safeArrayFrom.js.flow +59 -0
- package/jsutils/safeArrayFrom.mjs +66 -0
- package/jsutils/suggestionList.js +5 -1
- package/jsutils/suggestionList.js.flow +3 -2
- package/jsutils/suggestionList.mjs +3 -1
- package/jsutils/toObjMap.js +1 -1
- package/jsutils/toObjMap.js.flow +0 -1
- package/language/ast.js +1 -1
- package/language/ast.js.flow +0 -1
- package/language/blockString.d.ts +1 -1
- package/language/blockString.js +53 -32
- package/language/blockString.js.flow +51 -36
- package/language/blockString.mjs +54 -33
- package/language/directiveLocation.js.flow +0 -1
- package/language/experimentalOnlineParser/grammar.d.ts +1006 -0
- package/language/experimentalOnlineParser/grammar.js +987 -0
- package/language/experimentalOnlineParser/grammar.js.flow +1000 -0
- package/language/experimentalOnlineParser/grammar.mjs +980 -0
- package/language/experimentalOnlineParser/index.d.ts +6 -0
- package/language/experimentalOnlineParser/index.js +31 -0
- package/language/experimentalOnlineParser/index.js.flow +7 -0
- package/language/experimentalOnlineParser/index.mjs +1 -0
- package/language/experimentalOnlineParser/onlineParser.d.ts +125 -0
- package/language/experimentalOnlineParser/onlineParser.js +604 -0
- package/language/experimentalOnlineParser/onlineParser.js.flow +723 -0
- package/language/experimentalOnlineParser/onlineParser.mjs +587 -0
- package/language/index.js +12 -12
- package/language/index.js.flow +0 -1
- package/language/kinds.js.flow +0 -1
- package/language/lexer.js +242 -183
- package/language/lexer.js.flow +188 -184
- package/language/lexer.mjs +238 -179
- package/language/location.js.flow +0 -1
- package/language/parser.js +73 -68
- package/language/parser.js.flow +62 -57
- package/language/parser.mjs +64 -60
- package/language/predicates.js +1 -1
- package/language/predicates.js.flow +0 -1
- package/language/printLocation.js +1 -1
- package/language/printLocation.js.flow +0 -1
- package/language/printer.js +20 -13
- package/language/printer.js.flow +26 -25
- package/language/printer.mjs +18 -11
- package/language/source.d.ts +12 -6
- package/language/source.js +25 -9
- package/language/source.js.flow +26 -9
- package/language/source.mjs +19 -7
- package/language/tokenKind.js.flow +0 -1
- package/language/visitor.d.ts +3 -3
- package/language/visitor.js +5 -5
- package/language/visitor.js.flow +3 -4
- package/language/visitor.mjs +3 -3
- package/package.json +2 -3
- package/polyfills/arrayFrom.js +2 -2
- package/polyfills/arrayFrom.js.flow +1 -2
- package/polyfills/arrayFrom.mjs +1 -1
- package/polyfills/find.js +1 -1
- package/polyfills/find.js.flow +1 -2
- package/polyfills/find.mjs +1 -1
- package/polyfills/isFinite.js +1 -1
- package/polyfills/isFinite.js.flow +1 -2
- package/polyfills/isFinite.mjs +1 -1
- package/polyfills/isInteger.js +1 -1
- package/polyfills/isInteger.js.flow +1 -2
- package/polyfills/isInteger.mjs +1 -1
- package/polyfills/objectEntries.js +1 -1
- package/polyfills/objectEntries.js.flow +1 -2
- package/polyfills/objectEntries.mjs +1 -1
- package/polyfills/objectValues.js +1 -1
- package/polyfills/objectValues.js.flow +1 -2
- package/polyfills/objectValues.mjs +1 -1
- package/polyfills/symbols.js +3 -5
- package/polyfills/symbols.js.flow +9 -6
- package/polyfills/symbols.mjs +3 -5
- package/subscription/index.js +1 -1
- package/subscription/index.js.flow +0 -1
- package/subscription/mapAsyncIterator.js +2 -2
- package/subscription/mapAsyncIterator.js.flow +8 -9
- package/subscription/mapAsyncIterator.mjs +1 -1
- package/subscription/subscribe.js +61 -73
- package/subscription/subscribe.js.flow +71 -85
- package/subscription/subscribe.mjs +53 -65
- package/type/definition.d.ts +17 -9
- package/type/definition.js +37 -32
- package/type/definition.js.flow +93 -63
- package/type/definition.mjs +19 -14
- package/type/directives.js +17 -16
- package/type/directives.js.flow +20 -13
- package/type/directives.mjs +6 -5
- package/type/index.js +6 -6
- package/type/index.js.flow +0 -1
- package/type/introspection.js +86 -65
- package/type/introspection.js.flow +75 -43
- package/type/introspection.mjs +79 -58
- package/type/scalars.js +9 -9
- package/type/scalars.js.flow +1 -2
- package/type/scalars.mjs +1 -1
- package/type/schema.js +13 -13
- package/type/schema.js.flow +2 -3
- package/type/schema.mjs +1 -1
- package/type/validate.js +52 -19
- package/type/validate.js.flow +54 -8
- package/type/validate.mjs +43 -9
- package/utilities/TypeInfo.js +7 -7
- package/utilities/TypeInfo.js.flow +1 -2
- package/utilities/assertValidName.js +2 -2
- package/utilities/assertValidName.js.flow +0 -1
- package/utilities/astFromValue.js +14 -16
- package/utilities/astFromValue.js.flow +6 -7
- package/utilities/astFromValue.mjs +6 -7
- package/utilities/buildASTSchema.js +17 -27
- package/utilities/buildASTSchema.js.flow +5 -21
- package/utilities/buildASTSchema.mjs +11 -21
- package/utilities/buildClientSchema.js +16 -15
- package/utilities/buildClientSchema.js.flow +28 -12
- package/utilities/buildClientSchema.mjs +5 -4
- package/utilities/coerceInputValue.js +17 -18
- package/utilities/coerceInputValue.js.flow +12 -10
- package/utilities/coerceInputValue.mjs +7 -7
- package/utilities/concatAST.js +9 -8
- package/utilities/concatAST.js.flow +8 -8
- package/utilities/concatAST.mjs +9 -6
- package/utilities/extendSchema.js +26 -19
- package/utilities/extendSchema.js.flow +19 -7
- package/utilities/extendSchema.mjs +8 -1
- package/utilities/findBreakingChanges.js +15 -11
- package/utilities/findBreakingChanges.js.flow +6 -3
- package/utilities/findBreakingChanges.mjs +5 -2
- package/utilities/findDeprecatedUsages.js +2 -2
- package/utilities/findDeprecatedUsages.js.flow +0 -1
- package/utilities/getIntrospectionQuery.d.ts +6 -0
- package/utilities/getIntrospectionQuery.js +8 -2
- package/utilities/getIntrospectionQuery.js.flow +17 -5
- package/utilities/getIntrospectionQuery.mjs +8 -2
- package/utilities/getOperationAST.js +1 -1
- package/utilities/getOperationAST.js.flow +0 -1
- package/utilities/getOperationRootType.js +1 -1
- package/utilities/getOperationRootType.js.flow +0 -1
- package/utilities/index.d.ts +3 -0
- package/utilities/index.js +22 -22
- package/utilities/index.js.flow +0 -1
- package/utilities/introspectionFromSchema.js +7 -5
- package/utilities/introspectionFromSchema.js.flow +2 -1
- package/utilities/introspectionFromSchema.mjs +3 -1
- package/utilities/lexicographicSortSchema.js +13 -9
- package/utilities/lexicographicSortSchema.js.flow +21 -13
- package/utilities/lexicographicSortSchema.mjs +5 -2
- package/utilities/printSchema.js +15 -16
- package/utilities/printSchema.js.flow +23 -16
- package/utilities/printSchema.mjs +5 -6
- package/utilities/separateOperations.js +46 -42
- package/utilities/separateOperations.js.flow +46 -37
- package/utilities/separateOperations.mjs +44 -40
- package/utilities/stripIgnoredCharacters.js +6 -16
- package/utilities/stripIgnoredCharacters.js.flow +4 -13
- package/utilities/stripIgnoredCharacters.mjs +3 -10
- package/utilities/typeComparators.js +1 -1
- package/utilities/typeComparators.js.flow +0 -1
- package/utilities/typeFromAST.js +6 -6
- package/utilities/typeFromAST.js.flow +2 -3
- package/utilities/typeFromAST.mjs +2 -2
- package/utilities/typedQueryDocumentNode.d.ts +20 -0
- package/utilities/valueFromAST.js +6 -6
- package/utilities/valueFromAST.js.flow +4 -2
- package/utilities/valueFromASTUntyped.js +4 -4
- package/utilities/valueFromASTUntyped.js.flow +0 -1
- package/validation/ValidationContext.js +3 -3
- package/validation/ValidationContext.js.flow +3 -4
- package/validation/index.js +38 -38
- package/validation/index.js.flow +0 -1
- package/validation/rules/ExecutableDefinitions.js +1 -1
- package/validation/rules/ExecutableDefinitions.js.flow +0 -1
- package/validation/rules/ExecutableDefinitionsRule.js +3 -3
- package/validation/rules/ExecutableDefinitionsRule.js.flow +0 -1
- package/validation/rules/FieldsOnCorrectTypeRule.js +8 -6
- package/validation/rules/FieldsOnCorrectTypeRule.js.flow +2 -2
- package/validation/rules/FieldsOnCorrectTypeRule.mjs +2 -1
- package/validation/rules/FragmentsOnCompositeTypesRule.js +4 -4
- package/validation/rules/FragmentsOnCompositeTypesRule.js.flow +0 -1
- package/validation/rules/KnownArgumentNamesRule.js +5 -5
- package/validation/rules/KnownArgumentNamesRule.js.flow +1 -1
- package/validation/rules/KnownDirectivesRule.js +6 -6
- package/validation/rules/KnownDirectivesRule.js.flow +4 -3
- package/validation/rules/KnownFragmentNamesRule.js +1 -1
- package/validation/rules/KnownFragmentNamesRule.js.flow +0 -1
- package/validation/rules/KnownTypeNamesRule.js +6 -6
- package/validation/rules/KnownTypeNamesRule.js.flow +1 -2
- package/validation/rules/LoneAnonymousOperationRule.js +2 -2
- package/validation/rules/LoneAnonymousOperationRule.js.flow +0 -1
- package/validation/rules/LoneSchemaDefinition.js +1 -1
- package/validation/rules/LoneSchemaDefinition.js.flow +0 -1
- package/validation/rules/LoneSchemaDefinitionRule.js +1 -1
- package/validation/rules/LoneSchemaDefinitionRule.js.flow +0 -1
- package/validation/rules/NoFragmentCyclesRule.js +1 -1
- package/validation/rules/NoFragmentCyclesRule.js.flow +1 -2
- package/validation/rules/NoUndefinedVariablesRule.js +1 -1
- package/validation/rules/NoUndefinedVariablesRule.js.flow +0 -1
- package/validation/rules/NoUnusedFragmentsRule.js +1 -1
- package/validation/rules/NoUnusedFragmentsRule.js.flow +0 -1
- package/validation/rules/NoUnusedVariablesRule.js +1 -1
- package/validation/rules/NoUnusedVariablesRule.js.flow +0 -1
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js +20 -20
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js.flow +14 -14
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +12 -12
- package/validation/rules/PossibleFragmentSpreadsRule.js +5 -5
- package/validation/rules/PossibleFragmentSpreadsRule.js.flow +5 -2
- package/validation/rules/PossibleTypeExtensions.js +1 -1
- package/validation/rules/PossibleTypeExtensions.js.flow +0 -1
- package/validation/rules/PossibleTypeExtensionsRule.js +8 -8
- package/validation/rules/PossibleTypeExtensionsRule.js.flow +6 -4
- package/validation/rules/ProvidedRequiredArgumentsRule.js +7 -7
- package/validation/rules/ProvidedRequiredArgumentsRule.js.flow +4 -3
- package/validation/rules/ScalarLeafsRule.js +3 -3
- package/validation/rules/ScalarLeafsRule.js.flow +0 -1
- package/validation/rules/SingleFieldSubscriptionsRule.js +1 -1
- package/validation/rules/SingleFieldSubscriptionsRule.js.flow +0 -1
- package/validation/rules/UniqueArgumentNamesRule.js +1 -1
- package/validation/rules/UniqueArgumentNamesRule.js.flow +0 -1
- package/validation/rules/UniqueDirectiveNames.js +1 -1
- package/validation/rules/UniqueDirectiveNames.js.flow +0 -1
- package/validation/rules/UniqueDirectiveNamesRule.js +2 -2
- package/validation/rules/UniqueDirectiveNamesRule.js.flow +0 -1
- package/validation/rules/UniqueDirectiveNamesRule.mjs +1 -1
- package/validation/rules/UniqueDirectivesPerLocationRule.js +4 -4
- package/validation/rules/UniqueDirectivesPerLocationRule.js.flow +0 -1
- package/validation/rules/UniqueEnumValueNames.js +1 -1
- package/validation/rules/UniqueEnumValueNames.js.flow +0 -1
- package/validation/rules/UniqueEnumValueNamesRule.js +2 -2
- package/validation/rules/UniqueEnumValueNamesRule.js.flow +7 -2
- package/validation/rules/UniqueFieldDefinitionNames.js +1 -1
- package/validation/rules/UniqueFieldDefinitionNames.js.flow +0 -1
- package/validation/rules/UniqueFieldDefinitionNamesRule.js +3 -3
- package/validation/rules/UniqueFieldDefinitionNamesRule.js.flow +13 -4
- package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +1 -1
- package/validation/rules/UniqueFragmentNamesRule.js +1 -1
- package/validation/rules/UniqueFragmentNamesRule.js.flow +0 -1
- package/validation/rules/UniqueInputFieldNamesRule.js +1 -1
- package/validation/rules/UniqueInputFieldNamesRule.js.flow +0 -1
- package/validation/rules/UniqueOperationNamesRule.js +1 -1
- package/validation/rules/UniqueOperationNamesRule.js.flow +0 -1
- package/validation/rules/UniqueOperationTypes.js +1 -1
- package/validation/rules/UniqueOperationTypes.js.flow +0 -1
- package/validation/rules/UniqueOperationTypesRule.js +1 -1
- package/validation/rules/UniqueOperationTypesRule.js.flow +7 -2
- package/validation/rules/UniqueTypeNames.js +1 -1
- package/validation/rules/UniqueTypeNames.js.flow +0 -1
- package/validation/rules/UniqueTypeNamesRule.js +2 -2
- package/validation/rules/UniqueTypeNamesRule.js.flow +0 -1
- package/validation/rules/UniqueTypeNamesRule.mjs +1 -1
- package/validation/rules/UniqueVariableNamesRule.js +1 -1
- package/validation/rules/UniqueVariableNamesRule.js.flow +0 -1
- package/validation/rules/ValuesOfCorrectTypeRule.js +8 -8
- package/validation/rules/ValuesOfCorrectTypeRule.js.flow +0 -1
- package/validation/rules/VariablesAreInputTypesRule.js +4 -4
- package/validation/rules/VariablesAreInputTypesRule.js.flow +0 -1
- package/validation/rules/VariablesInAllowedPositionRule.js +6 -6
- package/validation/rules/VariablesInAllowedPositionRule.js.flow +0 -1
- package/validation/rules/custom/NoDeprecatedCustomRule.js +47 -9
- package/validation/rules/custom/NoDeprecatedCustomRule.js.flow +56 -13
- package/validation/rules/custom/NoDeprecatedCustomRule.mjs +43 -8
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +3 -3
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.flow +0 -1
- package/validation/specifiedRules.js +33 -33
- package/validation/specifiedRules.js.flow +0 -1
- package/validation/validate.js +7 -7
- package/validation/validate.js.flow +4 -5
- package/version.js +2 -2
- package/version.js.flow +2 -3
- package/version.mjs +2 -2
- package/jsutils/isCollection.js +0 -47
- package/jsutils/isCollection.js.flow +0 -39
- package/jsutils/isCollection.mjs +0 -40
- package/polyfills/flatMap.js +0 -30
- package/polyfills/flatMap.js.flow +0 -28
- package/polyfills/flatMap.mjs +0 -23
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
+
import invariant from '../../../jsutils/invariant';
|
|
2
3
|
|
|
3
4
|
import { GraphQLError } from '../../../error/GraphQLError';
|
|
4
5
|
|
|
5
|
-
import type { EnumValueNode, FieldNode } from '../../../language/ast';
|
|
6
6
|
import type { ASTVisitor } from '../../../language/visitor';
|
|
7
7
|
|
|
8
|
-
import { getNamedType } from '../../../type/definition';
|
|
8
|
+
import { getNamedType, isInputObjectType } from '../../../type/definition';
|
|
9
9
|
|
|
10
10
|
import type { ValidationContext } from '../../ValidationContext';
|
|
11
11
|
|
|
@@ -21,27 +21,70 @@ import type { ValidationContext } from '../../ValidationContext';
|
|
|
21
21
|
*/
|
|
22
22
|
export function NoDeprecatedCustomRule(context: ValidationContext): ASTVisitor {
|
|
23
23
|
return {
|
|
24
|
-
Field(node
|
|
24
|
+
Field(node) {
|
|
25
25
|
const fieldDef = context.getFieldDef();
|
|
26
|
-
const
|
|
27
|
-
if (
|
|
26
|
+
const deprecationReason = fieldDef?.deprecationReason;
|
|
27
|
+
if (fieldDef && deprecationReason != null) {
|
|
28
|
+
const parentType = context.getParentType();
|
|
29
|
+
invariant(parentType != null);
|
|
28
30
|
context.reportError(
|
|
29
31
|
new GraphQLError(
|
|
30
|
-
`The field ${parentType.name}.${fieldDef.name} is deprecated.
|
|
31
|
-
fieldDef.deprecationReason,
|
|
32
|
+
`The field ${parentType.name}.${fieldDef.name} is deprecated. ${deprecationReason}`,
|
|
32
33
|
node,
|
|
33
34
|
),
|
|
34
35
|
);
|
|
35
36
|
}
|
|
36
37
|
},
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
const
|
|
40
|
-
if (
|
|
38
|
+
Argument(node) {
|
|
39
|
+
const argDef = context.getArgument();
|
|
40
|
+
const deprecationReason = argDef?.deprecationReason;
|
|
41
|
+
if (argDef && deprecationReason != null) {
|
|
42
|
+
const directiveDef = context.getDirective();
|
|
43
|
+
if (directiveDef != null) {
|
|
44
|
+
context.reportError(
|
|
45
|
+
new GraphQLError(
|
|
46
|
+
`Directive "@${directiveDef.name}" argument "${argDef.name}" is deprecated. ${deprecationReason}`,
|
|
47
|
+
node,
|
|
48
|
+
),
|
|
49
|
+
);
|
|
50
|
+
} else {
|
|
51
|
+
const parentType = context.getParentType();
|
|
52
|
+
const fieldDef = context.getFieldDef();
|
|
53
|
+
invariant(parentType != null && fieldDef != null);
|
|
54
|
+
context.reportError(
|
|
55
|
+
new GraphQLError(
|
|
56
|
+
`Field "${parentType.name}.${fieldDef.name}" argument "${argDef.name}" is deprecated. ${deprecationReason}`,
|
|
57
|
+
node,
|
|
58
|
+
),
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
ObjectField(node) {
|
|
64
|
+
const inputObjectDef = getNamedType(context.getParentInputType());
|
|
65
|
+
if (isInputObjectType(inputObjectDef)) {
|
|
66
|
+
const inputFieldDef = inputObjectDef.getFields()[node.name.value];
|
|
67
|
+
// flowlint-next-line unnecessary-optional-chain:off
|
|
68
|
+
const deprecationReason = inputFieldDef?.deprecationReason;
|
|
69
|
+
if (deprecationReason != null) {
|
|
70
|
+
context.reportError(
|
|
71
|
+
new GraphQLError(
|
|
72
|
+
`The input field ${inputObjectDef.name}.${inputFieldDef.name} is deprecated. ${deprecationReason}`,
|
|
73
|
+
node,
|
|
74
|
+
),
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
EnumValue(node) {
|
|
80
|
+
const enumValueDef = context.getEnumValue();
|
|
81
|
+
const deprecationReason = enumValueDef?.deprecationReason;
|
|
82
|
+
if (enumValueDef && deprecationReason != null) {
|
|
83
|
+
const enumTypeDef = getNamedType(context.getInputType());
|
|
84
|
+
invariant(enumTypeDef != null);
|
|
41
85
|
context.reportError(
|
|
42
86
|
new GraphQLError(
|
|
43
|
-
`The enum value "${
|
|
44
|
-
enumValue.deprecationReason,
|
|
87
|
+
`The enum value "${enumTypeDef.name}.${enumValueDef.name}" is deprecated. ${deprecationReason}`,
|
|
45
88
|
node,
|
|
46
89
|
),
|
|
47
90
|
);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import invariant from "../../../jsutils/invariant.mjs";
|
|
1
2
|
import { GraphQLError } from "../../../error/GraphQLError.mjs";
|
|
2
|
-
import { getNamedType } from "../../../type/definition.mjs";
|
|
3
|
+
import { getNamedType, isInputObjectType } from "../../../type/definition.mjs";
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* No deprecated
|
|
@@ -15,18 +16,52 @@ export function NoDeprecatedCustomRule(context) {
|
|
|
15
16
|
return {
|
|
16
17
|
Field: function Field(node) {
|
|
17
18
|
var fieldDef = context.getFieldDef();
|
|
18
|
-
var
|
|
19
|
+
var deprecationReason = fieldDef === null || fieldDef === void 0 ? void 0 : fieldDef.deprecationReason;
|
|
19
20
|
|
|
20
|
-
if (
|
|
21
|
-
|
|
21
|
+
if (fieldDef && deprecationReason != null) {
|
|
22
|
+
var parentType = context.getParentType();
|
|
23
|
+
parentType != null || invariant(0);
|
|
24
|
+
context.reportError(new GraphQLError("The field ".concat(parentType.name, ".").concat(fieldDef.name, " is deprecated. ").concat(deprecationReason), node));
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
Argument: function Argument(node) {
|
|
28
|
+
var argDef = context.getArgument();
|
|
29
|
+
var deprecationReason = argDef === null || argDef === void 0 ? void 0 : argDef.deprecationReason;
|
|
30
|
+
|
|
31
|
+
if (argDef && deprecationReason != null) {
|
|
32
|
+
var directiveDef = context.getDirective();
|
|
33
|
+
|
|
34
|
+
if (directiveDef != null) {
|
|
35
|
+
context.reportError(new GraphQLError("Directive \"@".concat(directiveDef.name, "\" argument \"").concat(argDef.name, "\" is deprecated. ").concat(deprecationReason), node));
|
|
36
|
+
} else {
|
|
37
|
+
var parentType = context.getParentType();
|
|
38
|
+
var fieldDef = context.getFieldDef();
|
|
39
|
+
parentType != null && fieldDef != null || invariant(0);
|
|
40
|
+
context.reportError(new GraphQLError("Field \"".concat(parentType.name, ".").concat(fieldDef.name, "\" argument \"").concat(argDef.name, "\" is deprecated. ").concat(deprecationReason), node));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
ObjectField: function ObjectField(node) {
|
|
45
|
+
var inputObjectDef = getNamedType(context.getParentInputType());
|
|
46
|
+
|
|
47
|
+
if (isInputObjectType(inputObjectDef)) {
|
|
48
|
+
var inputFieldDef = inputObjectDef.getFields()[node.name.value]; // flowlint-next-line unnecessary-optional-chain:off
|
|
49
|
+
|
|
50
|
+
var deprecationReason = inputFieldDef === null || inputFieldDef === void 0 ? void 0 : inputFieldDef.deprecationReason;
|
|
51
|
+
|
|
52
|
+
if (deprecationReason != null) {
|
|
53
|
+
context.reportError(new GraphQLError("The input field ".concat(inputObjectDef.name, ".").concat(inputFieldDef.name, " is deprecated. ").concat(deprecationReason), node));
|
|
54
|
+
}
|
|
22
55
|
}
|
|
23
56
|
},
|
|
24
57
|
EnumValue: function EnumValue(node) {
|
|
25
|
-
var
|
|
26
|
-
var
|
|
58
|
+
var enumValueDef = context.getEnumValue();
|
|
59
|
+
var deprecationReason = enumValueDef === null || enumValueDef === void 0 ? void 0 : enumValueDef.deprecationReason;
|
|
27
60
|
|
|
28
|
-
if (
|
|
29
|
-
|
|
61
|
+
if (enumValueDef && deprecationReason != null) {
|
|
62
|
+
var enumTypeDef = getNamedType(context.getInputType());
|
|
63
|
+
enumTypeDef != null || invariant(0);
|
|
64
|
+
context.reportError(new GraphQLError("The enum value \"".concat(enumTypeDef.name, ".").concat(enumValueDef.name, "\" is deprecated. ").concat(deprecationReason), node));
|
|
30
65
|
}
|
|
31
66
|
}
|
|
32
67
|
};
|
|
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.NoSchemaIntrospectionCustomRule = NoSchemaIntrospectionCustomRule;
|
|
7
7
|
|
|
8
|
-
var _GraphQLError = require("../../../error/GraphQLError");
|
|
8
|
+
var _GraphQLError = require("../../../error/GraphQLError.js");
|
|
9
9
|
|
|
10
|
-
var _definition = require("../../../type/definition");
|
|
10
|
+
var _definition = require("../../../type/definition.js");
|
|
11
11
|
|
|
12
|
-
var _introspection = require("../../../type/introspection");
|
|
12
|
+
var _introspection = require("../../../type/introspection.js");
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Prohibit introspection queries
|
|
@@ -5,71 +5,71 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.specifiedSDLRules = exports.specifiedRules = void 0;
|
|
7
7
|
|
|
8
|
-
var _ExecutableDefinitionsRule = require("./rules/ExecutableDefinitionsRule");
|
|
8
|
+
var _ExecutableDefinitionsRule = require("./rules/ExecutableDefinitionsRule.js");
|
|
9
9
|
|
|
10
|
-
var _UniqueOperationNamesRule = require("./rules/UniqueOperationNamesRule");
|
|
10
|
+
var _UniqueOperationNamesRule = require("./rules/UniqueOperationNamesRule.js");
|
|
11
11
|
|
|
12
|
-
var _LoneAnonymousOperationRule = require("./rules/LoneAnonymousOperationRule");
|
|
12
|
+
var _LoneAnonymousOperationRule = require("./rules/LoneAnonymousOperationRule.js");
|
|
13
13
|
|
|
14
|
-
var _SingleFieldSubscriptionsRule = require("./rules/SingleFieldSubscriptionsRule");
|
|
14
|
+
var _SingleFieldSubscriptionsRule = require("./rules/SingleFieldSubscriptionsRule.js");
|
|
15
15
|
|
|
16
|
-
var _KnownTypeNamesRule = require("./rules/KnownTypeNamesRule");
|
|
16
|
+
var _KnownTypeNamesRule = require("./rules/KnownTypeNamesRule.js");
|
|
17
17
|
|
|
18
|
-
var _FragmentsOnCompositeTypesRule = require("./rules/FragmentsOnCompositeTypesRule");
|
|
18
|
+
var _FragmentsOnCompositeTypesRule = require("./rules/FragmentsOnCompositeTypesRule.js");
|
|
19
19
|
|
|
20
|
-
var _VariablesAreInputTypesRule = require("./rules/VariablesAreInputTypesRule");
|
|
20
|
+
var _VariablesAreInputTypesRule = require("./rules/VariablesAreInputTypesRule.js");
|
|
21
21
|
|
|
22
|
-
var _ScalarLeafsRule = require("./rules/ScalarLeafsRule");
|
|
22
|
+
var _ScalarLeafsRule = require("./rules/ScalarLeafsRule.js");
|
|
23
23
|
|
|
24
|
-
var _FieldsOnCorrectTypeRule = require("./rules/FieldsOnCorrectTypeRule");
|
|
24
|
+
var _FieldsOnCorrectTypeRule = require("./rules/FieldsOnCorrectTypeRule.js");
|
|
25
25
|
|
|
26
|
-
var _UniqueFragmentNamesRule = require("./rules/UniqueFragmentNamesRule");
|
|
26
|
+
var _UniqueFragmentNamesRule = require("./rules/UniqueFragmentNamesRule.js");
|
|
27
27
|
|
|
28
|
-
var _KnownFragmentNamesRule = require("./rules/KnownFragmentNamesRule");
|
|
28
|
+
var _KnownFragmentNamesRule = require("./rules/KnownFragmentNamesRule.js");
|
|
29
29
|
|
|
30
|
-
var _NoUnusedFragmentsRule = require("./rules/NoUnusedFragmentsRule");
|
|
30
|
+
var _NoUnusedFragmentsRule = require("./rules/NoUnusedFragmentsRule.js");
|
|
31
31
|
|
|
32
|
-
var _PossibleFragmentSpreadsRule = require("./rules/PossibleFragmentSpreadsRule");
|
|
32
|
+
var _PossibleFragmentSpreadsRule = require("./rules/PossibleFragmentSpreadsRule.js");
|
|
33
33
|
|
|
34
|
-
var _NoFragmentCyclesRule = require("./rules/NoFragmentCyclesRule");
|
|
34
|
+
var _NoFragmentCyclesRule = require("./rules/NoFragmentCyclesRule.js");
|
|
35
35
|
|
|
36
|
-
var _UniqueVariableNamesRule = require("./rules/UniqueVariableNamesRule");
|
|
36
|
+
var _UniqueVariableNamesRule = require("./rules/UniqueVariableNamesRule.js");
|
|
37
37
|
|
|
38
|
-
var _NoUndefinedVariablesRule = require("./rules/NoUndefinedVariablesRule");
|
|
38
|
+
var _NoUndefinedVariablesRule = require("./rules/NoUndefinedVariablesRule.js");
|
|
39
39
|
|
|
40
|
-
var _NoUnusedVariablesRule = require("./rules/NoUnusedVariablesRule");
|
|
40
|
+
var _NoUnusedVariablesRule = require("./rules/NoUnusedVariablesRule.js");
|
|
41
41
|
|
|
42
|
-
var _KnownDirectivesRule = require("./rules/KnownDirectivesRule");
|
|
42
|
+
var _KnownDirectivesRule = require("./rules/KnownDirectivesRule.js");
|
|
43
43
|
|
|
44
|
-
var _UniqueDirectivesPerLocationRule = require("./rules/UniqueDirectivesPerLocationRule");
|
|
44
|
+
var _UniqueDirectivesPerLocationRule = require("./rules/UniqueDirectivesPerLocationRule.js");
|
|
45
45
|
|
|
46
|
-
var _KnownArgumentNamesRule = require("./rules/KnownArgumentNamesRule");
|
|
46
|
+
var _KnownArgumentNamesRule = require("./rules/KnownArgumentNamesRule.js");
|
|
47
47
|
|
|
48
|
-
var _UniqueArgumentNamesRule = require("./rules/UniqueArgumentNamesRule");
|
|
48
|
+
var _UniqueArgumentNamesRule = require("./rules/UniqueArgumentNamesRule.js");
|
|
49
49
|
|
|
50
|
-
var _ValuesOfCorrectTypeRule = require("./rules/ValuesOfCorrectTypeRule");
|
|
50
|
+
var _ValuesOfCorrectTypeRule = require("./rules/ValuesOfCorrectTypeRule.js");
|
|
51
51
|
|
|
52
|
-
var _ProvidedRequiredArgumentsRule = require("./rules/ProvidedRequiredArgumentsRule");
|
|
52
|
+
var _ProvidedRequiredArgumentsRule = require("./rules/ProvidedRequiredArgumentsRule.js");
|
|
53
53
|
|
|
54
|
-
var _VariablesInAllowedPositionRule = require("./rules/VariablesInAllowedPositionRule");
|
|
54
|
+
var _VariablesInAllowedPositionRule = require("./rules/VariablesInAllowedPositionRule.js");
|
|
55
55
|
|
|
56
|
-
var _OverlappingFieldsCanBeMergedRule = require("./rules/OverlappingFieldsCanBeMergedRule");
|
|
56
|
+
var _OverlappingFieldsCanBeMergedRule = require("./rules/OverlappingFieldsCanBeMergedRule.js");
|
|
57
57
|
|
|
58
|
-
var _UniqueInputFieldNamesRule = require("./rules/UniqueInputFieldNamesRule");
|
|
58
|
+
var _UniqueInputFieldNamesRule = require("./rules/UniqueInputFieldNamesRule.js");
|
|
59
59
|
|
|
60
|
-
var _LoneSchemaDefinitionRule = require("./rules/LoneSchemaDefinitionRule");
|
|
60
|
+
var _LoneSchemaDefinitionRule = require("./rules/LoneSchemaDefinitionRule.js");
|
|
61
61
|
|
|
62
|
-
var _UniqueOperationTypesRule = require("./rules/UniqueOperationTypesRule");
|
|
62
|
+
var _UniqueOperationTypesRule = require("./rules/UniqueOperationTypesRule.js");
|
|
63
63
|
|
|
64
|
-
var _UniqueTypeNamesRule = require("./rules/UniqueTypeNamesRule");
|
|
64
|
+
var _UniqueTypeNamesRule = require("./rules/UniqueTypeNamesRule.js");
|
|
65
65
|
|
|
66
|
-
var _UniqueEnumValueNamesRule = require("./rules/UniqueEnumValueNamesRule");
|
|
66
|
+
var _UniqueEnumValueNamesRule = require("./rules/UniqueEnumValueNamesRule.js");
|
|
67
67
|
|
|
68
|
-
var _UniqueFieldDefinitionNamesRule = require("./rules/UniqueFieldDefinitionNamesRule");
|
|
68
|
+
var _UniqueFieldDefinitionNamesRule = require("./rules/UniqueFieldDefinitionNamesRule.js");
|
|
69
69
|
|
|
70
|
-
var _UniqueDirectiveNamesRule = require("./rules/UniqueDirectiveNamesRule");
|
|
70
|
+
var _UniqueDirectiveNamesRule = require("./rules/UniqueDirectiveNamesRule.js");
|
|
71
71
|
|
|
72
|
-
var _PossibleTypeExtensionsRule = require("./rules/PossibleTypeExtensionsRule");
|
|
72
|
+
var _PossibleTypeExtensionsRule = require("./rules/PossibleTypeExtensionsRule.js");
|
|
73
73
|
|
|
74
74
|
// Spec Section: "Executable Definitions"
|
|
75
75
|
// Spec Section: "Operation Name Uniqueness"
|
package/validation/validate.js
CHANGED
|
@@ -8,19 +8,19 @@ exports.validateSDL = validateSDL;
|
|
|
8
8
|
exports.assertValidSDL = assertValidSDL;
|
|
9
9
|
exports.assertValidSDLExtension = assertValidSDLExtension;
|
|
10
10
|
|
|
11
|
-
var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
|
|
11
|
+
var _devAssert = _interopRequireDefault(require("../jsutils/devAssert.js"));
|
|
12
12
|
|
|
13
|
-
var _GraphQLError = require("../error/GraphQLError");
|
|
13
|
+
var _GraphQLError = require("../error/GraphQLError.js");
|
|
14
14
|
|
|
15
|
-
var _visitor = require("../language/visitor");
|
|
15
|
+
var _visitor = require("../language/visitor.js");
|
|
16
16
|
|
|
17
|
-
var _validate = require("../type/validate");
|
|
17
|
+
var _validate = require("../type/validate.js");
|
|
18
18
|
|
|
19
|
-
var _TypeInfo = require("../utilities/TypeInfo");
|
|
19
|
+
var _TypeInfo = require("../utilities/TypeInfo.js");
|
|
20
20
|
|
|
21
|
-
var _specifiedRules = require("./specifiedRules");
|
|
21
|
+
var _specifiedRules = require("./specifiedRules.js");
|
|
22
22
|
|
|
23
|
-
var _ValidationContext = require("./ValidationContext");
|
|
23
|
+
var _ValidationContext = require("./ValidationContext.js");
|
|
24
24
|
|
|
25
25
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
26
26
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
import devAssert from '../jsutils/devAssert';
|
|
4
3
|
|
|
5
4
|
import { GraphQLError } from '../error/GraphQLError';
|
|
@@ -35,9 +34,9 @@ import { SDLValidationContext, ValidationContext } from './ValidationContext';
|
|
|
35
34
|
export function validate(
|
|
36
35
|
schema: GraphQLSchema,
|
|
37
36
|
documentAST: DocumentNode,
|
|
38
|
-
rules
|
|
39
|
-
typeInfo
|
|
40
|
-
options
|
|
37
|
+
rules: $ReadOnlyArray<ValidationRule> = specifiedRules,
|
|
38
|
+
typeInfo: TypeInfo = new TypeInfo(schema),
|
|
39
|
+
options: {| maxErrors?: number |} = { maxErrors: undefined },
|
|
41
40
|
): $ReadOnlyArray<GraphQLError> {
|
|
42
41
|
devAssert(documentAST, 'Must provide document.');
|
|
43
42
|
// If the schema used for validation is invalid, throw an error.
|
|
@@ -83,7 +82,7 @@ export function validate(
|
|
|
83
82
|
export function validateSDL(
|
|
84
83
|
documentAST: DocumentNode,
|
|
85
84
|
schemaToExtend?: ?GraphQLSchema,
|
|
86
|
-
rules
|
|
85
|
+
rules: $ReadOnlyArray<SDLValidationRule> = specifiedSDLRules,
|
|
87
86
|
): $ReadOnlyArray<GraphQLError> {
|
|
88
87
|
const errors = [];
|
|
89
88
|
const context = new SDLValidationContext(
|
package/version.js
CHANGED
|
@@ -13,7 +13,7 @@ exports.versionInfo = exports.version = void 0;
|
|
|
13
13
|
/**
|
|
14
14
|
* A string containing the version of the GraphQL.js library
|
|
15
15
|
*/
|
|
16
|
-
var version = '15.
|
|
16
|
+
var version = '15.5.0';
|
|
17
17
|
/**
|
|
18
18
|
* An object containing the components of the GraphQL.js version string
|
|
19
19
|
*/
|
|
@@ -21,7 +21,7 @@ var version = '15.2.0';
|
|
|
21
21
|
exports.version = version;
|
|
22
22
|
var versionInfo = Object.freeze({
|
|
23
23
|
major: 15,
|
|
24
|
-
minor:
|
|
24
|
+
minor: 5,
|
|
25
25
|
patch: 0,
|
|
26
26
|
preReleaseTag: null
|
|
27
27
|
});
|
package/version.js.flow
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
/**
|
|
4
3
|
* Note: This file is autogenerated using "resources/gen-version.js" script and
|
|
5
4
|
* automatically updated by "npm version" command.
|
|
@@ -8,14 +7,14 @@
|
|
|
8
7
|
/**
|
|
9
8
|
* A string containing the version of the GraphQL.js library
|
|
10
9
|
*/
|
|
11
|
-
export const version = '15.
|
|
10
|
+
export const version = '15.5.0';
|
|
12
11
|
|
|
13
12
|
/**
|
|
14
13
|
* An object containing the components of the GraphQL.js version string
|
|
15
14
|
*/
|
|
16
15
|
export const versionInfo = Object.freeze({
|
|
17
16
|
major: 15,
|
|
18
|
-
minor:
|
|
17
|
+
minor: 5,
|
|
19
18
|
patch: 0,
|
|
20
19
|
preReleaseTag: null,
|
|
21
20
|
});
|
package/version.mjs
CHANGED
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
/**
|
|
7
7
|
* A string containing the version of the GraphQL.js library
|
|
8
8
|
*/
|
|
9
|
-
export var version = '15.
|
|
9
|
+
export var version = '15.5.0';
|
|
10
10
|
/**
|
|
11
11
|
* An object containing the components of the GraphQL.js version string
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
export var versionInfo = Object.freeze({
|
|
15
15
|
major: 15,
|
|
16
|
-
minor:
|
|
16
|
+
minor: 5,
|
|
17
17
|
patch: 0,
|
|
18
18
|
preReleaseTag: null
|
|
19
19
|
});
|
package/jsutils/isCollection.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = isCollection;
|
|
7
|
-
|
|
8
|
-
var _symbols = require("../polyfills/symbols");
|
|
9
|
-
|
|
10
|
-
function _typeof(obj) { "@babel/helpers - typeof"; 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); }
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Returns true if the provided object is an Object (i.e. not a string literal)
|
|
14
|
-
* and is either Iterable or Array-like.
|
|
15
|
-
*
|
|
16
|
-
* This may be used in place of [Array.isArray()][isArray] to determine if an
|
|
17
|
-
* object should be iterated-over. It always excludes string literals and
|
|
18
|
-
* includes Arrays (regardless of if it is Iterable). It also includes other
|
|
19
|
-
* Array-like objects such as NodeList, TypedArray, and Buffer.
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
*
|
|
23
|
-
* isCollection([ 1, 2, 3 ]) // true
|
|
24
|
-
* isCollection('ABC') // false
|
|
25
|
-
* isCollection({ length: 1, 0: 'Alpha' }) // true
|
|
26
|
-
* isCollection({ key: 'value' }) // false
|
|
27
|
-
* isCollection(new Map()) // true
|
|
28
|
-
*
|
|
29
|
-
* @param obj
|
|
30
|
-
* An Object value which might implement the Iterable or Array-like protocols.
|
|
31
|
-
* @return {boolean} true if Iterable or Array-like Object.
|
|
32
|
-
*/
|
|
33
|
-
function isCollection(obj) {
|
|
34
|
-
if (obj == null || _typeof(obj) !== 'object') {
|
|
35
|
-
return false;
|
|
36
|
-
} // Is Array like?
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
var length = obj.length;
|
|
40
|
-
|
|
41
|
-
if (typeof length === 'number' && length >= 0 && length % 1 === 0) {
|
|
42
|
-
return true;
|
|
43
|
-
} // Is Iterable?
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return typeof obj[_symbols.SYMBOL_ITERATOR] === 'function';
|
|
47
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
// @flow strict
|
|
2
|
-
|
|
3
|
-
import { SYMBOL_ITERATOR } from '../polyfills/symbols';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Returns true if the provided object is an Object (i.e. not a string literal)
|
|
7
|
-
* and is either Iterable or Array-like.
|
|
8
|
-
*
|
|
9
|
-
* This may be used in place of [Array.isArray()][isArray] to determine if an
|
|
10
|
-
* object should be iterated-over. It always excludes string literals and
|
|
11
|
-
* includes Arrays (regardless of if it is Iterable). It also includes other
|
|
12
|
-
* Array-like objects such as NodeList, TypedArray, and Buffer.
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
*
|
|
16
|
-
* isCollection([ 1, 2, 3 ]) // true
|
|
17
|
-
* isCollection('ABC') // false
|
|
18
|
-
* isCollection({ length: 1, 0: 'Alpha' }) // true
|
|
19
|
-
* isCollection({ key: 'value' }) // false
|
|
20
|
-
* isCollection(new Map()) // true
|
|
21
|
-
*
|
|
22
|
-
* @param obj
|
|
23
|
-
* An Object value which might implement the Iterable or Array-like protocols.
|
|
24
|
-
* @return {boolean} true if Iterable or Array-like Object.
|
|
25
|
-
*/
|
|
26
|
-
export default function isCollection(obj: mixed): boolean {
|
|
27
|
-
if (obj == null || typeof obj !== 'object') {
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// Is Array like?
|
|
32
|
-
const length = obj.length;
|
|
33
|
-
if (typeof length === 'number' && length >= 0 && length % 1 === 0) {
|
|
34
|
-
return true;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// Is Iterable?
|
|
38
|
-
return typeof obj[SYMBOL_ITERATOR] === 'function';
|
|
39
|
-
}
|
package/jsutils/isCollection.mjs
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
function _typeof(obj) { "@babel/helpers - typeof"; 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); }
|
|
2
|
-
|
|
3
|
-
import { SYMBOL_ITERATOR } from "../polyfills/symbols.mjs";
|
|
4
|
-
/**
|
|
5
|
-
* Returns true if the provided object is an Object (i.e. not a string literal)
|
|
6
|
-
* and is either Iterable or Array-like.
|
|
7
|
-
*
|
|
8
|
-
* This may be used in place of [Array.isArray()][isArray] to determine if an
|
|
9
|
-
* object should be iterated-over. It always excludes string literals and
|
|
10
|
-
* includes Arrays (regardless of if it is Iterable). It also includes other
|
|
11
|
-
* Array-like objects such as NodeList, TypedArray, and Buffer.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
*
|
|
15
|
-
* isCollection([ 1, 2, 3 ]) // true
|
|
16
|
-
* isCollection('ABC') // false
|
|
17
|
-
* isCollection({ length: 1, 0: 'Alpha' }) // true
|
|
18
|
-
* isCollection({ key: 'value' }) // false
|
|
19
|
-
* isCollection(new Map()) // true
|
|
20
|
-
*
|
|
21
|
-
* @param obj
|
|
22
|
-
* An Object value which might implement the Iterable or Array-like protocols.
|
|
23
|
-
* @return {boolean} true if Iterable or Array-like Object.
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
export default function isCollection(obj) {
|
|
27
|
-
if (obj == null || _typeof(obj) !== 'object') {
|
|
28
|
-
return false;
|
|
29
|
-
} // Is Array like?
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
var length = obj.length;
|
|
33
|
-
|
|
34
|
-
if (typeof length === 'number' && length >= 0 && length % 1 === 0) {
|
|
35
|
-
return true;
|
|
36
|
-
} // Is Iterable?
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return typeof obj[SYMBOL_ITERATOR] === 'function';
|
|
40
|
-
}
|
package/polyfills/flatMap.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var flatMapMethod = Array.prototype.flatMap;
|
|
8
|
-
/* eslint-disable no-redeclare */
|
|
9
|
-
// $FlowFixMe
|
|
10
|
-
|
|
11
|
-
var flatMap = flatMapMethod ? function (list, fn) {
|
|
12
|
-
return flatMapMethod.call(list, fn);
|
|
13
|
-
} : function (list, fn) {
|
|
14
|
-
var result = [];
|
|
15
|
-
|
|
16
|
-
for (var _i2 = 0; _i2 < list.length; _i2++) {
|
|
17
|
-
var _item = list[_i2];
|
|
18
|
-
var value = fn(_item);
|
|
19
|
-
|
|
20
|
-
if (Array.isArray(value)) {
|
|
21
|
-
result = result.concat(value);
|
|
22
|
-
} else {
|
|
23
|
-
result.push(value);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return result;
|
|
28
|
-
};
|
|
29
|
-
var _default = flatMap;
|
|
30
|
-
exports.default = _default;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
// @flow strict
|
|
2
|
-
|
|
3
|
-
declare function flatMap<T, U>(
|
|
4
|
-
list: $ReadOnlyArray<T>,
|
|
5
|
-
fn: (item: T, index: number) => $ReadOnlyArray<U> | U,
|
|
6
|
-
): Array<U>;
|
|
7
|
-
|
|
8
|
-
const flatMapMethod = Array.prototype.flatMap;
|
|
9
|
-
|
|
10
|
-
/* eslint-disable no-redeclare */
|
|
11
|
-
// $FlowFixMe
|
|
12
|
-
const flatMap = flatMapMethod
|
|
13
|
-
? function (list, fn) {
|
|
14
|
-
return flatMapMethod.call(list, fn);
|
|
15
|
-
}
|
|
16
|
-
: function (list, fn) {
|
|
17
|
-
let result = [];
|
|
18
|
-
for (const item of list) {
|
|
19
|
-
const value = fn(item);
|
|
20
|
-
if (Array.isArray(value)) {
|
|
21
|
-
result = result.concat(value);
|
|
22
|
-
} else {
|
|
23
|
-
result.push(value);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return result;
|
|
27
|
-
};
|
|
28
|
-
export default flatMap;
|
package/polyfills/flatMap.mjs
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
var flatMapMethod = Array.prototype.flatMap;
|
|
2
|
-
/* eslint-disable no-redeclare */
|
|
3
|
-
// $FlowFixMe
|
|
4
|
-
|
|
5
|
-
var flatMap = flatMapMethod ? function (list, fn) {
|
|
6
|
-
return flatMapMethod.call(list, fn);
|
|
7
|
-
} : function (list, fn) {
|
|
8
|
-
var result = [];
|
|
9
|
-
|
|
10
|
-
for (var _i2 = 0; _i2 < list.length; _i2++) {
|
|
11
|
-
var _item = list[_i2];
|
|
12
|
-
var value = fn(_item);
|
|
13
|
-
|
|
14
|
-
if (Array.isArray(value)) {
|
|
15
|
-
result = result.concat(value);
|
|
16
|
-
} else {
|
|
17
|
-
result.push(value);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
return result;
|
|
22
|
-
};
|
|
23
|
-
export default flatMap;
|