houdini 2.0.0-next.8 → 2.0.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/build/adapter/index.d.ts +2 -2
- package/build/adapter/index.js +6 -0
- package/build/cmd/generate.d.ts +5 -0
- package/build/cmd/generate.js +77 -0
- package/build/cmd/index.js +32 -0
- package/build/cmd/init.js +565 -0
- package/build/cmd/pullSchema.js +26 -0
- package/build/lib/ast.js +71 -0
- package/build/lib/codegen.d.ts +57 -0
- package/build/lib/codegen.js +617 -0
- package/build/lib/config.d.ts +240 -177
- package/build/lib/config.js +143 -0
- package/build/lib/constants.js +14 -0
- package/build/lib/database.d.ts +7 -0
- package/build/lib/database.js +624 -0
- package/build/lib/db.d.ts +13 -0
- package/build/lib/db.js +135 -0
- package/build/lib/deepMerge.js +23 -0
- package/build/lib/error.d.ts +16 -0
- package/build/lib/error.js +115 -0
- package/build/lib/fs.d.ts +9 -11
- package/build/lib/fs.js +245 -0
- package/build/lib/graphql.d.ts +5 -32
- package/build/lib/graphql.js +36 -0
- package/build/lib/imports.d.ts +29 -14
- package/build/lib/imports.js +66 -0
- package/build/lib/index.d.ts +17 -24
- package/build/lib/index.js +21 -0
- package/build/lib/logger.d.ts +12 -0
- package/build/lib/logger.js +45 -0
- package/build/lib/parse.d.ts +1 -2
- package/build/lib/parse.js +32 -0
- package/build/lib/path.d.ts +0 -1
- package/build/lib/path.js +44 -0
- package/build/lib/pipeline.d.ts +1 -1
- package/build/lib/pipeline.js +8 -0
- package/build/lib/plugins.d.ts +4 -0
- package/build/lib/plugins.js +88 -0
- package/build/lib/project.d.ts +19 -0
- package/build/lib/project.js +296 -0
- package/build/lib/schema.d.ts +1 -0
- package/build/lib/schema.js +61 -0
- package/build/lib/sleep.d.ts +1 -0
- package/build/lib/sleep.js +8 -0
- package/build/lib/types.d.ts +92 -303
- package/build/lib/types.js +37 -0
- package/build/lib/walk.d.ts +11 -6
- package/build/lib/walk.js +138 -0
- package/build/node/index.d.ts +44 -0
- package/build/node/index.js +402 -0
- package/build/oauth/index.d.ts +41 -0
- package/build/oauth/index.js +108 -0
- package/build/package.json +212 -0
- package/build/router/auth-token.d.ts +29 -0
- package/build/router/auth-token.js +168 -0
- package/build/{lib/router → router}/conventions.d.ts +10 -1
- package/build/router/conventions.js +165 -0
- package/build/{runtime-esm/router → router}/cookies.js +21 -21
- package/build/{runtime-esm/router → router}/jwt.js +8 -6
- package/build/{lib/router → router}/manifest.d.ts +2 -2
- package/build/router/manifest.js +279 -0
- package/build/{runtime/router → router}/match.d.ts +10 -10
- package/build/router/match.js +219 -0
- package/build/router/server.d.ts +57 -0
- package/build/router/server.js +500 -0
- package/build/{runtime/router → router}/session.d.ts +8 -3
- package/build/router/session.js +338 -0
- package/build/router/types.d.ts +44 -0
- package/build/runtime/cache/benchmarks/cache.bench.d.ts +1 -0
- package/build/runtime/cache/benchmarks/cache.bench.js +943 -0
- package/build/runtime/cache/gc.d.ts +2 -1
- package/build/{runtime-esm → runtime}/cache/gc.js +4 -1
- package/build/runtime/cache/index.d.ts +173 -3
- package/build/{runtime-esm/cache/cache.js → runtime/cache/index.js} +197 -70
- package/build/runtime/cache/lists.d.ts +9 -4
- package/build/{runtime-esm → runtime}/cache/lists.js +116 -27
- package/build/runtime/cache/staleManager.d.ts +2 -1
- package/build/{runtime-esm → runtime}/cache/staleManager.js +6 -2
- package/build/runtime/cache/storage.d.ts +5 -2
- package/build/{runtime-esm → runtime}/cache/storage.js +126 -54
- package/build/{runtime-esm → runtime}/cache/stuff.js +4 -3
- package/build/runtime/cache/subscription.d.ts +23 -9
- package/build/{runtime-esm → runtime}/cache/subscription.js +103 -65
- package/build/runtime/{client/index.d.ts → client.d.ts} +15 -22
- package/build/runtime/client.js +86 -0
- package/build/runtime/coerce.d.ts +4 -0
- package/build/runtime/coerce.js +31 -0
- package/build/runtime/config.d.ts +20 -0
- package/build/runtime/config.js +88 -0
- package/build/runtime/{lib/constants.d.ts → constants.d.ts} +1 -1
- package/build/runtime/{client/documentStore.d.ts → documentStore.d.ts} +18 -11
- package/build/{runtime-esm/client → runtime}/documentStore.js +53 -56
- package/build/runtime/endpoint.d.ts +14 -0
- package/build/runtime/endpoint.js +29 -0
- package/build/{runtime-cjs/lib → runtime}/flatten.d.ts +1 -1
- package/build/runtime/formData.d.ts +24 -0
- package/build/runtime/formData.js +93 -0
- package/build/runtime/index.d.ts +16 -8
- package/build/runtime/index.js +54 -0
- package/build/{runtime-cjs/lib → runtime}/key.d.ts +1 -1
- package/build/{runtime-esm/lib → runtime}/key.js +4 -4
- package/build/{runtime-esm/lib → runtime}/log.js +3 -3
- package/build/runtime/multipart.d.ts +8 -0
- package/build/runtime/multipart.js +49 -0
- package/build/{runtime-cjs/lib → runtime}/pageInfo.d.ts +3 -3
- package/build/{runtime-esm/lib → runtime}/pageInfo.js +2 -2
- package/build/{runtime-cjs/lib → runtime}/pagination.d.ts +12 -8
- package/build/{runtime-esm/lib → runtime}/pagination.js +157 -21
- package/build/{runtime-cjs/lib → runtime}/scalars.d.ts +6 -6
- package/build/{runtime-esm/lib → runtime}/scalars.js +10 -43
- package/build/{runtime-cjs/lib → runtime}/selection.d.ts +1 -1
- package/build/{runtime-esm/lib → runtime}/selection.js +17 -2
- package/build/runtime/{lib/store.d.ts → store.d.ts} +1 -1
- package/build/{runtime-esm/lib → runtime}/store.js +2 -3
- package/build/runtime/{lib/types.d.ts → types.d.ts} +102 -101
- package/build/{runtime-esm/lib → runtime}/types.js +9 -14
- package/build/test/index.d.ts +6 -25
- package/build/test/index.js +329 -0
- package/build/test/package.json +1 -0
- package/build/vite/hmr.d.ts +26 -3
- package/build/vite/hmr.js +431 -0
- package/build/vite/houdini.d.ts +4 -10
- package/build/vite/houdini.js +134 -0
- package/build/vite/index.d.ts +13 -7
- package/build/vite/index.js +104 -0
- package/build/vite/package.json +1 -0
- package/build/vite/schema.d.ts +5 -3
- package/build/vite/schema.js +193 -0
- package/package.json +148 -57
- package/build/adapter-cjs/index.js +0 -33
- package/build/adapter-cjs/package.json +0 -1
- package/build/adapter-esm/index.js +0 -9
- package/build/cmd-cjs/index.js +0 -89304
- package/build/cmd-cjs/package.json +0 -1
- package/build/cmd-esm/index.js +0 -89308
- package/build/codegen/generators/artifacts/fieldKey.d.ts +0 -3
- package/build/codegen/generators/artifacts/index.d.ts +0 -17
- package/build/codegen/generators/artifacts/indexFile.d.ts +0 -2
- package/build/codegen/generators/artifacts/inputs.d.ts +0 -4
- package/build/codegen/generators/artifacts/operations.d.ts +0 -11
- package/build/codegen/generators/artifacts/selection.d.ts +0 -20
- package/build/codegen/generators/artifacts/utils.d.ts +0 -8
- package/build/codegen/generators/comments/jsdoc.d.ts +0 -2
- package/build/codegen/generators/definitions/enums.d.ts +0 -2
- package/build/codegen/generators/definitions/index.d.ts +0 -2
- package/build/codegen/generators/index.d.ts +0 -6
- package/build/codegen/generators/indexFile/index.d.ts +0 -2
- package/build/codegen/generators/persistedQueries/index.d.ts +0 -2
- package/build/codegen/generators/runtime/graphqlFunction.d.ts +0 -2
- package/build/codegen/generators/runtime/index.d.ts +0 -3
- package/build/codegen/generators/runtime/injectPlugins.d.ts +0 -7
- package/build/codegen/generators/runtime/pluginIndex.d.ts +0 -5
- package/build/codegen/generators/runtime/pluginRuntime.d.ts +0 -15
- package/build/codegen/generators/runtime/runtimeConfig.d.ts +0 -7
- package/build/codegen/generators/typescript/addReferencedInputTypes.d.ts +0 -4
- package/build/codegen/generators/typescript/documentTypes.d.ts +0 -2
- package/build/codegen/generators/typescript/imperativeTypeDef.d.ts +0 -2
- package/build/codegen/generators/typescript/index.d.ts +0 -2
- package/build/codegen/generators/typescript/inlineType.d.ts +0 -29
- package/build/codegen/generators/typescript/loadingState.d.ts +0 -8
- package/build/codegen/index.d.ts +0 -8
- package/build/codegen/transforms/addFields.d.ts +0 -2
- package/build/codegen/transforms/collectDefinitions.d.ts +0 -9
- package/build/codegen/transforms/componentFields.d.ts +0 -8
- package/build/codegen/transforms/fragmentVariables.d.ts +0 -17
- package/build/codegen/transforms/index.d.ts +0 -9
- package/build/codegen/transforms/list.d.ts +0 -9
- package/build/codegen/transforms/paginate.d.ts +0 -4
- package/build/codegen/transforms/runtimeScalars.d.ts +0 -2
- package/build/codegen/transforms/schema.d.ts +0 -2
- package/build/codegen/transforms/typename.d.ts +0 -2
- package/build/codegen/utils/commonjs.d.ts +0 -5
- package/build/codegen/utils/flattenSelections.d.ts +0 -11
- package/build/codegen/utils/index.d.ts +0 -4
- package/build/codegen/utils/moduleExport.d.ts +0 -4
- package/build/codegen/utils/murmur.d.ts +0 -9
- package/build/codegen/utils/objectIdentificationSelection.d.ts +0 -3
- package/build/codegen/utils/stripLoc.d.ts +0 -3
- package/build/codegen/validators/componentFields.d.ts +0 -2
- package/build/codegen/validators/index.d.ts +0 -5
- package/build/codegen/validators/noIDAlias.d.ts +0 -2
- package/build/codegen/validators/plugins.d.ts +0 -3
- package/build/codegen/validators/typeCheck.d.ts +0 -5
- package/build/codegen/validators/uniqueNames.d.ts +0 -2
- package/build/codegen-cjs/index.js +0 -74661
- package/build/codegen-cjs/package.json +0 -1
- package/build/codegen-esm/index.js +0 -74660
- package/build/lib/cleanupFiles.d.ts +0 -1
- package/build/lib/detectTools.d.ts +0 -16
- package/build/lib/introspection.d.ts +0 -3
- package/build/lib/plugin.d.ts +0 -2
- package/build/lib/router/index.d.ts +0 -9
- package/build/lib/router/server.d.ts +0 -7
- package/build/lib/router/types.d.ts +0 -23
- package/build/lib/typescript.d.ts +0 -20
- package/build/lib/watchAndRun.d.ts +0 -61
- package/build/lib-cjs/index.js +0 -79736
- package/build/lib-cjs/package.json +0 -1
- package/build/lib-esm/index.js +0 -79645
- package/build/runtime/cache/cache.d.ts +0 -169
- package/build/runtime/client/plugins/cache.d.ts +0 -9
- package/build/runtime/client/plugins/fetch.d.ts +0 -38
- package/build/runtime/client/plugins/fetchParams.d.ts +0 -9
- package/build/runtime/client/plugins/fragment.d.ts +0 -2
- package/build/runtime/client/plugins/index.d.ts +0 -9
- package/build/runtime/client/plugins/injectedPlugins.d.ts +0 -4
- package/build/runtime/client/plugins/mutation.d.ts +0 -2
- package/build/runtime/client/plugins/optimisticKeys.d.ts +0 -7
- package/build/runtime/client/plugins/query.d.ts +0 -2
- package/build/runtime/client/plugins/subscription.d.ts +0 -20
- package/build/runtime/client/plugins/test.d.ts +0 -15
- package/build/runtime/client/plugins/throwOnError.d.ts +0 -8
- package/build/runtime/client/utils/documentPlugins.d.ts +0 -3
- package/build/runtime/client/utils/index.d.ts +0 -1
- package/build/runtime/generated.d.ts +0 -5
- package/build/runtime/imports/config.d.ts +0 -3
- package/build/runtime/imports/pluginConfig.d.ts +0 -3
- package/build/runtime/lib/config.d.ts +0 -216
- package/build/runtime/lib/deepEquals.d.ts +0 -1
- package/build/runtime/lib/flatten.d.ts +0 -2
- package/build/runtime/lib/index.d.ts +0 -10
- package/build/runtime/lib/key.d.ts +0 -6
- package/build/runtime/lib/log.d.ts +0 -6
- package/build/runtime/lib/lru.d.ts +0 -52
- package/build/runtime/lib/pageInfo.d.ts +0 -7
- package/build/runtime/lib/pagination.d.ts +0 -27
- package/build/runtime/lib/scalars.d.ts +0 -14
- package/build/runtime/lib/selection.d.ts +0 -2
- package/build/runtime/public/cache.d.ts +0 -43
- package/build/runtime/public/index.d.ts +0 -1
- package/build/runtime/public/list.d.ts +0 -18
- package/build/runtime/public/record.d.ts +0 -40
- package/build/runtime/public/tests/test.d.ts +0 -156
- package/build/runtime/public/types.d.ts +0 -62
- package/build/runtime/router/cookies.d.ts +0 -41
- package/build/runtime/router/jwt.d.ts +0 -117
- package/build/runtime/router/server.d.ts +0 -24
- package/build/runtime/router/types.d.ts +0 -26
- package/build/runtime-cjs/cache/cache.d.ts +0 -169
- package/build/runtime-cjs/cache/cache.js +0 -1077
- package/build/runtime-cjs/cache/constants.d.ts +0 -1
- package/build/runtime-cjs/cache/constants.js +0 -28
- package/build/runtime-cjs/cache/gc.d.ts +0 -10
- package/build/runtime-cjs/cache/gc.js +0 -74
- package/build/runtime-cjs/cache/index.d.ts +0 -3
- package/build/runtime-cjs/cache/index.js +0 -25
- package/build/runtime-cjs/cache/lists.d.ts +0 -89
- package/build/runtime-cjs/cache/lists.js +0 -467
- package/build/runtime-cjs/cache/staleManager.d.ts +0 -31
- package/build/runtime-cjs/cache/staleManager.js +0 -123
- package/build/runtime-cjs/cache/storage.d.ts +0 -110
- package/build/runtime-cjs/cache/storage.js +0 -451
- package/build/runtime-cjs/cache/stuff.d.ts +0 -2
- package/build/runtime-cjs/cache/stuff.js +0 -56
- package/build/runtime-cjs/cache/subscription.d.ts +0 -52
- package/build/runtime-cjs/cache/subscription.js +0 -349
- package/build/runtime-cjs/client/documentStore.d.ts +0 -107
- package/build/runtime-cjs/client/documentStore.js +0 -487
- package/build/runtime-cjs/client/index.d.ts +0 -50
- package/build/runtime-cjs/client/index.js +0 -162
- package/build/runtime-cjs/client/plugins/cache.d.ts +0 -9
- package/build/runtime-cjs/client/plugins/cache.js +0 -138
- package/build/runtime-cjs/client/plugins/fetch.d.ts +0 -38
- package/build/runtime-cjs/client/plugins/fetch.js +0 -210
- package/build/runtime-cjs/client/plugins/fetchParams.d.ts +0 -9
- package/build/runtime-cjs/client/plugins/fetchParams.js +0 -47
- package/build/runtime-cjs/client/plugins/fragment.d.ts +0 -2
- package/build/runtime-cjs/client/plugins/fragment.js +0 -77
- package/build/runtime-cjs/client/plugins/index.d.ts +0 -9
- package/build/runtime-cjs/client/plugins/index.js +0 -45
- package/build/runtime-cjs/client/plugins/injectedPlugins.d.ts +0 -4
- package/build/runtime-cjs/client/plugins/injectedPlugins.js +0 -25
- package/build/runtime-cjs/client/plugins/mutation.d.ts +0 -2
- package/build/runtime-cjs/client/plugins/mutation.js +0 -89
- package/build/runtime-cjs/client/plugins/optimisticKeys.d.ts +0 -7
- package/build/runtime-cjs/client/plugins/optimisticKeys.js +0 -324
- package/build/runtime-cjs/client/plugins/query.d.ts +0 -2
- package/build/runtime-cjs/client/plugins/query.js +0 -93
- package/build/runtime-cjs/client/plugins/subscription.d.ts +0 -20
- package/build/runtime-cjs/client/plugins/subscription.js +0 -114
- package/build/runtime-cjs/client/plugins/test.d.ts +0 -15
- package/build/runtime-cjs/client/plugins/test.js +0 -118
- package/build/runtime-cjs/client/plugins/throwOnError.d.ts +0 -8
- package/build/runtime-cjs/client/plugins/throwOnError.js +0 -47
- package/build/runtime-cjs/client/utils/documentPlugins.d.ts +0 -3
- package/build/runtime-cjs/client/utils/documentPlugins.js +0 -57
- package/build/runtime-cjs/client/utils/index.d.ts +0 -1
- package/build/runtime-cjs/client/utils/index.js +0 -22
- package/build/runtime-cjs/generated.d.ts +0 -5
- package/build/runtime-cjs/generated.js +0 -16
- package/build/runtime-cjs/imports/config.d.ts +0 -3
- package/build/runtime-cjs/imports/config.js +0 -24
- package/build/runtime-cjs/imports/pluginConfig.d.ts +0 -3
- package/build/runtime-cjs/imports/pluginConfig.js +0 -25
- package/build/runtime-cjs/index.d.ts +0 -8
- package/build/runtime-cjs/index.js +0 -61
- package/build/runtime-cjs/lib/config.d.ts +0 -216
- package/build/runtime-cjs/lib/config.js +0 -110
- package/build/runtime-cjs/lib/constants.d.ts +0 -6
- package/build/runtime-cjs/lib/constants.js +0 -38
- package/build/runtime-cjs/lib/deepEquals.js +0 -52
- package/build/runtime-cjs/lib/flatten.js +0 -41
- package/build/runtime-cjs/lib/index.d.ts +0 -10
- package/build/runtime-cjs/lib/index.js +0 -40
- package/build/runtime-cjs/lib/key.js +0 -41
- package/build/runtime-cjs/lib/log.js +0 -72
- package/build/runtime-cjs/lib/lru.js +0 -73
- package/build/runtime-cjs/lib/pageInfo.js +0 -79
- package/build/runtime-cjs/lib/pagination.js +0 -240
- package/build/runtime-cjs/lib/scalars.js +0 -147
- package/build/runtime-cjs/lib/selection.js +0 -66
- package/build/runtime-cjs/lib/store.d.ts +0 -19
- package/build/runtime-cjs/lib/store.js +0 -81
- package/build/runtime-cjs/lib/types.d.ts +0 -417
- package/build/runtime-cjs/lib/types.js +0 -104
- package/build/runtime-cjs/package.json +0 -1
- package/build/runtime-cjs/public/cache.d.ts +0 -43
- package/build/runtime-cjs/public/cache.js +0 -112
- package/build/runtime-cjs/public/index.d.ts +0 -1
- package/build/runtime-cjs/public/index.js +0 -28
- package/build/runtime-cjs/public/list.d.ts +0 -18
- package/build/runtime-cjs/public/list.js +0 -151
- package/build/runtime-cjs/public/record.d.ts +0 -40
- package/build/runtime-cjs/public/record.js +0 -94
- package/build/runtime-cjs/public/tests/test.d.ts +0 -156
- package/build/runtime-cjs/public/tests/test.js +0 -60
- package/build/runtime-cjs/public/types.d.ts +0 -62
- package/build/runtime-cjs/public/types.js +0 -16
- package/build/runtime-cjs/router/cookies.js +0 -168
- package/build/runtime-cjs/router/jwt.js +0 -168
- package/build/runtime-cjs/router/match.d.ts +0 -39
- package/build/runtime-cjs/router/match.js +0 -158
- package/build/runtime-cjs/router/server.d.ts +0 -24
- package/build/runtime-cjs/router/server.js +0 -112
- package/build/runtime-cjs/router/session.d.ts +0 -22
- package/build/runtime-cjs/router/session.js +0 -97
- package/build/runtime-cjs/router/types.d.ts +0 -26
- package/build/runtime-cjs/router/types.js +0 -16
- package/build/runtime-esm/cache/cache.d.ts +0 -169
- package/build/runtime-esm/cache/constants.d.ts +0 -1
- package/build/runtime-esm/cache/gc.d.ts +0 -10
- package/build/runtime-esm/cache/index.d.ts +0 -3
- package/build/runtime-esm/cache/index.js +0 -5
- package/build/runtime-esm/cache/lists.d.ts +0 -89
- package/build/runtime-esm/cache/staleManager.d.ts +0 -31
- package/build/runtime-esm/cache/storage.d.ts +0 -110
- package/build/runtime-esm/cache/stuff.d.ts +0 -2
- package/build/runtime-esm/cache/subscription.d.ts +0 -52
- package/build/runtime-esm/client/documentStore.d.ts +0 -107
- package/build/runtime-esm/client/index.d.ts +0 -50
- package/build/runtime-esm/client/index.js +0 -130
- package/build/runtime-esm/client/plugins/cache.d.ts +0 -9
- package/build/runtime-esm/client/plugins/cache.js +0 -104
- package/build/runtime-esm/client/plugins/fetch.d.ts +0 -38
- package/build/runtime-esm/client/plugins/fetch.js +0 -184
- package/build/runtime-esm/client/plugins/fetchParams.d.ts +0 -9
- package/build/runtime-esm/client/plugins/fetchParams.js +0 -23
- package/build/runtime-esm/client/plugins/fragment.d.ts +0 -2
- package/build/runtime-esm/client/plugins/fragment.js +0 -53
- package/build/runtime-esm/client/plugins/index.d.ts +0 -9
- package/build/runtime-esm/client/plugins/index.js +0 -12
- package/build/runtime-esm/client/plugins/injectedPlugins.d.ts +0 -4
- package/build/runtime-esm/client/plugins/injectedPlugins.js +0 -5
- package/build/runtime-esm/client/plugins/mutation.d.ts +0 -2
- package/build/runtime-esm/client/plugins/mutation.js +0 -65
- package/build/runtime-esm/client/plugins/optimisticKeys.d.ts +0 -7
- package/build/runtime-esm/client/plugins/optimisticKeys.js +0 -290
- package/build/runtime-esm/client/plugins/query.d.ts +0 -2
- package/build/runtime-esm/client/plugins/query.js +0 -69
- package/build/runtime-esm/client/plugins/subscription.d.ts +0 -20
- package/build/runtime-esm/client/plugins/subscription.js +0 -90
- package/build/runtime-esm/client/plugins/test.d.ts +0 -15
- package/build/runtime-esm/client/plugins/test.js +0 -93
- package/build/runtime-esm/client/plugins/throwOnError.d.ts +0 -8
- package/build/runtime-esm/client/plugins/throwOnError.js +0 -23
- package/build/runtime-esm/client/utils/documentPlugins.d.ts +0 -3
- package/build/runtime-esm/client/utils/documentPlugins.js +0 -33
- package/build/runtime-esm/client/utils/index.d.ts +0 -1
- package/build/runtime-esm/client/utils/index.js +0 -1
- package/build/runtime-esm/generated.d.ts +0 -5
- package/build/runtime-esm/generated.js +0 -0
- package/build/runtime-esm/imports/config.d.ts +0 -3
- package/build/runtime-esm/imports/config.js +0 -4
- package/build/runtime-esm/imports/pluginConfig.d.ts +0 -3
- package/build/runtime-esm/imports/pluginConfig.js +0 -5
- package/build/runtime-esm/index.d.ts +0 -8
- package/build/runtime-esm/index.js +0 -22
- package/build/runtime-esm/lib/config.d.ts +0 -216
- package/build/runtime-esm/lib/config.js +0 -69
- package/build/runtime-esm/lib/constants.d.ts +0 -6
- package/build/runtime-esm/lib/deepEquals.d.ts +0 -1
- package/build/runtime-esm/lib/flatten.d.ts +0 -2
- package/build/runtime-esm/lib/index.d.ts +0 -10
- package/build/runtime-esm/lib/index.js +0 -10
- package/build/runtime-esm/lib/key.d.ts +0 -6
- package/build/runtime-esm/lib/log.d.ts +0 -6
- package/build/runtime-esm/lib/lru.d.ts +0 -52
- package/build/runtime-esm/lib/pageInfo.d.ts +0 -7
- package/build/runtime-esm/lib/pagination.d.ts +0 -27
- package/build/runtime-esm/lib/scalars.d.ts +0 -14
- package/build/runtime-esm/lib/selection.d.ts +0 -2
- package/build/runtime-esm/lib/store.d.ts +0 -19
- package/build/runtime-esm/lib/types.d.ts +0 -417
- package/build/runtime-esm/public/cache.d.ts +0 -43
- package/build/runtime-esm/public/cache.js +0 -88
- package/build/runtime-esm/public/index.d.ts +0 -1
- package/build/runtime-esm/public/index.js +0 -4
- package/build/runtime-esm/public/list.d.ts +0 -18
- package/build/runtime-esm/public/list.js +0 -127
- package/build/runtime-esm/public/record.d.ts +0 -40
- package/build/runtime-esm/public/record.js +0 -70
- package/build/runtime-esm/public/tests/test.d.ts +0 -156
- package/build/runtime-esm/public/tests/test.js +0 -36
- package/build/runtime-esm/public/types.d.ts +0 -62
- package/build/runtime-esm/router/cookies.d.ts +0 -41
- package/build/runtime-esm/router/jwt.d.ts +0 -117
- package/build/runtime-esm/router/match.d.ts +0 -39
- package/build/runtime-esm/router/match.js +0 -131
- package/build/runtime-esm/router/server.d.ts +0 -24
- package/build/runtime-esm/router/server.js +0 -87
- package/build/runtime-esm/router/session.d.ts +0 -22
- package/build/runtime-esm/router/session.js +0 -71
- package/build/runtime-esm/router/types.d.ts +0 -26
- package/build/runtime-esm/router/types.js +0 -0
- package/build/test-cjs/index.js +0 -75254
- package/build/test-cjs/package.json +0 -1
- package/build/test-esm/index.js +0 -75249
- package/build/vite/imports.d.ts +0 -40
- package/build/vite-cjs/index.js +0 -86271
- package/build/vite-cjs/package.json +0 -1
- package/build/vite-esm/index.js +0 -86263
- /package/build/{adapter-esm → adapter}/package.json +0 -0
- /package/build/{cmd-esm → cmd}/package.json +0 -0
- /package/build/{vite → lib}/ast.d.ts +0 -0
- /package/build/{codegen-esm → lib}/package.json +0 -0
- /package/build/{lib-esm → node}/package.json +0 -0
- /package/build/{runtime-esm → oauth}/package.json +0 -0
- /package/build/{runtime-cjs/router → router}/cookies.d.ts +0 -0
- /package/build/{runtime-cjs/router → router}/jwt.d.ts +0 -0
- /package/build/{test-esm → router}/package.json +0 -0
- /package/build/{runtime-esm/public → router}/types.js +0 -0
- /package/build/{runtime-esm → runtime}/cache/constants.js +0 -0
- /package/build/{runtime-esm/lib → runtime}/constants.js +0 -0
- /package/build/{runtime-cjs/lib → runtime}/deepEquals.d.ts +0 -0
- /package/build/{runtime-esm/lib → runtime}/deepEquals.js +0 -0
- /package/build/{runtime-esm/lib → runtime}/flatten.js +0 -0
- /package/build/{runtime-cjs/lib → runtime}/log.d.ts +0 -0
- /package/build/{runtime-cjs/lib → runtime}/lru.d.ts +0 -0
- /package/build/{runtime-esm/lib → runtime}/lru.js +0 -0
- /package/build/{vite-esm → runtime}/package.json +0 -0
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
const computeKey = ({ field, args }) => {
|
|
2
2
|
const keys = Object.keys(args ?? {});
|
|
3
3
|
keys.sort();
|
|
4
|
-
return args && keys.length > 0 ? `${field}(${keys.map((key) => `${key}: ${
|
|
4
|
+
return args && keys.length > 0 ? `${field}(${keys.map((key) => `${key}: ${stringify(args[key])}`).join(", ")})` : field;
|
|
5
5
|
};
|
|
6
|
-
const
|
|
6
|
+
const stringify = (obj_from_json) => {
|
|
7
7
|
if (Array.isArray(obj_from_json)) {
|
|
8
|
-
return `[${obj_from_json.map((obj) => `${
|
|
8
|
+
return `[${obj_from_json.map((obj) => `${stringify(obj)}`).join(", ")}]`;
|
|
9
9
|
}
|
|
10
10
|
if (typeof obj_from_json !== "object" || obj_from_json instanceof Date || obj_from_json === null) {
|
|
11
11
|
return JSON.stringify(obj_from_json).replace(/"([^"]+)":/g, "$1: ");
|
|
12
12
|
}
|
|
13
|
-
return `{${Object.keys(obj_from_json).map((key) => `${key}: ${
|
|
13
|
+
return `{${Object.keys(obj_from_json).map((key) => `${key}: ${stringify(obj_from_json[key])}`).join(", ")}}`;
|
|
14
14
|
};
|
|
15
15
|
export {
|
|
16
16
|
computeKey
|
|
@@ -3,8 +3,8 @@ function colorize(message) {
|
|
|
3
3
|
if (matches.length === 0) {
|
|
4
4
|
return [message];
|
|
5
5
|
}
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
const final = message.replaceAll(/\$HOUDINI\$(\w*\$)?/g, "%c");
|
|
7
|
+
const colors = [];
|
|
8
8
|
for (const match of matches) {
|
|
9
9
|
const color = match[1] ? `color:${match[1].slice(0, -1)}` : "";
|
|
10
10
|
colors.push(color);
|
|
@@ -31,7 +31,7 @@ function green(message) {
|
|
|
31
31
|
}
|
|
32
32
|
const tag = `$HOUDINI$`;
|
|
33
33
|
const wrapMessage = (color, message) => {
|
|
34
|
-
return
|
|
34
|
+
return `${tag}${color}$${message}${tag}`;
|
|
35
35
|
};
|
|
36
36
|
export {
|
|
37
37
|
cyan,
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { isFile } from "./coerce.js";
|
|
2
|
+
function buildGraphQLBody(query, variables) {
|
|
3
|
+
const files = /* @__PURE__ */ new Map();
|
|
4
|
+
const operationVariables = extractFiles(variables, ["variables"], files);
|
|
5
|
+
if (files.size === 0) {
|
|
6
|
+
return { contentType: "application/json", body: JSON.stringify({ query, variables }) };
|
|
7
|
+
}
|
|
8
|
+
const form = new FormData();
|
|
9
|
+
form.set("operations", JSON.stringify({ query, variables: operationVariables }));
|
|
10
|
+
const map = {};
|
|
11
|
+
const parts = [];
|
|
12
|
+
let i = 0;
|
|
13
|
+
for (const [file, paths] of files) {
|
|
14
|
+
const key = String(++i);
|
|
15
|
+
map[key] = paths;
|
|
16
|
+
parts.push([key, file]);
|
|
17
|
+
}
|
|
18
|
+
form.set("map", JSON.stringify(map));
|
|
19
|
+
for (const [key, file] of parts) {
|
|
20
|
+
form.set(key, file, file.name);
|
|
21
|
+
}
|
|
22
|
+
return { body: form };
|
|
23
|
+
}
|
|
24
|
+
function extractFiles(value, path, files) {
|
|
25
|
+
if (isFile(value)) {
|
|
26
|
+
const dotted = path.join(".");
|
|
27
|
+
const existing = files.get(value);
|
|
28
|
+
if (existing) {
|
|
29
|
+
existing.push(dotted);
|
|
30
|
+
} else {
|
|
31
|
+
files.set(value, [dotted]);
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
if (Array.isArray(value)) {
|
|
36
|
+
return value.map((entry, i) => extractFiles(entry, [...path, String(i)], files));
|
|
37
|
+
}
|
|
38
|
+
if (value && typeof value === "object") {
|
|
39
|
+
const clone = {};
|
|
40
|
+
for (const key of Object.keys(value)) {
|
|
41
|
+
clone[key] = extractFiles(value[key], [...path, key], files);
|
|
42
|
+
}
|
|
43
|
+
return clone;
|
|
44
|
+
}
|
|
45
|
+
return value;
|
|
46
|
+
}
|
|
47
|
+
export {
|
|
48
|
+
buildGraphQLBody
|
|
49
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { GraphQLObject, PageInfo } from './types';
|
|
1
|
+
import type { GraphQLObject, PageInfo } from './types.js';
|
|
2
2
|
export declare function nullPageInfo(): PageInfo;
|
|
3
3
|
export declare function missingPageSizeError(fnName: string): {
|
|
4
4
|
message: string;
|
|
5
5
|
};
|
|
6
|
-
export declare function extractPageInfo(data: any, path: string[]): PageInfo;
|
|
7
|
-
export declare function countPage<_Data extends GraphQLObject>(source: string[], value: _Data | null): number;
|
|
6
|
+
export declare function extractPageInfo(data: any, path: readonly string[]): PageInfo;
|
|
7
|
+
export declare function countPage<_Data extends GraphQLObject>(source: readonly string[], value: _Data | null): number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { siteURL } from "./constants";
|
|
1
|
+
import { siteURL } from "./constants.js";
|
|
2
2
|
function nullPageInfo() {
|
|
3
3
|
return { startCursor: null, endCursor: null, hasNextPage: false, hasPreviousPage: false };
|
|
4
4
|
}
|
|
@@ -16,7 +16,7 @@ function extractPageInfo(data, path) {
|
|
|
16
16
|
hasPreviousPage: false
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
|
-
|
|
19
|
+
const localPath = [...path];
|
|
20
20
|
let current = data;
|
|
21
21
|
while (localPath.length > 0) {
|
|
22
22
|
if (!current) {
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import type { SendParams } from '
|
|
2
|
-
import type { CursorHandlers, FetchFn, GraphQLObject, GraphQLVariables, QueryArtifact, QueryResult, FetchParams } from './types';
|
|
3
|
-
export declare function cursorHandlers<_Data extends GraphQLObject, _Input extends GraphQLVariables>({ artifact, fetchUpdate: parentFetchUpdate, fetch: parentFetch, getState, getVariables, getSession, }: {
|
|
1
|
+
import type { SendParams } from './documentStore.js';
|
|
2
|
+
import type { CursorHandlers, FetchFn, GraphQLObject, GraphQLVariables, QueryArtifact, QueryResult, FetchParams } from './types.js';
|
|
3
|
+
export declare function cursorHandlers<_Data extends GraphQLObject, _Input extends GraphQLVariables | null | undefined>({ artifact, fetchUpdate: parentFetchUpdate, fetch: parentFetch, getState, getVariables, getSession, getLoading, previousCursors, nextCursors, }: {
|
|
4
4
|
artifact: QueryArtifact;
|
|
5
5
|
getState: () => _Data | null;
|
|
6
6
|
getVariables: () => NonNullable<_Input>;
|
|
7
7
|
getSession: () => Promise<App.Session>;
|
|
8
8
|
fetch: FetchFn<_Data, _Input>;
|
|
9
9
|
fetchUpdate: (arg: SendParams, updates: string[]) => ReturnType<FetchFn<_Data, _Input>>;
|
|
10
|
+
getLoading?: () => boolean;
|
|
11
|
+
previousCursors?: (string | null)[];
|
|
12
|
+
nextCursors?: (string | null)[];
|
|
10
13
|
}): CursorHandlers<_Data, _Input>;
|
|
11
|
-
export declare function offsetHandlers<_Data extends GraphQLObject, _Input extends GraphQLVariables>({ artifact, storeName, getState, getVariables, fetch: parentFetch, fetchUpdate: parentFetchUpdate, getSession, }: {
|
|
14
|
+
export declare function offsetHandlers<_Data extends GraphQLObject, _Input extends GraphQLVariables | null | undefined>({ artifact, storeName: _storeName, getState, getVariables, fetch: parentFetch, fetchUpdate: parentFetchUpdate, getSession, getLoading, }: {
|
|
12
15
|
artifact: QueryArtifact;
|
|
13
16
|
fetch: FetchFn<_Data, _Input>;
|
|
14
17
|
fetchUpdate: (arg: SendParams) => ReturnType<FetchFn<_Data, _Input>>;
|
|
@@ -16,12 +19,13 @@ export declare function offsetHandlers<_Data extends GraphQLObject, _Input exten
|
|
|
16
19
|
getState: () => _Data | null;
|
|
17
20
|
getVariables: () => _Input;
|
|
18
21
|
getSession: () => Promise<App.Session>;
|
|
22
|
+
getLoading?: () => boolean;
|
|
19
23
|
}): {
|
|
20
24
|
loadNextPage: ({ limit, offset, fetch, metadata, }?: {
|
|
21
|
-
limit?: number
|
|
22
|
-
offset?: number
|
|
23
|
-
fetch?: typeof fetch
|
|
24
|
-
metadata?: {}
|
|
25
|
+
limit?: number;
|
|
26
|
+
offset?: number;
|
|
27
|
+
fetch?: typeof globalThis.fetch;
|
|
28
|
+
metadata?: {};
|
|
25
29
|
}) => Promise<void>;
|
|
26
30
|
fetch(params?: FetchParams<_Input>): Promise<QueryResult<_Data, _Input>>;
|
|
27
31
|
};
|
|
@@ -1,14 +1,31 @@
|
|
|
1
|
-
import { deepEquals } from "./deepEquals";
|
|
2
|
-
import { countPage, extractPageInfo, missingPageSizeError } from "./pageInfo";
|
|
3
|
-
import {
|
|
1
|
+
import { deepEquals } from "./deepEquals.js";
|
|
2
|
+
import { countPage, extractPageInfo, missingPageSizeError } from "./pageInfo.js";
|
|
3
|
+
import { defaultConfigValues, getCurrentConfig, keyFieldsForType } from "./config.js";
|
|
4
|
+
import { CachePolicy, DataSource } from "./types.js";
|
|
4
5
|
function cursorHandlers({
|
|
5
6
|
artifact,
|
|
6
7
|
fetchUpdate: parentFetchUpdate,
|
|
7
8
|
fetch: parentFetch,
|
|
8
9
|
getState,
|
|
9
10
|
getVariables,
|
|
10
|
-
getSession
|
|
11
|
+
getSession,
|
|
12
|
+
getLoading,
|
|
13
|
+
previousCursors = [],
|
|
14
|
+
nextCursors = []
|
|
11
15
|
}) {
|
|
16
|
+
const targetType = artifact.refetch?.targetType;
|
|
17
|
+
const getEntityVars = () => {
|
|
18
|
+
if (!targetType || targetType === "Query") return {};
|
|
19
|
+
const config = defaultConfigValues(getCurrentConfig());
|
|
20
|
+
const typeConfig = config.types?.[targetType];
|
|
21
|
+
const state = getState();
|
|
22
|
+
if (!state) return {};
|
|
23
|
+
if (typeConfig?.resolve?.arguments) {
|
|
24
|
+
return typeConfig.resolve.arguments(state) ?? {};
|
|
25
|
+
}
|
|
26
|
+
const keys = keyFieldsForType(config, targetType);
|
|
27
|
+
return Object.fromEntries(keys.map((key) => [key, state[key]]));
|
|
28
|
+
};
|
|
12
29
|
const loadPage = async ({
|
|
13
30
|
pageSizeVar,
|
|
14
31
|
input,
|
|
@@ -18,19 +35,22 @@ function cursorHandlers({
|
|
|
18
35
|
where
|
|
19
36
|
}) => {
|
|
20
37
|
const loadVariables = {
|
|
38
|
+
...artifact.input?.defaults ?? {},
|
|
39
|
+
...getEntityVars(),
|
|
21
40
|
...getVariables(),
|
|
22
41
|
...input
|
|
23
42
|
};
|
|
24
43
|
if (!loadVariables[pageSizeVar] && !artifact.refetch.pageSize) {
|
|
25
44
|
throw missingPageSizeError(functionName);
|
|
26
45
|
}
|
|
27
|
-
|
|
46
|
+
const isSinglePage = artifact.refetch?.mode === "SinglePage";
|
|
47
|
+
const policy = isSinglePage ? artifact.policy : CachePolicy.NetworkOnly;
|
|
28
48
|
return (isSinglePage ? parentFetch : parentFetchUpdate)(
|
|
29
49
|
{
|
|
30
50
|
variables: loadVariables,
|
|
31
51
|
fetch,
|
|
32
52
|
metadata,
|
|
33
|
-
policy
|
|
53
|
+
policy,
|
|
34
54
|
session: await getSession()
|
|
35
55
|
},
|
|
36
56
|
isSinglePage ? [] : [where === "start" ? "prepend" : "append"]
|
|
@@ -39,6 +59,15 @@ function cursorHandlers({
|
|
|
39
59
|
const getPageInfo = () => {
|
|
40
60
|
return extractPageInfo(getState(), artifact.refetch?.path ?? []);
|
|
41
61
|
};
|
|
62
|
+
const loadingNoOp = () => Promise.resolve({
|
|
63
|
+
data: getState(),
|
|
64
|
+
errors: null,
|
|
65
|
+
fetching: false,
|
|
66
|
+
partial: false,
|
|
67
|
+
stale: false,
|
|
68
|
+
source: DataSource.Cache,
|
|
69
|
+
variables: getVariables()
|
|
70
|
+
});
|
|
42
71
|
return {
|
|
43
72
|
loadNextPage: ({
|
|
44
73
|
first,
|
|
@@ -46,6 +75,54 @@ function cursorHandlers({
|
|
|
46
75
|
fetch,
|
|
47
76
|
metadata
|
|
48
77
|
} = {}) => {
|
|
78
|
+
if (getLoading?.()) {
|
|
79
|
+
return loadingNoOp();
|
|
80
|
+
}
|
|
81
|
+
const isSinglePage = artifact.refetch?.mode === "SinglePage";
|
|
82
|
+
const direction = artifact.refetch?.direction;
|
|
83
|
+
if (isSinglePage && direction === "backward") {
|
|
84
|
+
if (nextCursors.length === 0) {
|
|
85
|
+
return Promise.resolve({
|
|
86
|
+
data: getState(),
|
|
87
|
+
errors: null,
|
|
88
|
+
fetching: false,
|
|
89
|
+
partial: false,
|
|
90
|
+
stale: false,
|
|
91
|
+
source: DataSource.Cache,
|
|
92
|
+
variables: getVariables()
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
const beforeCursor = nextCursors.pop();
|
|
96
|
+
return loadPage({
|
|
97
|
+
pageSizeVar: "last",
|
|
98
|
+
functionName: "loadNextPage",
|
|
99
|
+
input: {
|
|
100
|
+
before: beforeCursor,
|
|
101
|
+
last: first ?? artifact.refetch.pageSize,
|
|
102
|
+
first: null,
|
|
103
|
+
after: null
|
|
104
|
+
},
|
|
105
|
+
fetch,
|
|
106
|
+
metadata,
|
|
107
|
+
where: "start"
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
if (isSinglePage && direction === "both" && nextCursors.length > 0) {
|
|
111
|
+
const beforeCursor = nextCursors.pop();
|
|
112
|
+
return loadPage({
|
|
113
|
+
pageSizeVar: "last",
|
|
114
|
+
functionName: "loadNextPage",
|
|
115
|
+
input: {
|
|
116
|
+
before: beforeCursor,
|
|
117
|
+
last: first ?? artifact.refetch.pageSize,
|
|
118
|
+
first: null,
|
|
119
|
+
after: null
|
|
120
|
+
},
|
|
121
|
+
fetch,
|
|
122
|
+
metadata,
|
|
123
|
+
where: "start"
|
|
124
|
+
});
|
|
125
|
+
}
|
|
49
126
|
const currentPageInfo = getPageInfo();
|
|
50
127
|
if (!currentPageInfo.hasNextPage) {
|
|
51
128
|
return Promise.resolve({
|
|
@@ -58,6 +135,9 @@ function cursorHandlers({
|
|
|
58
135
|
variables: getVariables()
|
|
59
136
|
});
|
|
60
137
|
}
|
|
138
|
+
if (isSinglePage && (direction === "forward" || direction === "both")) {
|
|
139
|
+
previousCursors.push(getVariables()?.after ?? null);
|
|
140
|
+
}
|
|
61
141
|
const input = {
|
|
62
142
|
first: first ?? artifact.refetch.pageSize,
|
|
63
143
|
after: after ?? currentPageInfo.endCursor,
|
|
@@ -79,6 +159,38 @@ function cursorHandlers({
|
|
|
79
159
|
fetch,
|
|
80
160
|
metadata
|
|
81
161
|
} = {}) => {
|
|
162
|
+
if (getLoading?.()) {
|
|
163
|
+
return loadingNoOp();
|
|
164
|
+
}
|
|
165
|
+
const isSinglePage = artifact.refetch?.mode === "SinglePage";
|
|
166
|
+
const direction = artifact.refetch?.direction;
|
|
167
|
+
if (isSinglePage && (direction === "forward" || direction === "both") && previousCursors.length > 0) {
|
|
168
|
+
const afterCursor = previousCursors.pop();
|
|
169
|
+
return loadPage({
|
|
170
|
+
pageSizeVar: "first",
|
|
171
|
+
functionName: "loadPreviousPage",
|
|
172
|
+
input: {
|
|
173
|
+
after: afterCursor,
|
|
174
|
+
first: last ?? artifact.refetch.pageSize,
|
|
175
|
+
before: null,
|
|
176
|
+
last: null
|
|
177
|
+
},
|
|
178
|
+
fetch,
|
|
179
|
+
metadata,
|
|
180
|
+
where: "end"
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
if (isSinglePage && direction === "forward") {
|
|
184
|
+
return Promise.resolve({
|
|
185
|
+
data: getState(),
|
|
186
|
+
errors: null,
|
|
187
|
+
fetching: false,
|
|
188
|
+
partial: false,
|
|
189
|
+
stale: false,
|
|
190
|
+
source: DataSource.Cache,
|
|
191
|
+
variables: getVariables()
|
|
192
|
+
});
|
|
193
|
+
}
|
|
82
194
|
const currentPageInfo = getPageInfo();
|
|
83
195
|
if (!currentPageInfo.hasPreviousPage) {
|
|
84
196
|
return Promise.resolve({
|
|
@@ -91,6 +203,11 @@ function cursorHandlers({
|
|
|
91
203
|
variables: getVariables()
|
|
92
204
|
});
|
|
93
205
|
}
|
|
206
|
+
const pVars = getVariables();
|
|
207
|
+
const isForwardPage = pVars?.first != null || pVars?.after != null;
|
|
208
|
+
if (isSinglePage && (direction === "backward" || direction === "both") && !isForwardPage) {
|
|
209
|
+
nextCursors.push(pVars?.before ?? null);
|
|
210
|
+
}
|
|
94
211
|
const input = {
|
|
95
212
|
before: before ?? currentPageInfo.startCursor,
|
|
96
213
|
last: last ?? artifact.refetch.pageSize,
|
|
@@ -108,11 +225,15 @@ function cursorHandlers({
|
|
|
108
225
|
},
|
|
109
226
|
async fetch(args) {
|
|
110
227
|
const { variables } = args ?? {};
|
|
228
|
+
if (getLoading?.()) {
|
|
229
|
+
return loadingNoOp();
|
|
230
|
+
}
|
|
111
231
|
if (variables && !deepEquals(getVariables(), variables)) {
|
|
112
232
|
return await parentFetch(args);
|
|
113
233
|
}
|
|
234
|
+
let currentPageInfo;
|
|
114
235
|
try {
|
|
115
|
-
|
|
236
|
+
currentPageInfo = extractPageInfo(getState(), artifact.refetch.path);
|
|
116
237
|
} catch {
|
|
117
238
|
return await parentFetch(args);
|
|
118
239
|
}
|
|
@@ -120,21 +241,21 @@ function cursorHandlers({
|
|
|
120
241
|
const count = countPage(artifact.refetch.path.concat("edges"), getState()) || artifact.refetch.pageSize;
|
|
121
242
|
if (count && count > artifact.refetch.pageSize) {
|
|
122
243
|
if (currentPageInfo.hasPreviousPage && currentPageInfo.hasNextPage && // only log if they haven't provided special parameters
|
|
123
|
-
!(variables?.
|
|
124
|
-
console.warn(
|
|
244
|
+
!(variables?.first && variables?.after || variables?.last && variables?.before)) {
|
|
245
|
+
console.warn(`! Encountered a fetch() in the middle of the connection.
|
|
125
246
|
Make sure to pass a cursor value by hand that includes the current set (ie the entry before startCursor)
|
|
126
247
|
`);
|
|
127
248
|
}
|
|
128
249
|
if (!currentPageInfo.hasPreviousPage) {
|
|
129
|
-
queryVariables
|
|
130
|
-
queryVariables
|
|
131
|
-
queryVariables
|
|
132
|
-
queryVariables
|
|
250
|
+
queryVariables.first = count;
|
|
251
|
+
queryVariables.after = null;
|
|
252
|
+
queryVariables.last = null;
|
|
253
|
+
queryVariables.before = null;
|
|
133
254
|
} else if (!currentPageInfo.hasNextPage) {
|
|
134
|
-
queryVariables
|
|
135
|
-
queryVariables
|
|
136
|
-
queryVariables
|
|
137
|
-
queryVariables
|
|
255
|
+
queryVariables.last = count;
|
|
256
|
+
queryVariables.first = null;
|
|
257
|
+
queryVariables.after = null;
|
|
258
|
+
queryVariables.before = null;
|
|
138
259
|
}
|
|
139
260
|
}
|
|
140
261
|
Object.assign(queryVariables, variables ?? {});
|
|
@@ -148,15 +269,16 @@ Make sure to pass a cursor value by hand that includes the current set (ie the e
|
|
|
148
269
|
}
|
|
149
270
|
function offsetHandlers({
|
|
150
271
|
artifact,
|
|
151
|
-
storeName,
|
|
272
|
+
storeName: _storeName,
|
|
152
273
|
getState,
|
|
153
274
|
getVariables,
|
|
154
275
|
fetch: parentFetch,
|
|
155
276
|
fetchUpdate: parentFetchUpdate,
|
|
156
|
-
getSession
|
|
277
|
+
getSession,
|
|
278
|
+
getLoading
|
|
157
279
|
}) {
|
|
158
|
-
|
|
159
|
-
|
|
280
|
+
const isSinglePage = artifact.refetch?.mode === "SinglePage";
|
|
281
|
+
const getOffset = () => {
|
|
160
282
|
let offset = artifact.refetch?.start || countPage(artifact.refetch.path, getState()) || artifact.refetch.pageSize;
|
|
161
283
|
if (isSinglePage) {
|
|
162
284
|
offset += getVariables()?.offset ?? 0;
|
|
@@ -171,6 +293,9 @@ function offsetHandlers({
|
|
|
171
293
|
fetch,
|
|
172
294
|
metadata
|
|
173
295
|
} = {}) => {
|
|
296
|
+
if (getLoading?.()) {
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
174
299
|
const queryVariables = {
|
|
175
300
|
...getVariables(),
|
|
176
301
|
offset: offset ?? getOffset()
|
|
@@ -194,6 +319,17 @@ function offsetHandlers({
|
|
|
194
319
|
},
|
|
195
320
|
async fetch(params = {}) {
|
|
196
321
|
const { variables } = params;
|
|
322
|
+
if (getLoading?.()) {
|
|
323
|
+
return {
|
|
324
|
+
data: getState(),
|
|
325
|
+
errors: null,
|
|
326
|
+
fetching: false,
|
|
327
|
+
partial: false,
|
|
328
|
+
stale: false,
|
|
329
|
+
source: DataSource.Cache,
|
|
330
|
+
variables: getVariables() ?? null
|
|
331
|
+
};
|
|
332
|
+
}
|
|
197
333
|
if (variables && !deepEquals(getVariables(), variables)) {
|
|
198
334
|
return parentFetch.call(this, params);
|
|
199
335
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import type { ConfigFile } from '
|
|
2
|
-
import { type FragmentArtifact, type MutationArtifact, type QueryArtifact, type SubscriptionArtifact, type SubscriptionSelection } from './types';
|
|
3
|
-
export declare function marshalSelection({ selection, data, }: {
|
|
1
|
+
import type { ConfigFile } from 'houdini';
|
|
2
|
+
import { type FragmentArtifact, type MutationArtifact, type QueryArtifact, type SubscriptionArtifact, type SubscriptionSelection } from './types.js';
|
|
3
|
+
export declare function marshalSelection({ selection, data, config, }: {
|
|
4
4
|
selection: SubscriptionSelection;
|
|
5
5
|
data: any;
|
|
6
|
+
config?: ConfigFile;
|
|
6
7
|
}): {} | null | undefined;
|
|
7
|
-
export declare function marshalInputs
|
|
8
|
+
export declare function marshalInputs({ artifact, input, config, rootType, }: {
|
|
8
9
|
artifact: QueryArtifact | MutationArtifact | SubscriptionArtifact | FragmentArtifact;
|
|
9
10
|
input: unknown;
|
|
10
11
|
rootType?: string;
|
|
11
|
-
config
|
|
12
|
+
config?: ConfigFile;
|
|
12
13
|
}): {} | null | undefined;
|
|
13
14
|
export declare function isScalar(config: ConfigFile, type: string): boolean;
|
|
14
|
-
export declare function parseScalar(config: ConfigFile, type: string, value?: string): string | number | boolean | undefined;
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { getCurrentConfig } from "./config";
|
|
2
|
-
import { getFieldsForType } from "./selection";
|
|
1
|
+
import { getCurrentConfig } from "./config.js";
|
|
2
|
+
import { getFieldsForType } from "./selection.js";
|
|
3
3
|
import {
|
|
4
4
|
fragmentKey
|
|
5
|
-
} from "./types";
|
|
5
|
+
} from "./types.js";
|
|
6
6
|
function marshalSelection({
|
|
7
7
|
selection,
|
|
8
|
-
data
|
|
8
|
+
data,
|
|
9
|
+
config = getCurrentConfig()
|
|
9
10
|
}) {
|
|
10
|
-
const config = getCurrentConfig();
|
|
11
11
|
if (data === null || typeof data === "undefined") {
|
|
12
12
|
return data;
|
|
13
13
|
}
|
|
14
14
|
if (Array.isArray(data)) {
|
|
15
|
-
return data.map((val) => marshalSelection({ selection, data: val }));
|
|
15
|
+
return data.map((val) => marshalSelection({ selection, data: val, config }));
|
|
16
16
|
}
|
|
17
|
-
const targetSelection = getFieldsForType(selection, data
|
|
17
|
+
const targetSelection = getFieldsForType(selection, data.__typename, false);
|
|
18
18
|
return Object.fromEntries(
|
|
19
19
|
Object.entries(data).map(([fieldName, value]) => {
|
|
20
20
|
if (fieldName === fragmentKey) {
|
|
@@ -25,7 +25,7 @@ function marshalSelection({
|
|
|
25
25
|
return [fieldName, value];
|
|
26
26
|
}
|
|
27
27
|
if (selection2) {
|
|
28
|
-
return [fieldName, marshalSelection({ selection: selection2, data: value })];
|
|
28
|
+
return [fieldName, marshalSelection({ selection: selection2, data: value, config })];
|
|
29
29
|
}
|
|
30
30
|
if (config.scalars?.[type]) {
|
|
31
31
|
const marshalFn = config.scalars[type].marshal;
|
|
@@ -46,7 +46,7 @@ function marshalSelection({
|
|
|
46
46
|
function marshalInputs({
|
|
47
47
|
artifact,
|
|
48
48
|
input,
|
|
49
|
-
config,
|
|
49
|
+
config = getCurrentConfig(),
|
|
50
50
|
rootType = "@root"
|
|
51
51
|
}) {
|
|
52
52
|
if (input === null || typeof input === "undefined") {
|
|
@@ -82,41 +82,8 @@ function marshalInputs({
|
|
|
82
82
|
function isScalar(config, type) {
|
|
83
83
|
return ["String", "Boolean", "Float", "ID", "Int"].concat(Object.keys(config.scalars || {})).includes(type);
|
|
84
84
|
}
|
|
85
|
-
function parseScalar(config, type, value) {
|
|
86
|
-
if (typeof value === "undefined") {
|
|
87
|
-
return void 0;
|
|
88
|
-
}
|
|
89
|
-
if (type === "Boolean") {
|
|
90
|
-
return value === "true";
|
|
91
|
-
}
|
|
92
|
-
if (type === "ID") {
|
|
93
|
-
return value;
|
|
94
|
-
}
|
|
95
|
-
if (type === "String") {
|
|
96
|
-
return value;
|
|
97
|
-
}
|
|
98
|
-
if (type === "Int") {
|
|
99
|
-
const result = parseInt(value, 10);
|
|
100
|
-
if (Number.isNaN(result)) {
|
|
101
|
-
return void 0;
|
|
102
|
-
}
|
|
103
|
-
return result;
|
|
104
|
-
}
|
|
105
|
-
if (type === "Float") {
|
|
106
|
-
const result = parseFloat(value);
|
|
107
|
-
if (Number.isNaN(result)) {
|
|
108
|
-
return void 0;
|
|
109
|
-
}
|
|
110
|
-
return result;
|
|
111
|
-
}
|
|
112
|
-
if (config.scalars?.[type]?.marshal) {
|
|
113
|
-
return config.scalars[type]?.marshal(value);
|
|
114
|
-
}
|
|
115
|
-
return value;
|
|
116
|
-
}
|
|
117
85
|
export {
|
|
118
86
|
isScalar,
|
|
119
87
|
marshalInputs,
|
|
120
|
-
marshalSelection
|
|
121
|
-
parseScalar
|
|
88
|
+
marshalSelection
|
|
122
89
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { SubscriptionSelection } from './types';
|
|
1
|
+
import type { SubscriptionSelection } from './types.js';
|
|
2
2
|
export declare function getFieldsForType(selection: SubscriptionSelection, __typename: string | undefined | null, loading: boolean): Required<SubscriptionSelection>['fields'];
|
|
@@ -1,4 +1,19 @@
|
|
|
1
|
+
const _memoCache = /* @__PURE__ */ new WeakMap();
|
|
1
2
|
function getFieldsForType(selection, __typename, loading) {
|
|
3
|
+
const cacheKey = `${__typename ?? ""}:${loading ? 1 : 0}`;
|
|
4
|
+
let inner = _memoCache.get(selection);
|
|
5
|
+
if (inner !== void 0) {
|
|
6
|
+
const cached = inner.get(cacheKey);
|
|
7
|
+
if (cached !== void 0) return cached;
|
|
8
|
+
} else {
|
|
9
|
+
inner = /* @__PURE__ */ new Map();
|
|
10
|
+
_memoCache.set(selection, inner);
|
|
11
|
+
}
|
|
12
|
+
const result = _getFieldsForType(selection, __typename, loading);
|
|
13
|
+
inner.set(cacheKey, result);
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
16
|
+
function _getFieldsForType(selection, __typename, loading) {
|
|
2
17
|
if (loading) {
|
|
3
18
|
if (selection.loadingTypes && selection.loadingTypes.length > 0) {
|
|
4
19
|
return deepMerge(
|
|
@@ -20,11 +35,11 @@ function getFieldsForType(selection, __typename, loading) {
|
|
|
20
35
|
}
|
|
21
36
|
function deepMerge(...objects) {
|
|
22
37
|
const mergedObj = {};
|
|
23
|
-
for (
|
|
38
|
+
for (const obj of objects) {
|
|
24
39
|
if (!obj) {
|
|
25
40
|
continue;
|
|
26
41
|
}
|
|
27
|
-
for (
|
|
42
|
+
for (const prop in obj) {
|
|
28
43
|
if (prop in obj) {
|
|
29
44
|
const val = obj[prop];
|
|
30
45
|
if (typeof val === "object" && val !== null && !Array.isArray(val)) {
|
|
@@ -7,7 +7,7 @@ export declare class Writable<T> {
|
|
|
7
7
|
subscribe(run: Subscriber<T>, invalidate?: Invalidator<T>): Unsubscriber;
|
|
8
8
|
}
|
|
9
9
|
/** Start and stop notification callbacks. */
|
|
10
|
-
type StartStopNotifier<T> = (set: Subscriber<T>) => Unsubscriber |
|
|
10
|
+
type StartStopNotifier<T> = (set: Subscriber<T>) => Unsubscriber | undefined;
|
|
11
11
|
/** Callback to inform of a value updates. */
|
|
12
12
|
export type Subscriber<T> = (value: T) => void;
|
|
13
13
|
/** Unsubscribes from value updates. */
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
const subscriber_queue = [];
|
|
2
|
-
const noop = () =>
|
|
3
|
-
};
|
|
2
|
+
const noop = () => void 0;
|
|
4
3
|
class Writable {
|
|
5
4
|
state;
|
|
6
5
|
#subscribers;
|
|
@@ -50,7 +49,7 @@ class Writable {
|
|
|
50
49
|
}
|
|
51
50
|
}
|
|
52
51
|
function safe_not_equal(a, b) {
|
|
53
|
-
return a
|
|
52
|
+
return a !== a ? b === b : a !== b || a && typeof a === "object" || typeof a === "function";
|
|
54
53
|
}
|
|
55
54
|
export {
|
|
56
55
|
Writable
|