graphql 0.0.1-test.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 +21 -0
- package/NotSupportedTSVersion.d.ts +1 -0
- package/README.md +158 -0
- package/error/GraphQLError.d.ts +142 -0
- package/error/GraphQLError.js +267 -0
- package/error/GraphQLError.mjs +253 -0
- package/error/index.d.ts +7 -0
- package/error/index.js +41 -0
- package/error/index.mjs +3 -0
- package/error/locatedError.d.ts +13 -0
- package/error/locatedError.js +40 -0
- package/error/locatedError.mjs +32 -0
- package/error/syntaxError.d.ts +11 -0
- package/error/syntaxError.js +21 -0
- package/error/syntaxError.mjs +11 -0
- package/execution/collectFields.d.ts +45 -0
- package/execution/collectFields.js +229 -0
- package/execution/collectFields.mjs +213 -0
- package/execution/execute.d.ts +185 -0
- package/execution/execute.js +1016 -0
- package/execution/execute.mjs +988 -0
- package/execution/index.d.ts +14 -0
- package/execution/index.js +67 -0
- package/execution/index.mjs +9 -0
- package/execution/mapAsyncIterator.d.ts +9 -0
- package/execution/mapAsyncIterator.js +68 -0
- package/execution/mapAsyncIterator.mjs +61 -0
- package/execution/subscribe.d.ts +68 -0
- package/execution/subscribe.js +261 -0
- package/execution/subscribe.mjs +239 -0
- package/execution/values.d.ts +81 -0
- package/execution/values.js +292 -0
- package/execution/values.mjs +255 -0
- package/graphql.d.ts +67 -0
- package/graphql.js +96 -0
- package/graphql.mjs +122 -0
- package/index.d.ts +411 -0
- package/index.js +1263 -0
- package/index.mjs +254 -0
- package/jsutils/Maybe.d.ts +2 -0
- package/jsutils/Maybe.js +5 -0
- package/jsutils/Maybe.mjs +1 -0
- package/jsutils/ObjMap.d.ts +16 -0
- package/jsutils/ObjMap.js +5 -0
- package/jsutils/ObjMap.mjs +1 -0
- package/jsutils/Path.d.ts +20 -0
- package/jsutils/Path.js +33 -0
- package/jsutils/Path.mjs +25 -0
- package/jsutils/PromiseOrValue.d.ts +1 -0
- package/jsutils/PromiseOrValue.js +5 -0
- package/jsutils/PromiseOrValue.mjs +1 -0
- package/jsutils/devAssert.d.ts +1 -0
- package/jsutils/devAssert.js +14 -0
- package/jsutils/devAssert.mjs +7 -0
- package/jsutils/didYouMean.d.ts +8 -0
- package/jsutils/didYouMean.js +38 -0
- package/jsutils/didYouMean.mjs +32 -0
- package/jsutils/groupBy.d.ts +7 -0
- package/jsutils/groupBy.js +26 -0
- package/jsutils/groupBy.mjs +19 -0
- package/jsutils/identityFunc.d.ts +4 -0
- package/jsutils/identityFunc.js +13 -0
- package/jsutils/identityFunc.mjs +6 -0
- package/jsutils/inspect.d.ts +4 -0
- package/jsutils/inspect.js +121 -0
- package/jsutils/inspect.mjs +115 -0
- package/jsutils/instanceOf.d.ts +16 -0
- package/jsutils/instanceOf.js +60 -0
- package/jsutils/instanceOf.mjs +52 -0
- package/jsutils/invariant.d.ts +4 -0
- package/jsutils/invariant.js +16 -0
- package/jsutils/invariant.mjs +9 -0
- package/jsutils/isAsyncIterable.d.ts +7 -0
- package/jsutils/isAsyncIterable.js +18 -0
- package/jsutils/isAsyncIterable.mjs +11 -0
- package/jsutils/isIterableObject.d.ts +20 -0
- package/jsutils/isIterableObject.js +32 -0
- package/jsutils/isIterableObject.mjs +25 -0
- package/jsutils/isObjectLike.d.ts +7 -0
- package/jsutils/isObjectLike.js +14 -0
- package/jsutils/isObjectLike.mjs +7 -0
- package/jsutils/isPromise.d.ts +5 -0
- package/jsutils/isPromise.js +17 -0
- package/jsutils/isPromise.mjs +10 -0
- package/jsutils/keyMap.d.ts +32 -0
- package/jsutils/keyMap.js +43 -0
- package/jsutils/keyMap.mjs +36 -0
- package/jsutils/keyValMap.d.ts +23 -0
- package/jsutils/keyValMap.js +33 -0
- package/jsutils/keyValMap.mjs +26 -0
- package/jsutils/mapValue.d.ts +9 -0
- package/jsutils/mapValue.js +20 -0
- package/jsutils/mapValue.mjs +13 -0
- package/jsutils/memoize3.d.ts +9 -0
- package/jsutils/memoize3.js +41 -0
- package/jsutils/memoize3.mjs +34 -0
- package/jsutils/naturalCompare.d.ts +8 -0
- package/jsutils/naturalCompare.js +69 -0
- package/jsutils/naturalCompare.mjs +61 -0
- package/jsutils/printPathArray.d.ts +6 -0
- package/jsutils/printPathArray.js +17 -0
- package/jsutils/printPathArray.mjs +10 -0
- package/jsutils/promiseForObject.d.ts +11 -0
- package/jsutils/promiseForObject.js +25 -0
- package/jsutils/promiseForObject.mjs +18 -0
- package/jsutils/promiseReduce.d.ts +13 -0
- package/jsutils/promiseReduce.js +27 -0
- package/jsutils/promiseReduce.mjs +20 -0
- package/jsutils/suggestionList.d.ts +8 -0
- package/jsutils/suggestionList.js +139 -0
- package/jsutils/suggestionList.mjs +130 -0
- package/jsutils/toError.d.ts +4 -0
- package/jsutils/toError.js +25 -0
- package/jsutils/toError.mjs +18 -0
- package/jsutils/toObjMap.d.ts +5 -0
- package/jsutils/toObjMap.js +24 -0
- package/jsutils/toObjMap.mjs +17 -0
- package/language/ast.d.ts +536 -0
- package/language/ast.js +224 -0
- package/language/ast.mjs +206 -0
- package/language/blockString.d.ts +28 -0
- package/language/blockString.js +195 -0
- package/language/blockString.mjs +178 -0
- package/language/characterClasses.d.ts +47 -0
- package/language/characterClasses.js +75 -0
- package/language/characterClasses.mjs +64 -0
- package/language/directiveLocation.d.ts +32 -0
- package/language/directiveLocation.js +40 -0
- package/language/directiveLocation.mjs +31 -0
- package/language/index.d.ts +97 -0
- package/language/index.js +215 -0
- package/language/index.mjs +29 -0
- package/language/kinds.d.ts +65 -0
- package/language/kinds.js +64 -0
- package/language/kinds.mjs +55 -0
- package/language/lexer.d.ts +45 -0
- package/language/lexer.js +1006 -0
- package/language/lexer.mjs +902 -0
- package/language/location.d.ts +16 -0
- package/language/location.js +38 -0
- package/language/location.mjs +30 -0
- package/language/parser.d.ts +554 -0
- package/language/parser.js +1567 -0
- package/language/parser.mjs +1524 -0
- package/language/predicates.d.ts +33 -0
- package/language/predicates.js +109 -0
- package/language/predicates.mjs +81 -0
- package/language/printLocation.d.ts +14 -0
- package/language/printLocation.js +74 -0
- package/language/printLocation.mjs +66 -0
- package/language/printString.d.ts +5 -0
- package/language/printString.js +183 -0
- package/language/printString.mjs +176 -0
- package/language/printer.d.ts +6 -0
- package/language/printer.js +351 -0
- package/language/printer.mjs +339 -0
- package/language/source.d.ts +25 -0
- package/language/source.js +65 -0
- package/language/source.mjs +50 -0
- package/language/tokenKind.d.ts +34 -0
- package/language/tokenKind.js +44 -0
- package/language/tokenKind.mjs +35 -0
- package/language/visitor.d.ts +194 -0
- package/language/visitor.js +377 -0
- package/language/visitor.mjs +361 -0
- package/package.json +40 -0
- package/subscription/index.d.ts +19 -0
- package/subscription/index.js +19 -0
- package/subscription/index.mjs +19 -0
- package/type/assertName.d.ts +10 -0
- package/type/assertName.js +59 -0
- package/type/assertName.mjs +44 -0
- package/type/definition.d.ts +917 -0
- package/type/definition.js +1329 -0
- package/type/definition.mjs +1167 -0
- package/type/directives.d.ts +86 -0
- package/type/directives.js +224 -0
- package/type/directives.mjs +190 -0
- package/type/index.d.ts +150 -0
- package/type/index.js +547 -0
- package/type/index.mjs +103 -0
- package/type/introspection.d.ts +29 -0
- package/type/introspection.js +617 -0
- package/type/introspection.mjs +550 -0
- package/type/scalars.d.ts +19 -0
- package/type/scalars.js +359 -0
- package/type/scalars.mjs +299 -0
- package/type/schema.d.ts +170 -0
- package/type/schema.js +402 -0
- package/type/schema.mjs +381 -0
- package/type/validate.d.ts +17 -0
- package/type/validate.js +672 -0
- package/type/validate.mjs +647 -0
- package/utilities/TypeInfo.d.ts +67 -0
- package/utilities/TypeInfo.js +418 -0
- package/utilities/TypeInfo.mjs +395 -0
- package/utilities/assertValidName.d.ts +13 -0
- package/utilities/assertValidName.js +51 -0
- package/utilities/assertValidName.mjs +40 -0
- package/utilities/astFromValue.d.ts +28 -0
- package/utilities/astFromValue.js +190 -0
- package/utilities/astFromValue.mjs +177 -0
- package/utilities/buildASTSchema.d.ts +35 -0
- package/utilities/buildASTSchema.js +115 -0
- package/utilities/buildASTSchema.mjs +97 -0
- package/utilities/buildClientSchema.d.ts +19 -0
- package/utilities/buildClientSchema.js +386 -0
- package/utilities/buildClientSchema.mjs +363 -0
- package/utilities/coerceInputValue.d.ts +16 -0
- package/utilities/coerceInputValue.js +191 -0
- package/utilities/coerceInputValue.mjs +172 -0
- package/utilities/concatAST.d.ts +9 -0
- package/utilities/concatAST.js +26 -0
- package/utilities/concatAST.mjs +19 -0
- package/utilities/extendSchema.d.ts +40 -0
- package/utilities/extendSchema.js +798 -0
- package/utilities/extendSchema.mjs +789 -0
- package/utilities/findBreakingChanges.d.ts +51 -0
- package/utilities/findBreakingChanges.js +547 -0
- package/utilities/findBreakingChanges.mjs +516 -0
- package/utilities/getIntrospectionQuery.d.ts +182 -0
- package/utilities/getIntrospectionQuery.js +134 -0
- package/utilities/getIntrospectionQuery.mjs +127 -0
- package/utilities/getOperationAST.d.ts +11 -0
- package/utilities/getOperationAST.js +43 -0
- package/utilities/getOperationAST.mjs +36 -0
- package/utilities/getOperationRootType.d.ts +15 -0
- package/utilities/getOperationRootType.js +59 -0
- package/utilities/getOperationRootType.mjs +52 -0
- package/utilities/index.d.ts +61 -0
- package/utilities/index.js +233 -0
- package/utilities/index.mjs +55 -0
- package/utilities/introspectionFromSchema.d.ts +18 -0
- package/utilities/introspectionFromSchema.js +42 -0
- package/utilities/introspectionFromSchema.mjs +30 -0
- package/utilities/lexicographicSortSchema.d.ts +9 -0
- package/utilities/lexicographicSortSchema.js +177 -0
- package/utilities/lexicographicSortSchema.mjs +172 -0
- package/utilities/printSchema.d.ts +5 -0
- package/utilities/printSchema.js +333 -0
- package/utilities/printSchema.mjs +309 -0
- package/utilities/separateOperations.d.ts +11 -0
- package/utilities/separateOperations.js +88 -0
- package/utilities/separateOperations.mjs +80 -0
- package/utilities/sortValueNode.d.ts +9 -0
- package/utilities/sortValueNode.js +47 -0
- package/utilities/sortValueNode.mjs +39 -0
- package/utilities/stripIgnoredCharacters.d.ts +62 -0
- package/utilities/stripIgnoredCharacters.js +121 -0
- package/utilities/stripIgnoredCharacters.mjs +104 -0
- package/utilities/typeComparators.d.ts +32 -0
- package/utilities/typeComparators.js +116 -0
- package/utilities/typeComparators.mjs +106 -0
- package/utilities/typeFromAST.d.ts +32 -0
- package/utilities/typeFromAST.js +27 -0
- package/utilities/typeFromAST.mjs +18 -0
- package/utilities/typedQueryDocumentNode.d.ts +22 -0
- package/utilities/typedQueryDocumentNode.js +5 -0
- package/utilities/typedQueryDocumentNode.mjs +1 -0
- package/utilities/valueFromAST.d.ts +29 -0
- package/utilities/valueFromAST.js +185 -0
- package/utilities/valueFromAST.mjs +172 -0
- package/utilities/valueFromASTUntyped.d.ts +23 -0
- package/utilities/valueFromASTUntyped.js +61 -0
- package/utilities/valueFromASTUntyped.mjs +53 -0
- package/validation/ValidationContext.d.ts +95 -0
- package/validation/ValidationContext.js +232 -0
- package/validation/ValidationContext.mjs +212 -0
- package/validation/index.d.ts +40 -0
- package/validation/index.js +317 -0
- package/validation/index.mjs +68 -0
- package/validation/rules/ExecutableDefinitionsRule.d.ts +13 -0
- package/validation/rules/ExecutableDefinitionsRule.js +44 -0
- package/validation/rules/ExecutableDefinitionsRule.mjs +35 -0
- package/validation/rules/FieldsOnCorrectTypeRule.d.ts +13 -0
- package/validation/rules/FieldsOnCorrectTypeRule.js +143 -0
- package/validation/rules/FieldsOnCorrectTypeRule.mjs +125 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +14 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.js +65 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.mjs +49 -0
- package/validation/rules/KnownArgumentNamesRule.d.ts +23 -0
- package/validation/rules/KnownArgumentNamesRule.js +116 -0
- package/validation/rules/KnownArgumentNamesRule.mjs +98 -0
- package/validation/rules/KnownDirectivesRule.d.ts +16 -0
- package/validation/rules/KnownDirectivesRule.js +163 -0
- package/validation/rules/KnownDirectivesRule.mjs +146 -0
- package/validation/rules/KnownFragmentNamesRule.d.ts +13 -0
- package/validation/rules/KnownFragmentNamesRule.js +34 -0
- package/validation/rules/KnownFragmentNamesRule.mjs +24 -0
- package/validation/rules/KnownTypeNamesRule.d.ts +16 -0
- package/validation/rules/KnownTypeNamesRule.js +87 -0
- package/validation/rules/KnownTypeNamesRule.mjs +75 -0
- package/validation/rules/LoneAnonymousOperationRule.d.ts +13 -0
- package/validation/rules/LoneAnonymousOperationRule.js +40 -0
- package/validation/rules/LoneAnonymousOperationRule.mjs +32 -0
- package/validation/rules/LoneSchemaDefinitionRule.d.ts +10 -0
- package/validation/rules/LoneSchemaDefinitionRule.js +63 -0
- package/validation/rules/LoneSchemaDefinitionRule.mjs +53 -0
- package/validation/rules/NoFragmentCyclesRule.d.ts +13 -0
- package/validation/rules/NoFragmentCyclesRule.js +83 -0
- package/validation/rules/NoFragmentCyclesRule.mjs +76 -0
- package/validation/rules/NoUndefinedVariablesRule.d.ts +13 -0
- package/validation/rules/NoUndefinedVariablesRule.js +50 -0
- package/validation/rules/NoUndefinedVariablesRule.mjs +43 -0
- package/validation/rules/NoUnusedFragmentsRule.d.ts +13 -0
- package/validation/rules/NoUnusedFragmentsRule.js +59 -0
- package/validation/rules/NoUnusedFragmentsRule.mjs +52 -0
- package/validation/rules/NoUnusedVariablesRule.d.ts +13 -0
- package/validation/rules/NoUnusedVariablesRule.js +55 -0
- package/validation/rules/NoUnusedVariablesRule.mjs +48 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule-old.js +805 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule-old.mjs +788 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +14 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js +805 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +788 -0
- package/validation/rules/PossibleFragmentSpreadsRule.d.ts +12 -0
- package/validation/rules/PossibleFragmentSpreadsRule.js +91 -0
- package/validation/rules/PossibleFragmentSpreadsRule.mjs +69 -0
- package/validation/rules/PossibleTypeExtensionsRule.d.ts +10 -0
- package/validation/rules/PossibleTypeExtensionsRule.js +167 -0
- package/validation/rules/PossibleTypeExtensionsRule.mjs +147 -0
- package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +20 -0
- package/validation/rules/ProvidedRequiredArgumentsRule.js +158 -0
- package/validation/rules/ProvidedRequiredArgumentsRule.mjs +138 -0
- package/validation/rules/ScalarLeafsRule.d.ts +9 -0
- package/validation/rules/ScalarLeafsRule.js +51 -0
- package/validation/rules/ScalarLeafsRule.mjs +42 -0
- package/validation/rules/SingleFieldSubscriptionsRule.d.ts +13 -0
- package/validation/rules/SingleFieldSubscriptionsRule.js +82 -0
- package/validation/rules/SingleFieldSubscriptionsRule.mjs +73 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +11 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.js +90 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +79 -0
- package/validation/rules/UniqueArgumentNamesRule.d.ts +13 -0
- package/validation/rules/UniqueArgumentNamesRule.js +53 -0
- package/validation/rules/UniqueArgumentNamesRule.mjs +42 -0
- package/validation/rules/UniqueDirectiveNamesRule.d.ts +10 -0
- package/validation/rules/UniqueDirectiveNamesRule.js +50 -0
- package/validation/rules/UniqueDirectiveNamesRule.mjs +43 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +16 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.js +93 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.mjs +83 -0
- package/validation/rules/UniqueEnumValueNamesRule.d.ts +10 -0
- package/validation/rules/UniqueEnumValueNamesRule.js +71 -0
- package/validation/rules/UniqueEnumValueNamesRule.mjs +60 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +10 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.js +83 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +75 -0
- package/validation/rules/UniqueFragmentNamesRule.d.ts +12 -0
- package/validation/rules/UniqueFragmentNamesRule.js +39 -0
- package/validation/rules/UniqueFragmentNamesRule.mjs +32 -0
- package/validation/rules/UniqueInputFieldNamesRule.d.ts +13 -0
- package/validation/rules/UniqueInputFieldNamesRule.js +52 -0
- package/validation/rules/UniqueInputFieldNamesRule.mjs +44 -0
- package/validation/rules/UniqueOperationNamesRule.d.ts +12 -0
- package/validation/rules/UniqueOperationNamesRule.js +41 -0
- package/validation/rules/UniqueOperationNamesRule.mjs +34 -0
- package/validation/rules/UniqueOperationTypesRule.d.ts +10 -0
- package/validation/rules/UniqueOperationTypesRule.js +67 -0
- package/validation/rules/UniqueOperationTypesRule.mjs +60 -0
- package/validation/rules/UniqueTypeNamesRule.d.ts +10 -0
- package/validation/rules/UniqueTypeNamesRule.js +53 -0
- package/validation/rules/UniqueTypeNamesRule.mjs +46 -0
- package/validation/rules/UniqueVariableNamesRule.d.ts +10 -0
- package/validation/rules/UniqueVariableNamesRule.js +47 -0
- package/validation/rules/UniqueVariableNamesRule.mjs +39 -0
- package/validation/rules/ValuesOfCorrectTypeRule.d.ts +13 -0
- package/validation/rules/ValuesOfCorrectTypeRule.js +183 -0
- package/validation/rules/ValuesOfCorrectTypeRule.mjs +164 -0
- package/validation/rules/VariablesAreInputTypesRule.d.ts +13 -0
- package/validation/rules/VariablesAreInputTypesRule.js +44 -0
- package/validation/rules/VariablesAreInputTypesRule.mjs +31 -0
- package/validation/rules/VariablesInAllowedPositionRule.d.ts +12 -0
- package/validation/rules/VariablesInAllowedPositionRule.js +114 -0
- package/validation/rules/VariablesInAllowedPositionRule.mjs +95 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +15 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.js +121 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.mjs +107 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +15 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +39 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +30 -0
- package/validation/specifiedRules.d.ts +12 -0
- package/validation/specifiedRules.js +160 -0
- package/validation/specifiedRules.mjs +123 -0
- package/validation/validate.d.ts +61 -0
- package/validation/validate.js +151 -0
- package/validation/validate.mjs +133 -0
- package/version.d.ts +13 -0
- package/version.js +25 -0
- package/version.mjs +17 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a keyed JS object from an array, given a function to produce the keys
|
|
3
|
+
* for each value in the array.
|
|
4
|
+
*
|
|
5
|
+
* This provides a convenient lookup for the array items if the key function
|
|
6
|
+
* produces unique results.
|
|
7
|
+
* ```ts
|
|
8
|
+
* const phoneBook = [
|
|
9
|
+
* { name: 'Jon', num: '555-1234' },
|
|
10
|
+
* { name: 'Jenny', num: '867-5309' }
|
|
11
|
+
* ]
|
|
12
|
+
*
|
|
13
|
+
* const entriesByName = keyMap(
|
|
14
|
+
* phoneBook,
|
|
15
|
+
* entry => entry.name
|
|
16
|
+
* )
|
|
17
|
+
*
|
|
18
|
+
* // {
|
|
19
|
+
* // Jon: { name: 'Jon', num: '555-1234' },
|
|
20
|
+
* // Jenny: { name: 'Jenny', num: '867-5309' }
|
|
21
|
+
* // }
|
|
22
|
+
*
|
|
23
|
+
* const jennyEntry = entriesByName['Jenny']
|
|
24
|
+
*
|
|
25
|
+
* // { name: 'Jenny', num: '857-6309' }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export function keyMap(list, keyFn) {
|
|
29
|
+
const result = Object.create(null);
|
|
30
|
+
|
|
31
|
+
for (const item of list) {
|
|
32
|
+
result[keyFn(item)] = item;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ObjMap } from './ObjMap';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a keyed JS object from an array, given a function to produce the keys
|
|
4
|
+
* and a function to produce the values from each item in the array.
|
|
5
|
+
* ```ts
|
|
6
|
+
* const phoneBook = [
|
|
7
|
+
* { name: 'Jon', num: '555-1234' },
|
|
8
|
+
* { name: 'Jenny', num: '867-5309' }
|
|
9
|
+
* ]
|
|
10
|
+
*
|
|
11
|
+
* // { Jon: '555-1234', Jenny: '867-5309' }
|
|
12
|
+
* const phonesByName = keyValMap(
|
|
13
|
+
* phoneBook,
|
|
14
|
+
* entry => entry.name,
|
|
15
|
+
* entry => entry.num
|
|
16
|
+
* )
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare function keyValMap<T, V>(
|
|
20
|
+
list: ReadonlyArray<T>,
|
|
21
|
+
keyFn: (item: T) => string,
|
|
22
|
+
valFn: (item: T) => V,
|
|
23
|
+
): ObjMap<V>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true,
|
|
5
|
+
});
|
|
6
|
+
exports.keyValMap = keyValMap;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Creates a keyed JS object from an array, given a function to produce the keys
|
|
10
|
+
* and a function to produce the values from each item in the array.
|
|
11
|
+
* ```ts
|
|
12
|
+
* const phoneBook = [
|
|
13
|
+
* { name: 'Jon', num: '555-1234' },
|
|
14
|
+
* { name: 'Jenny', num: '867-5309' }
|
|
15
|
+
* ]
|
|
16
|
+
*
|
|
17
|
+
* // { Jon: '555-1234', Jenny: '867-5309' }
|
|
18
|
+
* const phonesByName = keyValMap(
|
|
19
|
+
* phoneBook,
|
|
20
|
+
* entry => entry.name,
|
|
21
|
+
* entry => entry.num
|
|
22
|
+
* )
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
function keyValMap(list, keyFn, valFn) {
|
|
26
|
+
const result = Object.create(null);
|
|
27
|
+
|
|
28
|
+
for (const item of list) {
|
|
29
|
+
result[keyFn(item)] = valFn(item);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a keyed JS object from an array, given a function to produce the keys
|
|
3
|
+
* and a function to produce the values from each item in the array.
|
|
4
|
+
* ```ts
|
|
5
|
+
* const phoneBook = [
|
|
6
|
+
* { name: 'Jon', num: '555-1234' },
|
|
7
|
+
* { name: 'Jenny', num: '867-5309' }
|
|
8
|
+
* ]
|
|
9
|
+
*
|
|
10
|
+
* // { Jon: '555-1234', Jenny: '867-5309' }
|
|
11
|
+
* const phonesByName = keyValMap(
|
|
12
|
+
* phoneBook,
|
|
13
|
+
* entry => entry.name,
|
|
14
|
+
* entry => entry.num
|
|
15
|
+
* )
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export function keyValMap(list, keyFn, valFn) {
|
|
19
|
+
const result = Object.create(null);
|
|
20
|
+
|
|
21
|
+
for (const item of list) {
|
|
22
|
+
result[keyFn(item)] = valFn(item);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ObjMap, ReadOnlyObjMap } from './ObjMap';
|
|
2
|
+
/**
|
|
3
|
+
* Creates an object map with the same keys as `map` and values generated by
|
|
4
|
+
* running each value of `map` thru `fn`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function mapValue<T, V>(
|
|
7
|
+
map: ReadOnlyObjMap<T>,
|
|
8
|
+
fn: (value: T, key: string) => V,
|
|
9
|
+
): ObjMap<V>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true,
|
|
5
|
+
});
|
|
6
|
+
exports.mapValue = mapValue;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Creates an object map with the same keys as `map` and values generated by
|
|
10
|
+
* running each value of `map` thru `fn`.
|
|
11
|
+
*/
|
|
12
|
+
function mapValue(map, fn) {
|
|
13
|
+
const result = Object.create(null);
|
|
14
|
+
|
|
15
|
+
for (const key of Object.keys(map)) {
|
|
16
|
+
result[key] = fn(map[key], key);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates an object map with the same keys as `map` and values generated by
|
|
3
|
+
* running each value of `map` thru `fn`.
|
|
4
|
+
*/
|
|
5
|
+
export function mapValue(map, fn) {
|
|
6
|
+
const result = Object.create(null);
|
|
7
|
+
|
|
8
|
+
for (const key of Object.keys(map)) {
|
|
9
|
+
result[key] = fn(map[key], key);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return result;
|
|
13
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true,
|
|
5
|
+
});
|
|
6
|
+
exports.memoize3 = memoize3;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Memoizes the provided three-argument function.
|
|
10
|
+
*/
|
|
11
|
+
function memoize3(fn) {
|
|
12
|
+
let cache0;
|
|
13
|
+
return function memoized(a1, a2, a3) {
|
|
14
|
+
if (cache0 === undefined) {
|
|
15
|
+
cache0 = new WeakMap();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
let cache1 = cache0.get(a1);
|
|
19
|
+
|
|
20
|
+
if (cache1 === undefined) {
|
|
21
|
+
cache1 = new WeakMap();
|
|
22
|
+
cache0.set(a1, cache1);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
let cache2 = cache1.get(a2);
|
|
26
|
+
|
|
27
|
+
if (cache2 === undefined) {
|
|
28
|
+
cache2 = new WeakMap();
|
|
29
|
+
cache1.set(a2, cache2);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
let fnResult = cache2.get(a3);
|
|
33
|
+
|
|
34
|
+
if (fnResult === undefined) {
|
|
35
|
+
fnResult = fn(a1, a2, a3);
|
|
36
|
+
cache2.set(a3, fnResult);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return fnResult;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memoizes the provided three-argument function.
|
|
3
|
+
*/
|
|
4
|
+
export function memoize3(fn) {
|
|
5
|
+
let cache0;
|
|
6
|
+
return function memoized(a1, a2, a3) {
|
|
7
|
+
if (cache0 === undefined) {
|
|
8
|
+
cache0 = new WeakMap();
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
let cache1 = cache0.get(a1);
|
|
12
|
+
|
|
13
|
+
if (cache1 === undefined) {
|
|
14
|
+
cache1 = new WeakMap();
|
|
15
|
+
cache0.set(a1, cache1);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
let cache2 = cache1.get(a2);
|
|
19
|
+
|
|
20
|
+
if (cache2 === undefined) {
|
|
21
|
+
cache2 = new WeakMap();
|
|
22
|
+
cache1.set(a2, cache2);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
let fnResult = cache2.get(a3);
|
|
26
|
+
|
|
27
|
+
if (fnResult === undefined) {
|
|
28
|
+
fnResult = fn(a1, a2, a3);
|
|
29
|
+
cache2.set(a3, fnResult);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return fnResult;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns a number indicating whether a reference string comes before, or after,
|
|
3
|
+
* or is the same as the given string in natural sort order.
|
|
4
|
+
*
|
|
5
|
+
* See: https://en.wikipedia.org/wiki/Natural_sort_order
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
export declare function naturalCompare(aStr: string, bStr: string): number;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true,
|
|
5
|
+
});
|
|
6
|
+
exports.naturalCompare = naturalCompare;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Returns a number indicating whether a reference string comes before, or after,
|
|
10
|
+
* or is the same as the given string in natural sort order.
|
|
11
|
+
*
|
|
12
|
+
* See: https://en.wikipedia.org/wiki/Natural_sort_order
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
15
|
+
function naturalCompare(aStr, bStr) {
|
|
16
|
+
let aIndex = 0;
|
|
17
|
+
let bIndex = 0;
|
|
18
|
+
|
|
19
|
+
while (aIndex < aStr.length && bIndex < bStr.length) {
|
|
20
|
+
let aChar = aStr.charCodeAt(aIndex);
|
|
21
|
+
let bChar = bStr.charCodeAt(bIndex);
|
|
22
|
+
|
|
23
|
+
if (isDigit(aChar) && isDigit(bChar)) {
|
|
24
|
+
let aNum = 0;
|
|
25
|
+
|
|
26
|
+
do {
|
|
27
|
+
++aIndex;
|
|
28
|
+
aNum = aNum * 10 + aChar - DIGIT_0;
|
|
29
|
+
aChar = aStr.charCodeAt(aIndex);
|
|
30
|
+
} while (isDigit(aChar) && aNum > 0);
|
|
31
|
+
|
|
32
|
+
let bNum = 0;
|
|
33
|
+
|
|
34
|
+
do {
|
|
35
|
+
++bIndex;
|
|
36
|
+
bNum = bNum * 10 + bChar - DIGIT_0;
|
|
37
|
+
bChar = bStr.charCodeAt(bIndex);
|
|
38
|
+
} while (isDigit(bChar) && bNum > 0);
|
|
39
|
+
|
|
40
|
+
if (aNum < bNum) {
|
|
41
|
+
return -1;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (aNum > bNum) {
|
|
45
|
+
return 1;
|
|
46
|
+
}
|
|
47
|
+
} else {
|
|
48
|
+
if (aChar < bChar) {
|
|
49
|
+
return -1;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (aChar > bChar) {
|
|
53
|
+
return 1;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
++aIndex;
|
|
57
|
+
++bIndex;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return aStr.length - bStr.length;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const DIGIT_0 = 48;
|
|
65
|
+
const DIGIT_9 = 57;
|
|
66
|
+
|
|
67
|
+
function isDigit(code) {
|
|
68
|
+
return !isNaN(code) && DIGIT_0 <= code && code <= DIGIT_9;
|
|
69
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns a number indicating whether a reference string comes before, or after,
|
|
3
|
+
* or is the same as the given string in natural sort order.
|
|
4
|
+
*
|
|
5
|
+
* See: https://en.wikipedia.org/wiki/Natural_sort_order
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
export function naturalCompare(aStr, bStr) {
|
|
9
|
+
let aIndex = 0;
|
|
10
|
+
let bIndex = 0;
|
|
11
|
+
|
|
12
|
+
while (aIndex < aStr.length && bIndex < bStr.length) {
|
|
13
|
+
let aChar = aStr.charCodeAt(aIndex);
|
|
14
|
+
let bChar = bStr.charCodeAt(bIndex);
|
|
15
|
+
|
|
16
|
+
if (isDigit(aChar) && isDigit(bChar)) {
|
|
17
|
+
let aNum = 0;
|
|
18
|
+
|
|
19
|
+
do {
|
|
20
|
+
++aIndex;
|
|
21
|
+
aNum = aNum * 10 + aChar - DIGIT_0;
|
|
22
|
+
aChar = aStr.charCodeAt(aIndex);
|
|
23
|
+
} while (isDigit(aChar) && aNum > 0);
|
|
24
|
+
|
|
25
|
+
let bNum = 0;
|
|
26
|
+
|
|
27
|
+
do {
|
|
28
|
+
++bIndex;
|
|
29
|
+
bNum = bNum * 10 + bChar - DIGIT_0;
|
|
30
|
+
bChar = bStr.charCodeAt(bIndex);
|
|
31
|
+
} while (isDigit(bChar) && bNum > 0);
|
|
32
|
+
|
|
33
|
+
if (aNum < bNum) {
|
|
34
|
+
return -1;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (aNum > bNum) {
|
|
38
|
+
return 1;
|
|
39
|
+
}
|
|
40
|
+
} else {
|
|
41
|
+
if (aChar < bChar) {
|
|
42
|
+
return -1;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
if (aChar > bChar) {
|
|
46
|
+
return 1;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
++aIndex;
|
|
50
|
+
++bIndex;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return aStr.length - bStr.length;
|
|
55
|
+
}
|
|
56
|
+
const DIGIT_0 = 48;
|
|
57
|
+
const DIGIT_9 = 57;
|
|
58
|
+
|
|
59
|
+
function isDigit(code) {
|
|
60
|
+
return !isNaN(code) && DIGIT_0 <= code && code <= DIGIT_9;
|
|
61
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true,
|
|
5
|
+
});
|
|
6
|
+
exports.printPathArray = printPathArray;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Build a string describing the path.
|
|
10
|
+
*/
|
|
11
|
+
function printPathArray(path) {
|
|
12
|
+
return path
|
|
13
|
+
.map((key) =>
|
|
14
|
+
typeof key === 'number' ? '[' + key.toString() + ']' : '.' + key,
|
|
15
|
+
)
|
|
16
|
+
.join('');
|
|
17
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ObjMap } from './ObjMap';
|
|
2
|
+
/**
|
|
3
|
+
* This function transforms a JS object `ObjMap<Promise<T>>` into
|
|
4
|
+
* a `Promise<ObjMap<T>>`
|
|
5
|
+
*
|
|
6
|
+
* This is akin to bluebird's `Promise.props`, but implemented only using
|
|
7
|
+
* `Promise.all` so it will work with any implementation of ES6 promises.
|
|
8
|
+
*/
|
|
9
|
+
export declare function promiseForObject<T>(
|
|
10
|
+
object: ObjMap<Promise<T>>,
|
|
11
|
+
): Promise<ObjMap<T>>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true,
|
|
5
|
+
});
|
|
6
|
+
exports.promiseForObject = promiseForObject;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* This function transforms a JS object `ObjMap<Promise<T>>` into
|
|
10
|
+
* a `Promise<ObjMap<T>>`
|
|
11
|
+
*
|
|
12
|
+
* This is akin to bluebird's `Promise.props`, but implemented only using
|
|
13
|
+
* `Promise.all` so it will work with any implementation of ES6 promises.
|
|
14
|
+
*/
|
|
15
|
+
function promiseForObject(object) {
|
|
16
|
+
return Promise.all(Object.values(object)).then((resolvedValues) => {
|
|
17
|
+
const resolvedObject = Object.create(null);
|
|
18
|
+
|
|
19
|
+
for (const [i, key] of Object.keys(object).entries()) {
|
|
20
|
+
resolvedObject[key] = resolvedValues[i];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return resolvedObject;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This function transforms a JS object `ObjMap<Promise<T>>` into
|
|
3
|
+
* a `Promise<ObjMap<T>>`
|
|
4
|
+
*
|
|
5
|
+
* This is akin to bluebird's `Promise.props`, but implemented only using
|
|
6
|
+
* `Promise.all` so it will work with any implementation of ES6 promises.
|
|
7
|
+
*/
|
|
8
|
+
export function promiseForObject(object) {
|
|
9
|
+
return Promise.all(Object.values(object)).then((resolvedValues) => {
|
|
10
|
+
const resolvedObject = Object.create(null);
|
|
11
|
+
|
|
12
|
+
for (const [i, key] of Object.keys(object).entries()) {
|
|
13
|
+
resolvedObject[key] = resolvedValues[i];
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return resolvedObject;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { PromiseOrValue } from './PromiseOrValue';
|
|
2
|
+
/**
|
|
3
|
+
* Similar to Array.prototype.reduce(), however the reducing callback may return
|
|
4
|
+
* a Promise, in which case reduction will continue after each promise resolves.
|
|
5
|
+
*
|
|
6
|
+
* If the callback does not return a Promise, then this function will also not
|
|
7
|
+
* return a Promise.
|
|
8
|
+
*/
|
|
9
|
+
export declare function promiseReduce<T, U>(
|
|
10
|
+
values: Iterable<T>,
|
|
11
|
+
callbackFn: (accumulator: U, currentValue: T) => PromiseOrValue<U>,
|
|
12
|
+
initialValue: PromiseOrValue<U>,
|
|
13
|
+
): PromiseOrValue<U>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true,
|
|
5
|
+
});
|
|
6
|
+
exports.promiseReduce = promiseReduce;
|
|
7
|
+
|
|
8
|
+
var _isPromise = require('./isPromise.js');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Similar to Array.prototype.reduce(), however the reducing callback may return
|
|
12
|
+
* a Promise, in which case reduction will continue after each promise resolves.
|
|
13
|
+
*
|
|
14
|
+
* If the callback does not return a Promise, then this function will also not
|
|
15
|
+
* return a Promise.
|
|
16
|
+
*/
|
|
17
|
+
function promiseReduce(values, callbackFn, initialValue) {
|
|
18
|
+
let accumulator = initialValue;
|
|
19
|
+
|
|
20
|
+
for (const value of values) {
|
|
21
|
+
accumulator = (0, _isPromise.isPromise)(accumulator)
|
|
22
|
+
? accumulator.then((resolved) => callbackFn(resolved, value))
|
|
23
|
+
: callbackFn(accumulator, value);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return accumulator;
|
|
27
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { isPromise } from './isPromise.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Similar to Array.prototype.reduce(), however the reducing callback may return
|
|
5
|
+
* a Promise, in which case reduction will continue after each promise resolves.
|
|
6
|
+
*
|
|
7
|
+
* If the callback does not return a Promise, then this function will also not
|
|
8
|
+
* return a Promise.
|
|
9
|
+
*/
|
|
10
|
+
export function promiseReduce(values, callbackFn, initialValue) {
|
|
11
|
+
let accumulator = initialValue;
|
|
12
|
+
|
|
13
|
+
for (const value of values) {
|
|
14
|
+
accumulator = isPromise(accumulator)
|
|
15
|
+
? accumulator.then((resolved) => callbackFn(resolved, value))
|
|
16
|
+
: callbackFn(accumulator, value);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return accumulator;
|
|
20
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Given an invalid input string and a list of valid options, returns a filtered
|
|
3
|
+
* list of valid options sorted based on their similarity with the input.
|
|
4
|
+
*/
|
|
5
|
+
export declare function suggestionList(
|
|
6
|
+
input: string,
|
|
7
|
+
options: ReadonlyArray<string>,
|
|
8
|
+
): Array<string>;
|