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,107 +0,0 @@
|
|
|
1
|
-
import type { HoudiniClient } from '.';
|
|
2
|
-
import type { Cache } from '../cache/cache';
|
|
3
|
-
import type { Layer } from '../cache/storage';
|
|
4
|
-
import type { ConfigFile } from '../lib/config';
|
|
5
|
-
import { Writable } from '../lib/store';
|
|
6
|
-
import type { DocumentArtifact, QueryResult, GraphQLObject, SubscriptionSpec, CachePolicies, GraphQLVariables } from '../lib/types';
|
|
7
|
-
export declare class DocumentStore<_Data extends GraphQLObject, _Input extends GraphQLVariables> extends Writable<QueryResult<_Data, _Input>> {
|
|
8
|
-
#private;
|
|
9
|
-
readonly artifact: DocumentArtifact;
|
|
10
|
-
pendingPromise: {
|
|
11
|
-
then: (val: any) => void;
|
|
12
|
-
} | null;
|
|
13
|
-
serverSideFallback?: boolean;
|
|
14
|
-
controllerKey(variables: any): string;
|
|
15
|
-
constructor({ artifact, plugins, pipeline, client, cache, enableCache, initialValue, initialVariables, fetching, }: {
|
|
16
|
-
artifact: DocumentArtifact;
|
|
17
|
-
plugins?: ClientHooks[];
|
|
18
|
-
pipeline?: ClientHooks[];
|
|
19
|
-
client: HoudiniClient | null;
|
|
20
|
-
cache?: Cache;
|
|
21
|
-
enableCache?: boolean;
|
|
22
|
-
initialValue?: _Data | null;
|
|
23
|
-
fetching?: boolean;
|
|
24
|
-
serverSideFallback?: boolean;
|
|
25
|
-
initialVariables?: _Input;
|
|
26
|
-
});
|
|
27
|
-
send({ metadata, session, fetch, variables, policy, stuff, cacheParams, setup, silenceEcho, abortController, }?: SendParams): Promise<QueryResult<_Data, _Input>>;
|
|
28
|
-
cleanup(): Promise<void>;
|
|
29
|
-
getFetch(getSession: () => App.Session | null | undefined): (input: RequestInfo | URL, init?: RequestInit | undefined) => Promise<Response>;
|
|
30
|
-
}
|
|
31
|
-
declare function marshalVariables<_Data extends GraphQLObject, _Input extends GraphQLVariables>(ctx: ClientPluginContext): Record<string, any>;
|
|
32
|
-
export type ClientPlugin = () => ClientHooks | null | (ClientHooks | ClientPlugin | null)[];
|
|
33
|
-
export type ClientHooks = {
|
|
34
|
-
start?: ClientPluginEnterPhase;
|
|
35
|
-
beforeNetwork?: ClientPluginEnterPhase;
|
|
36
|
-
network?: ClientPluginEnterPhase;
|
|
37
|
-
afterNetwork?: ClientPluginExitPhase;
|
|
38
|
-
end?: ClientPluginExitPhase;
|
|
39
|
-
cleanup?(ctx: ClientPluginContext): void | Promise<void>;
|
|
40
|
-
catch?(ctx: ClientPluginContext, args: ClientPluginErrorHandlers): void | Promise<void>;
|
|
41
|
-
};
|
|
42
|
-
export type Fetch = typeof globalThis.fetch;
|
|
43
|
-
export type ClientPluginContext = {
|
|
44
|
-
config: ConfigFile;
|
|
45
|
-
name: string;
|
|
46
|
-
text: string;
|
|
47
|
-
hash: string;
|
|
48
|
-
artifact: DocumentArtifact;
|
|
49
|
-
policy?: CachePolicies;
|
|
50
|
-
fetch?: Fetch;
|
|
51
|
-
variables?: Record<string, any> | null;
|
|
52
|
-
metadata?: App.Metadata | null;
|
|
53
|
-
session?: App.Session | null;
|
|
54
|
-
fetchParams?: RequestInit;
|
|
55
|
-
abortController: AbortController;
|
|
56
|
-
cacheParams?: {
|
|
57
|
-
layer?: Layer;
|
|
58
|
-
notifySubscribers?: SubscriptionSpec[];
|
|
59
|
-
forceNotify?: boolean;
|
|
60
|
-
disableWrite?: boolean;
|
|
61
|
-
disableRead?: boolean;
|
|
62
|
-
disableSubscriptions?: boolean;
|
|
63
|
-
applyUpdates?: string[];
|
|
64
|
-
serverSideFallback?: boolean;
|
|
65
|
-
};
|
|
66
|
-
stuff: App.Stuff;
|
|
67
|
-
};
|
|
68
|
-
type ClientPluginPhase<Handlers> = (ctx: ClientPluginContext, handlers: Handlers) => void | Promise<void>;
|
|
69
|
-
export type ClientPluginEnterPhase = ClientPluginPhase<ClientPluginEnterHandlers>;
|
|
70
|
-
export type ClientPluginExitPhase = ClientPluginPhase<ClientPluginExitHandlers>;
|
|
71
|
-
export type ClientPluginEnterHandlers = {
|
|
72
|
-
initialValue: QueryResult;
|
|
73
|
-
/** A reference to the houdini client to access any configuration values */
|
|
74
|
-
client: HoudiniClient;
|
|
75
|
-
/** Move onto the next step using the provided context. */
|
|
76
|
-
next(ctx: ClientPluginContext): void;
|
|
77
|
-
/** Terminate the current chain */
|
|
78
|
-
resolve(ctx: ClientPluginContext, data: QueryResult): void;
|
|
79
|
-
/** Update the stores state without resolving the promise */
|
|
80
|
-
updateState(updater: (old: QueryResult) => QueryResult): void;
|
|
81
|
-
/** Return true if the variables have changed */
|
|
82
|
-
variablesChanged: (ctx: ClientPluginContext) => boolean;
|
|
83
|
-
/** Returns the marshaled variables for the operation */
|
|
84
|
-
marshalVariables: typeof marshalVariables;
|
|
85
|
-
};
|
|
86
|
-
/** Exit handlers are the same as enter handlers but don't need to resolve with a specific value */
|
|
87
|
-
export type ClientPluginExitHandlers = Omit<ClientPluginEnterHandlers, 'resolve'> & {
|
|
88
|
-
resolve: (ctx: ClientPluginContext, data?: QueryResult) => void;
|
|
89
|
-
value: QueryResult;
|
|
90
|
-
};
|
|
91
|
-
/** Exit handlers are the same as enter handlers but don't need to resolve with a specific value */
|
|
92
|
-
export type ClientPluginErrorHandlers = ClientPluginEnterHandlers & {
|
|
93
|
-
error: unknown;
|
|
94
|
-
};
|
|
95
|
-
export type SendParams = {
|
|
96
|
-
fetch?: Fetch;
|
|
97
|
-
variables?: Record<string, any> | null;
|
|
98
|
-
metadata?: App.Metadata | null;
|
|
99
|
-
session?: App.Session | null;
|
|
100
|
-
policy?: CachePolicies;
|
|
101
|
-
stuff?: Partial<App.Stuff>;
|
|
102
|
-
cacheParams?: ClientPluginContext['cacheParams'];
|
|
103
|
-
setup?: boolean;
|
|
104
|
-
silenceEcho?: boolean;
|
|
105
|
-
abortController?: AbortController;
|
|
106
|
-
};
|
|
107
|
-
export {};
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/// <reference path="../../../../../houdini.d.ts" />
|
|
2
|
-
import type { Cache } from '../cache/cache';
|
|
3
|
-
import type { DocumentArtifact, GraphQLVariables, GraphQLObject, NestedList } from '../lib/types';
|
|
4
|
-
import type { ClientHooks, ClientPlugin } from './documentStore';
|
|
5
|
-
import { DocumentStore } from './documentStore';
|
|
6
|
-
import type { FetchParamFn, ThrowOnErrorOperations, ThrowOnErrorParams } from './plugins';
|
|
7
|
-
export { DocumentStore, type ClientPlugin, type SendParams } from './documentStore';
|
|
8
|
-
export { fetch, mutation, query, subscription } from './plugins';
|
|
9
|
-
export type HoudiniClientConstructorArgs = {
|
|
10
|
-
url?: string;
|
|
11
|
-
fetchParams?: FetchParamFn;
|
|
12
|
-
plugins?: NestedList<ClientPlugin>;
|
|
13
|
-
pipeline?: NestedList<ClientPlugin>;
|
|
14
|
-
throwOnError?: ThrowOnErrorParams;
|
|
15
|
-
};
|
|
16
|
-
export type ObserveParams<_Data extends GraphQLObject, _Artifact extends DocumentArtifact = DocumentArtifact, _Input extends GraphQLVariables = GraphQLVariables> = {
|
|
17
|
-
artifact: _Artifact;
|
|
18
|
-
enableCache?: boolean;
|
|
19
|
-
cache?: Cache;
|
|
20
|
-
initialValue?: _Data | null;
|
|
21
|
-
initialVariables?: _Input;
|
|
22
|
-
fetching?: boolean;
|
|
23
|
-
};
|
|
24
|
-
export declare class HoudiniClient {
|
|
25
|
-
url: string;
|
|
26
|
-
readonly throwOnError_operations: ThrowOnErrorOperations[];
|
|
27
|
-
private cache;
|
|
28
|
-
private throwOnError;
|
|
29
|
-
private fetchParams;
|
|
30
|
-
private pipeline;
|
|
31
|
-
private extraPlugins;
|
|
32
|
-
proxies: Record<string, (operation: {
|
|
33
|
-
query: string;
|
|
34
|
-
variables: any;
|
|
35
|
-
operationName: string;
|
|
36
|
-
session: App.Session | null | undefined;
|
|
37
|
-
}) => Promise<any>>;
|
|
38
|
-
componentCache: Record<string, any>;
|
|
39
|
-
setCache(cache: Cache): void;
|
|
40
|
-
constructor({ url, fetchParams, plugins, pipeline, throwOnError, }?: HoudiniClientConstructorArgs);
|
|
41
|
-
get plugins(): ClientPlugin[];
|
|
42
|
-
observe<_Data extends GraphQLObject, _Input extends GraphQLVariables>({ enableCache, fetching, ...rest }: ObserveParams<_Data, DocumentArtifact, _Input>): DocumentStore<_Data, _Input>;
|
|
43
|
-
registerProxy(url: string, handler: (operation: {
|
|
44
|
-
query: string;
|
|
45
|
-
variables: any;
|
|
46
|
-
operationName: string;
|
|
47
|
-
session: App.Session | null | undefined;
|
|
48
|
-
}) => Promise<any>): void;
|
|
49
|
-
}
|
|
50
|
-
export declare function createPluginHooks(plugins: ClientPlugin[]): ClientHooks[];
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import cacheRef from "../cache";
|
|
2
|
-
import { getCurrentConfig, localApiEndpoint } from "../lib";
|
|
3
|
-
import { flatten } from "../lib/flatten";
|
|
4
|
-
import { DocumentStore } from "./documentStore";
|
|
5
|
-
import {
|
|
6
|
-
fetch as fetchPlugin,
|
|
7
|
-
fetchParams as fetchParamsPlugin,
|
|
8
|
-
fragment as fragmentPlugin,
|
|
9
|
-
mutation as mutationPlugin,
|
|
10
|
-
query as queryPlugin,
|
|
11
|
-
throwOnError as throwOnErrorPlugin,
|
|
12
|
-
optimisticKeys
|
|
13
|
-
} from "./plugins";
|
|
14
|
-
import pluginsFromPlugins from "./plugins/injectedPlugins";
|
|
15
|
-
import { DocumentStore as DocumentStore2 } from "./documentStore";
|
|
16
|
-
import { fetch, mutation, query, subscription } from "./plugins";
|
|
17
|
-
class HoudiniClient {
|
|
18
|
-
// the URL of the api
|
|
19
|
-
url;
|
|
20
|
-
// expose operations settings
|
|
21
|
-
throwOnError_operations;
|
|
22
|
-
cache = null;
|
|
23
|
-
throwOnError;
|
|
24
|
-
fetchParams;
|
|
25
|
-
pipeline;
|
|
26
|
-
extraPlugins;
|
|
27
|
-
proxies = {};
|
|
28
|
-
// this is modified by page entries when they load in order to register the components source
|
|
29
|
-
componentCache = {};
|
|
30
|
-
// we need the ability to link the client up with an external cache
|
|
31
|
-
setCache(cache) {
|
|
32
|
-
this.cache = cache;
|
|
33
|
-
}
|
|
34
|
-
constructor({
|
|
35
|
-
url,
|
|
36
|
-
fetchParams,
|
|
37
|
-
plugins,
|
|
38
|
-
pipeline,
|
|
39
|
-
throwOnError
|
|
40
|
-
} = {}) {
|
|
41
|
-
if (plugins && pipeline) {
|
|
42
|
-
throw new Error(
|
|
43
|
-
"A client cannot be given a pipeline and a list of plugins at the same time."
|
|
44
|
-
);
|
|
45
|
-
}
|
|
46
|
-
this.throwOnError_operations = throwOnError?.operations ?? [];
|
|
47
|
-
let serverPort = globalThis.process?.env?.HOUDINI_PORT ?? "5173";
|
|
48
|
-
this.url = url ?? (globalThis.window ? "" : `http://localhost:${serverPort}`) + localApiEndpoint(getCurrentConfig());
|
|
49
|
-
this.throwOnError = throwOnError;
|
|
50
|
-
this.fetchParams = fetchParams;
|
|
51
|
-
this.pipeline = pipeline;
|
|
52
|
-
this.extraPlugins = plugins;
|
|
53
|
-
}
|
|
54
|
-
get plugins() {
|
|
55
|
-
return flatten(
|
|
56
|
-
[].concat(
|
|
57
|
-
// if they specified a throw behavior
|
|
58
|
-
this.throwOnError ? [throwOnErrorPlugin(this.throwOnError)] : [],
|
|
59
|
-
fetchParamsPlugin(this.fetchParams),
|
|
60
|
-
// if the user wants to specify the entire pipeline, let them do so
|
|
61
|
-
this.pipeline ?? // the user doesn't have a specific pipeline so we should just add their desired plugins
|
|
62
|
-
// to the standard set
|
|
63
|
-
[
|
|
64
|
-
optimisticKeys(this.cache ?? cacheRef),
|
|
65
|
-
// make sure that documents always work
|
|
66
|
-
queryPlugin(this.cache ?? cacheRef),
|
|
67
|
-
mutationPlugin(this.cache ?? cacheRef),
|
|
68
|
-
fragmentPlugin(this.cache ?? cacheRef)
|
|
69
|
-
].concat(
|
|
70
|
-
// add the specified middlewares
|
|
71
|
-
this.extraPlugins ?? [],
|
|
72
|
-
// and any middlewares we got from plugins
|
|
73
|
-
pluginsFromPlugins,
|
|
74
|
-
// if they provided a fetch function, use it as the body for the fetch middleware
|
|
75
|
-
fetchPlugin()
|
|
76
|
-
)
|
|
77
|
-
)
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
observe({
|
|
81
|
-
enableCache = true,
|
|
82
|
-
fetching = false,
|
|
83
|
-
...rest
|
|
84
|
-
}) {
|
|
85
|
-
return new DocumentStore({
|
|
86
|
-
client: this,
|
|
87
|
-
plugins: createPluginHooks(this.plugins),
|
|
88
|
-
fetching,
|
|
89
|
-
enableCache,
|
|
90
|
-
cache: this.cache ?? void 0,
|
|
91
|
-
...rest
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
registerProxy(url, handler) {
|
|
95
|
-
this.proxies[url] = handler;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
function createPluginHooks(plugins) {
|
|
99
|
-
return plugins.reduce((hooks, plugin) => {
|
|
100
|
-
if (typeof plugin !== "function") {
|
|
101
|
-
throw new Error("Encountered client plugin that's not a function");
|
|
102
|
-
}
|
|
103
|
-
const result = plugin();
|
|
104
|
-
if (!result) {
|
|
105
|
-
return hooks;
|
|
106
|
-
}
|
|
107
|
-
if (!Array.isArray(result)) {
|
|
108
|
-
return hooks.concat(result);
|
|
109
|
-
}
|
|
110
|
-
for (const value of result) {
|
|
111
|
-
if (!value) {
|
|
112
|
-
continue;
|
|
113
|
-
}
|
|
114
|
-
if (typeof value === "function") {
|
|
115
|
-
return hooks.concat(createPluginHooks([value]));
|
|
116
|
-
}
|
|
117
|
-
hooks.push(value);
|
|
118
|
-
}
|
|
119
|
-
return hooks;
|
|
120
|
-
}, []);
|
|
121
|
-
}
|
|
122
|
-
export {
|
|
123
|
-
DocumentStore2 as DocumentStore,
|
|
124
|
-
HoudiniClient,
|
|
125
|
-
createPluginHooks,
|
|
126
|
-
fetch,
|
|
127
|
-
mutation,
|
|
128
|
-
query,
|
|
129
|
-
subscription
|
|
130
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import cache from '../../cache';
|
|
2
|
-
import { Cache } from '../../cache/cache';
|
|
3
|
-
import type { ClientPlugin } from '../documentStore';
|
|
4
|
-
export declare const cachePolicy: ({ enabled, setFetching, cache: localCache, serverSideFallback, }: {
|
|
5
|
-
enabled: boolean;
|
|
6
|
-
setFetching: (val: boolean, data?: any) => void;
|
|
7
|
-
cache?: Cache | undefined;
|
|
8
|
-
serverSideFallback?: boolean | undefined;
|
|
9
|
-
}) => ClientPlugin;
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import cache from "../../cache";
|
|
2
|
-
import { Cache } from "../../cache/cache";
|
|
3
|
-
import { ArtifactKind, CachePolicy, DataSource } from "../../lib/types";
|
|
4
|
-
const serverSide = typeof globalThis.window === "undefined";
|
|
5
|
-
const cachePolicy = ({
|
|
6
|
-
enabled,
|
|
7
|
-
setFetching,
|
|
8
|
-
cache: localCache = cache,
|
|
9
|
-
serverSideFallback = true
|
|
10
|
-
}) => () => {
|
|
11
|
-
return {
|
|
12
|
-
beforeNetwork(ctx, { initialValue, next, resolve, marshalVariables }) {
|
|
13
|
-
const { policy, artifact } = ctx;
|
|
14
|
-
let useCache = false;
|
|
15
|
-
if (enabled && (artifact.kind === ArtifactKind.Query || artifact.kind === ArtifactKind.Fragment) && !ctx.cacheParams?.disableRead) {
|
|
16
|
-
const policyAllowsCache = policy !== CachePolicy.NetworkOnly && policy !== CachePolicy.NoCache;
|
|
17
|
-
if (policyAllowsCache) {
|
|
18
|
-
const value = localCache.read({
|
|
19
|
-
selection: artifact.selection,
|
|
20
|
-
variables: marshalVariables(ctx),
|
|
21
|
-
fullCheck: true
|
|
22
|
-
});
|
|
23
|
-
const allowed = !value.partial || // or the artifact allows for partial responses
|
|
24
|
-
artifact.kind === ArtifactKind.Query && artifact.partial;
|
|
25
|
-
if (policy === CachePolicy.CacheOnly) {
|
|
26
|
-
return resolve(ctx, {
|
|
27
|
-
fetching: false,
|
|
28
|
-
variables: ctx.variables ?? null,
|
|
29
|
-
data: allowed ? value.data : initialValue.data,
|
|
30
|
-
errors: null,
|
|
31
|
-
source: DataSource.Cache,
|
|
32
|
-
partial: allowed ? value.partial : false,
|
|
33
|
-
stale: value.stale
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
useCache = !!(value.data !== null && allowed);
|
|
37
|
-
if (useCache) {
|
|
38
|
-
resolve(ctx, {
|
|
39
|
-
fetching: false,
|
|
40
|
-
variables: ctx.variables ?? null,
|
|
41
|
-
data: value.data,
|
|
42
|
-
errors: null,
|
|
43
|
-
source: DataSource.Cache,
|
|
44
|
-
partial: value.partial,
|
|
45
|
-
stale: value.stale
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
if (useCache && !value.partial && !value.stale && // if the policy is CacheAndNetwork then we don't want to stop here regardless
|
|
49
|
-
ctx.policy !== "CacheAndNetwork") {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
if (enabled) {
|
|
55
|
-
setTimeout(() => {
|
|
56
|
-
localCache._internal_unstable.collectGarbage();
|
|
57
|
-
}, 0);
|
|
58
|
-
}
|
|
59
|
-
if (!ctx.stuff?.silenceLoading) {
|
|
60
|
-
let fetchingState = null;
|
|
61
|
-
if (!useCache && "enableLoadingState" in artifact && artifact.enableLoadingState) {
|
|
62
|
-
fetchingState = localCache.read({
|
|
63
|
-
selection: artifact.selection,
|
|
64
|
-
variables: marshalVariables(ctx),
|
|
65
|
-
loading: true
|
|
66
|
-
}).data;
|
|
67
|
-
}
|
|
68
|
-
setFetching(!useCache, fetchingState);
|
|
69
|
-
}
|
|
70
|
-
return next(ctx);
|
|
71
|
-
},
|
|
72
|
-
afterNetwork(ctx, { resolve, value, marshalVariables }) {
|
|
73
|
-
if (ctx.policy !== CachePolicy.NoCache && value.source !== DataSource.Cache && enabled && value.data && !ctx.cacheParams?.disableWrite) {
|
|
74
|
-
if (ctx.cacheParams && "serverSideFallback" in ctx.cacheParams) {
|
|
75
|
-
serverSideFallback = ctx.cacheParams?.serverSideFallback ?? serverSideFallback;
|
|
76
|
-
}
|
|
77
|
-
const targetCache = serverSide && serverSideFallback ? new Cache({ disabled: false }) : localCache;
|
|
78
|
-
let layer;
|
|
79
|
-
if (!serverSide && ctx.cacheParams?.layer) {
|
|
80
|
-
layer = ctx.cacheParams.layer.id;
|
|
81
|
-
}
|
|
82
|
-
targetCache.write({
|
|
83
|
-
...ctx.cacheParams,
|
|
84
|
-
layer,
|
|
85
|
-
selection: ctx.artifact.selection,
|
|
86
|
-
data: value.data,
|
|
87
|
-
variables: marshalVariables(ctx)
|
|
88
|
-
});
|
|
89
|
-
value = {
|
|
90
|
-
...value,
|
|
91
|
-
data: targetCache.read({
|
|
92
|
-
selection: ctx.artifact.selection,
|
|
93
|
-
variables: marshalVariables(ctx),
|
|
94
|
-
ignoreMasking: serverSide
|
|
95
|
-
}).data
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
resolve(ctx, value);
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
};
|
|
102
|
-
export {
|
|
103
|
-
cachePolicy
|
|
104
|
-
};
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import type { RequestPayload } from '../../lib/types';
|
|
2
|
-
import type { ClientPlugin } from '../documentStore';
|
|
3
|
-
export declare const fetch: (target?: RequestHandler | string) => ClientPlugin;
|
|
4
|
-
export type FetchContext = {
|
|
5
|
-
fetch: typeof globalThis.fetch;
|
|
6
|
-
metadata?: App.Metadata | null;
|
|
7
|
-
session: App.Session | null;
|
|
8
|
-
};
|
|
9
|
-
/**
|
|
10
|
-
* ## Tip 👇
|
|
11
|
-
*
|
|
12
|
-
* To define types for your metadata, create a file `src/app.d.ts` containing the followingI:
|
|
13
|
-
*
|
|
14
|
-
* ```ts
|
|
15
|
-
* declare namespace App { *
|
|
16
|
-
* interface Metadata {}
|
|
17
|
-
* }
|
|
18
|
-
* ```
|
|
19
|
-
*
|
|
20
|
-
*/
|
|
21
|
-
export type RequestHandlerArgs = FetchContext & FetchParams;
|
|
22
|
-
export type RequestHandler<_Data = any> = (args: RequestHandlerArgs) => Promise<RequestPayload<_Data>>;
|
|
23
|
-
export type FetchParams = {
|
|
24
|
-
name: string;
|
|
25
|
-
text: string;
|
|
26
|
-
hash: string;
|
|
27
|
-
variables: {
|
|
28
|
-
[key: string]: any;
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
export declare function isExtractableFile(value: any): value is ExtractableFile;
|
|
32
|
-
type ExtractableFile = File | Blob;
|
|
33
|
-
/** @typedef {import("./isExtractableFile.mjs").default} isExtractableFile */
|
|
34
|
-
export declare function extractFiles(value: any): {
|
|
35
|
-
clone: any;
|
|
36
|
-
files: Map<any, any>;
|
|
37
|
-
};
|
|
38
|
-
export {};
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
import { ArtifactKind, DataSource } from "../../lib/types";
|
|
2
|
-
const fetch = (target) => {
|
|
3
|
-
return () => {
|
|
4
|
-
return {
|
|
5
|
-
async network(ctx, { client, initialValue, resolve, marshalVariables }) {
|
|
6
|
-
if (ctx.artifact.kind === ArtifactKind.Fragment) {
|
|
7
|
-
return resolve(ctx, initialValue);
|
|
8
|
-
}
|
|
9
|
-
const fetch2 = ctx.fetch ?? globalThis.fetch;
|
|
10
|
-
const fetchParams = {
|
|
11
|
-
name: ctx.name,
|
|
12
|
-
text: ctx.text,
|
|
13
|
-
hash: ctx.hash,
|
|
14
|
-
variables: { ...marshalVariables(ctx) }
|
|
15
|
-
};
|
|
16
|
-
for (const variable of ctx.artifact.stripVariables) {
|
|
17
|
-
delete fetchParams.variables[variable];
|
|
18
|
-
}
|
|
19
|
-
let fetchFn = defaultFetch(client.url, ctx.fetchParams);
|
|
20
|
-
if (target) {
|
|
21
|
-
if (typeof target === "string") {
|
|
22
|
-
fetchFn = defaultFetch(target, ctx.fetchParams);
|
|
23
|
-
} else {
|
|
24
|
-
fetchFn = target;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
const result = await fetchFn({
|
|
28
|
-
// wrap the user's fetch function so we can identify SSR by checking
|
|
29
|
-
// the response.url
|
|
30
|
-
fetch: (url, args) => {
|
|
31
|
-
const newArgs = handleMultipart(fetchParams, args) ?? args;
|
|
32
|
-
return fetch2(url, {
|
|
33
|
-
...newArgs,
|
|
34
|
-
signal: ctx.abortController.signal
|
|
35
|
-
});
|
|
36
|
-
},
|
|
37
|
-
metadata: ctx.metadata,
|
|
38
|
-
session: ctx.session || {},
|
|
39
|
-
...fetchParams
|
|
40
|
-
});
|
|
41
|
-
resolve(ctx, {
|
|
42
|
-
fetching: false,
|
|
43
|
-
variables: ctx.variables ?? {},
|
|
44
|
-
data: result.data,
|
|
45
|
-
errors: !result.errors || result.errors.length === 0 ? null : result.errors,
|
|
46
|
-
partial: false,
|
|
47
|
-
stale: false,
|
|
48
|
-
source: DataSource.Network
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
};
|
|
53
|
-
};
|
|
54
|
-
const defaultFetch = (url, params) => {
|
|
55
|
-
if (!url) {
|
|
56
|
-
throw new Error(
|
|
57
|
-
"Could not find configured client url. Please specify one in your HoudiniClient constructor."
|
|
58
|
-
);
|
|
59
|
-
}
|
|
60
|
-
return async ({ fetch: fetch2, name, text, variables }) => {
|
|
61
|
-
const result = await fetch2(url, {
|
|
62
|
-
method: "POST",
|
|
63
|
-
body: JSON.stringify({ operationName: name, query: text, variables }),
|
|
64
|
-
...params,
|
|
65
|
-
headers: {
|
|
66
|
-
Accept: "application/graphql+json, application/json",
|
|
67
|
-
"Content-Type": "application/json",
|
|
68
|
-
...params?.headers
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
if (!result.ok && !result.headers.get("content-type")?.startsWith("application/json") && !result.headers.get("content-type")?.startsWith("application/graphql+json")) {
|
|
72
|
-
throw new Error(
|
|
73
|
-
`Failed to fetch: server returned invalid response with error ${result.status}: ${result.statusText}`
|
|
74
|
-
);
|
|
75
|
-
}
|
|
76
|
-
return await result.json();
|
|
77
|
-
};
|
|
78
|
-
};
|
|
79
|
-
function handleMultipart(params, args) {
|
|
80
|
-
const { files } = extractFiles({
|
|
81
|
-
variables: params.variables
|
|
82
|
-
});
|
|
83
|
-
if (files.size) {
|
|
84
|
-
const req = args;
|
|
85
|
-
let headers = {};
|
|
86
|
-
if (req?.headers) {
|
|
87
|
-
const filtered = Object.entries(req?.headers).filter(([key, value]) => {
|
|
88
|
-
return !(key.toLowerCase() == "content-type" && value.toLowerCase() == "application/json");
|
|
89
|
-
});
|
|
90
|
-
headers = Object.fromEntries(filtered);
|
|
91
|
-
}
|
|
92
|
-
const form = new FormData();
|
|
93
|
-
if (args && args?.body) {
|
|
94
|
-
form.set("operations", args?.body);
|
|
95
|
-
} else {
|
|
96
|
-
form.set(
|
|
97
|
-
"operations",
|
|
98
|
-
JSON.stringify({
|
|
99
|
-
operationName: params.name,
|
|
100
|
-
query: params.text,
|
|
101
|
-
variables: params.variables
|
|
102
|
-
})
|
|
103
|
-
);
|
|
104
|
-
}
|
|
105
|
-
const map = {};
|
|
106
|
-
let i = 0;
|
|
107
|
-
files.forEach((paths) => {
|
|
108
|
-
map[++i] = paths;
|
|
109
|
-
});
|
|
110
|
-
form.set("map", JSON.stringify(map));
|
|
111
|
-
i = 0;
|
|
112
|
-
files.forEach((paths, file) => {
|
|
113
|
-
form.set(`${++i}`, file, file.name);
|
|
114
|
-
});
|
|
115
|
-
return { ...req, headers, body: form };
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
function isExtractableFile(value) {
|
|
119
|
-
return typeof File !== "undefined" && value instanceof File || typeof Blob !== "undefined" && value instanceof Blob;
|
|
120
|
-
}
|
|
121
|
-
function extractFiles(value) {
|
|
122
|
-
if (!arguments.length) throw new TypeError("Argument 1 `value` is required.");
|
|
123
|
-
const clones = /* @__PURE__ */ new Map();
|
|
124
|
-
const files = /* @__PURE__ */ new Map();
|
|
125
|
-
function recurse(value2, path, recursed) {
|
|
126
|
-
if (isExtractableFile(value2)) {
|
|
127
|
-
const filePaths = files.get(value2);
|
|
128
|
-
filePaths ? filePaths.push(path) : files.set(value2, [path]);
|
|
129
|
-
return null;
|
|
130
|
-
}
|
|
131
|
-
const valueIsList = Array.isArray(value2) || typeof FileList !== "undefined" && value2 instanceof FileList;
|
|
132
|
-
const valueIsPlainObject = isPlainObject(value2);
|
|
133
|
-
if (valueIsList || valueIsPlainObject) {
|
|
134
|
-
let clone = clones.get(value2);
|
|
135
|
-
const uncloned = !clone;
|
|
136
|
-
if (uncloned) {
|
|
137
|
-
clone = valueIsList ? [] : (
|
|
138
|
-
// Replicate if the plain object is an `Object` instance.
|
|
139
|
-
value2 instanceof /** @type {any} */
|
|
140
|
-
Object ? {} : /* @__PURE__ */ Object.create(null)
|
|
141
|
-
);
|
|
142
|
-
clones.set(
|
|
143
|
-
value2,
|
|
144
|
-
/** @type {Clone} */
|
|
145
|
-
clone
|
|
146
|
-
);
|
|
147
|
-
}
|
|
148
|
-
if (!recursed.has(value2)) {
|
|
149
|
-
const pathPrefix = path ? `${path}.` : "";
|
|
150
|
-
const recursedDeeper = new Set(recursed).add(value2);
|
|
151
|
-
if (valueIsList) {
|
|
152
|
-
let index = 0;
|
|
153
|
-
for (const item of value2) {
|
|
154
|
-
const itemClone = recurse(item, pathPrefix + index++, recursedDeeper);
|
|
155
|
-
if (uncloned) clone.push(itemClone);
|
|
156
|
-
}
|
|
157
|
-
} else
|
|
158
|
-
for (const key in value2) {
|
|
159
|
-
const propertyClone = recurse(value2[key], pathPrefix + key, recursedDeeper);
|
|
160
|
-
if (uncloned)
|
|
161
|
-
clone[key] = propertyClone;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
return clone;
|
|
165
|
-
}
|
|
166
|
-
return value2;
|
|
167
|
-
}
|
|
168
|
-
return {
|
|
169
|
-
clone: recurse(value, "", /* @__PURE__ */ new Set()),
|
|
170
|
-
files
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
function isPlainObject(value) {
|
|
174
|
-
if (typeof value !== "object" || value === null) {
|
|
175
|
-
return false;
|
|
176
|
-
}
|
|
177
|
-
const prototype = Object.getPrototypeOf(value);
|
|
178
|
-
return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);
|
|
179
|
-
}
|
|
180
|
-
export {
|
|
181
|
-
extractFiles,
|
|
182
|
-
fetch,
|
|
183
|
-
isExtractableFile
|
|
184
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { DocumentArtifact } from '../../lib/types';
|
|
2
|
-
import type { ClientPlugin, ClientPluginContext } from '../documentStore';
|
|
3
|
-
export type FetchParamFn = (ctx: FetchParamsInput) => Required<ClientPluginContext>['fetchParams'];
|
|
4
|
-
export declare const fetchParams: (fn?: FetchParamFn) => ClientPlugin;
|
|
5
|
-
export type FetchParamsInput = Pick<ClientPluginContext, 'config' | 'policy' | 'variables' | 'metadata' | 'session' | 'stuff'> & {
|
|
6
|
-
text: string;
|
|
7
|
-
hash: string;
|
|
8
|
-
document: DocumentArtifact;
|
|
9
|
-
};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
const fetchParams = (fn = () => ({})) => () => ({
|
|
2
|
-
start(ctx, { next, marshalVariables }) {
|
|
3
|
-
next({
|
|
4
|
-
...ctx,
|
|
5
|
-
fetchParams: fn({
|
|
6
|
-
// most of the stuff comes straight from the context
|
|
7
|
-
config: ctx.config,
|
|
8
|
-
policy: ctx.policy,
|
|
9
|
-
metadata: ctx.metadata,
|
|
10
|
-
session: ctx.session,
|
|
11
|
-
stuff: ctx.stuff,
|
|
12
|
-
// a few fields are renamed or modified
|
|
13
|
-
document: ctx.artifact,
|
|
14
|
-
variables: marshalVariables(ctx),
|
|
15
|
-
text: ctx.text,
|
|
16
|
-
hash: ctx.hash
|
|
17
|
-
})
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
export {
|
|
22
|
-
fetchParams
|
|
23
|
-
};
|