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
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync } from "fs";
|
|
2
|
+
import { codegen_setup, get_config, path, run_pipeline } from "../lib/index.js";
|
|
3
|
+
let compiler;
|
|
4
|
+
function document_hmr(ctx) {
|
|
5
|
+
const debounceHmr = createDebounceHmr(50);
|
|
6
|
+
let config;
|
|
7
|
+
const ownWrites = /* @__PURE__ */ new Map();
|
|
8
|
+
let generatedDir;
|
|
9
|
+
let rootPrefix;
|
|
10
|
+
const cleanupFiles = /* @__PURE__ */ new Set();
|
|
11
|
+
function isManifestFile(filepath) {
|
|
12
|
+
return (filepath.split("/").pop() ?? "").startsWith("+");
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
name: "houdini",
|
|
16
|
+
enforce: "pre",
|
|
17
|
+
// this is called when the dev server starts
|
|
18
|
+
async configureServer(server) {
|
|
19
|
+
config = await get_config();
|
|
20
|
+
compiler = await codegen_setup(config, "dev", ctx.db, ctx.db_file);
|
|
21
|
+
generatedDir = path.join(
|
|
22
|
+
server.config.root,
|
|
23
|
+
ctx.config.config_file.runtimeDir ?? ".houdini"
|
|
24
|
+
);
|
|
25
|
+
rootPrefix = server.config.root.endsWith("/") ? server.config.root : `${server.config.root}/`;
|
|
26
|
+
server.httpServer?.once("close", () => {
|
|
27
|
+
compiler.close();
|
|
28
|
+
});
|
|
29
|
+
try {
|
|
30
|
+
await compiler.run_pipeline({
|
|
31
|
+
// the pipeline through schema is run as part of codegen_setup
|
|
32
|
+
after: "Schema"
|
|
33
|
+
});
|
|
34
|
+
const docCount = ctx.db.get(
|
|
35
|
+
"SELECT COUNT(*) as count FROM documents WHERE visible = 1"
|
|
36
|
+
);
|
|
37
|
+
console.log(
|
|
38
|
+
`\u{1F3A9} Generated ${docCount?.count ?? 0} ${(docCount?.count ?? 0) === 1 ? "document" : "documents"}`
|
|
39
|
+
);
|
|
40
|
+
} catch {
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
// hotUpdate is called for 'create', 'update', and 'delete' events in Vite 8+.
|
|
44
|
+
// The legacy handleHotUpdate hook is only called for 'update', so new .gql files
|
|
45
|
+
// (type === 'create') would be silently ignored without this hook.
|
|
46
|
+
// Async so we can read file content eagerly to determine ownership before debouncing.
|
|
47
|
+
async hotUpdate(opts) {
|
|
48
|
+
if (!generatedDir) return;
|
|
49
|
+
const now = Date.now();
|
|
50
|
+
for (const [fp, ts] of ownWrites.entries()) {
|
|
51
|
+
if (now - ts > 1e3) ownWrites.delete(fp);
|
|
52
|
+
}
|
|
53
|
+
const server = opts.server;
|
|
54
|
+
if (opts.file.startsWith(`${generatedDir}/`) || opts.file === generatedDir) {
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
57
|
+
if (opts.type === "delete") {
|
|
58
|
+
const relPath = opts.file.substring(rootPrefix.length);
|
|
59
|
+
if (!opts.file.endsWith(".gql") && !isManifestFile(opts.file)) {
|
|
60
|
+
const rowCount = ctx.db.get(
|
|
61
|
+
"SELECT COUNT(*) as count FROM raw_documents WHERE filepath = ?",
|
|
62
|
+
[relPath]
|
|
63
|
+
)?.count ?? 0;
|
|
64
|
+
if (rowCount === 0) return;
|
|
65
|
+
}
|
|
66
|
+
debounceHmr.queueDelete(relPath, batchCallback);
|
|
67
|
+
return [];
|
|
68
|
+
}
|
|
69
|
+
const ownWriteTime = ownWrites.get(opts.file);
|
|
70
|
+
if (ownWriteTime !== void 0) {
|
|
71
|
+
if (Date.now() - ownWriteTime < 500) return [];
|
|
72
|
+
ownWrites.delete(opts.file);
|
|
73
|
+
}
|
|
74
|
+
let preReadContent = null;
|
|
75
|
+
if (!opts.file.endsWith(".gql")) {
|
|
76
|
+
try {
|
|
77
|
+
preReadContent = await opts.read();
|
|
78
|
+
} catch {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (!preReadContent.includes("$houdini")) {
|
|
82
|
+
if (!isManifestFile(opts.file)) {
|
|
83
|
+
const relPath = opts.file.substring(rootPrefix.length);
|
|
84
|
+
const rowCount = ctx.db.get(
|
|
85
|
+
"SELECT COUNT(*) as count FROM raw_documents WHERE filepath = ?",
|
|
86
|
+
[relPath]
|
|
87
|
+
)?.count ?? 0;
|
|
88
|
+
if (rowCount === 0) return;
|
|
89
|
+
cleanupFiles.add(opts.file);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
debounceHmr.queueUpdate(opts, preReadContent, batchCallback);
|
|
94
|
+
async function batchCallback(files, deletedFiles, task_id) {
|
|
95
|
+
if (!compiler) return;
|
|
96
|
+
await compiler.pipeline_lock(async () => {
|
|
97
|
+
if (deletedFiles.length > 0) {
|
|
98
|
+
const delClause = deletedFiles.map(() => "filepath = ?").join(" OR ");
|
|
99
|
+
ctx.db.run(`DELETE FROM raw_documents WHERE ${delClause}`, deletedFiles);
|
|
100
|
+
}
|
|
101
|
+
const filepaths = [];
|
|
102
|
+
const relativePaths = [];
|
|
103
|
+
const useStdio = config.config_file.pluginTransport === "stdio";
|
|
104
|
+
for (const [filepath, content] of Object.entries(files)) {
|
|
105
|
+
if (!filepath.includes(generatedDir) && (filepath.endsWith(".gql") || content.includes("$houdini") || cleanupFiles.delete(filepath) || isManifestFile(filepath))) {
|
|
106
|
+
const relPath = filepath.substring(rootPrefix.length);
|
|
107
|
+
relativePaths.push(relPath);
|
|
108
|
+
filepaths.push(filepath);
|
|
109
|
+
if (useStdio) {
|
|
110
|
+
let fileContent;
|
|
111
|
+
try {
|
|
112
|
+
fileContent = readFileSync(filepath, "utf-8");
|
|
113
|
+
} catch {
|
|
114
|
+
fileContent = content;
|
|
115
|
+
}
|
|
116
|
+
if (fileContent.trim() !== "") {
|
|
117
|
+
ownWrites.set(filepath, Date.now());
|
|
118
|
+
try {
|
|
119
|
+
writeFileSync(filepath, fileContent, "utf-8");
|
|
120
|
+
} catch {
|
|
121
|
+
ownWrites.delete(filepath);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
if (filepaths.length === 0) {
|
|
128
|
+
if (deletedFiles.length > 0) {
|
|
129
|
+
console.log(
|
|
130
|
+
`\u{1F3A9} Detected ${deletedFiles.length} deleted ${deletedFiles.length === 1 ? "file" : "files"}, re-running compiler`
|
|
131
|
+
);
|
|
132
|
+
ctx.db.run(`
|
|
133
|
+
UPDATE selections AS s
|
|
134
|
+
SET field_name = s.fragment_ref
|
|
135
|
+
WHERE s.fragment_ref IS NOT NULL
|
|
136
|
+
AND s.kind = 'fragment'
|
|
137
|
+
AND NOT EXISTS (SELECT 1 FROM documents d WHERE d.name = s.field_name)
|
|
138
|
+
`);
|
|
139
|
+
ctx.db.run(`
|
|
140
|
+
WITH orphan_selections AS (
|
|
141
|
+
SELECT s.id FROM selections s
|
|
142
|
+
LEFT JOIN selection_refs rp ON rp.parent_id = s.id
|
|
143
|
+
LEFT JOIN selection_refs rc ON rc.child_id = s.id
|
|
144
|
+
WHERE rp.id IS NULL AND rc.id IS NULL
|
|
145
|
+
)
|
|
146
|
+
DELETE FROM selections WHERE id IN (SELECT id FROM orphan_selections)
|
|
147
|
+
`);
|
|
148
|
+
try {
|
|
149
|
+
const results2 = await run_pipeline(compiler.trigger_hook, {
|
|
150
|
+
after: "AfterExtract"
|
|
151
|
+
});
|
|
152
|
+
const updated_modules2 = [
|
|
153
|
+
...Object.values(results2.GenerateDocuments || {}).flat(),
|
|
154
|
+
...Object.values(results2.GenerateRuntime || {}).flat()
|
|
155
|
+
];
|
|
156
|
+
const seenUrls2 = /* @__PURE__ */ new Set();
|
|
157
|
+
const updates2 = updated_modules2.flatMap((module_path) => {
|
|
158
|
+
const resolvedPath = module_path.startsWith("$houdini/") ? module_path.replace("$houdini", generatedDir) : module_path;
|
|
159
|
+
const mods = [
|
|
160
|
+
...server.moduleGraph.getModulesByFile(resolvedPath) ?? []
|
|
161
|
+
];
|
|
162
|
+
return mods.flatMap((mod) => {
|
|
163
|
+
if (seenUrls2.has(mod.url)) return [];
|
|
164
|
+
seenUrls2.add(mod.url);
|
|
165
|
+
server.moduleGraph.invalidateModule(mod);
|
|
166
|
+
return [
|
|
167
|
+
{
|
|
168
|
+
type: "js-update",
|
|
169
|
+
path: mod.url,
|
|
170
|
+
acceptedPath: mod.url,
|
|
171
|
+
timestamp: Date.now()
|
|
172
|
+
}
|
|
173
|
+
];
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
if (updates2.length > 0) {
|
|
177
|
+
server.ws.send({ type: "update", updates: updates2 });
|
|
178
|
+
}
|
|
179
|
+
} catch (err) {
|
|
180
|
+
console.error("[houdini] pipeline error after deletion:", err);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
const fileCount = filepaths.length;
|
|
186
|
+
console.log(
|
|
187
|
+
`\u{1F3A9} Detected ${fileCount} file ${fileCount === 1 ? "change" : "changes"}, re-running compiler`
|
|
188
|
+
);
|
|
189
|
+
const eqClause = relativePaths.map(() => "filepath = ?").join(" OR ");
|
|
190
|
+
const savedDocs = ctx.db.all(
|
|
191
|
+
`SELECT id, offset_line, offset_column, filepath, content, current_task, loaded_with
|
|
192
|
+
FROM raw_documents WHERE ${eqClause}`,
|
|
193
|
+
relativePaths
|
|
194
|
+
);
|
|
195
|
+
ctx.db.run(`DELETE from raw_documents WHERE ${eqClause}`, relativePaths);
|
|
196
|
+
ctx.db.run(`
|
|
197
|
+
UPDATE selections AS s
|
|
198
|
+
SET field_name = s.fragment_ref
|
|
199
|
+
WHERE s.fragment_ref IS NOT NULL
|
|
200
|
+
AND s.kind = 'fragment'
|
|
201
|
+
AND NOT EXISTS (SELECT 1 FROM documents d WHERE d.name = s.field_name)
|
|
202
|
+
`);
|
|
203
|
+
ctx.db.run(`
|
|
204
|
+
WITH orphan_selections AS (
|
|
205
|
+
SELECT s.id FROM selections s
|
|
206
|
+
LEFT JOIN selection_refs rp ON rp.parent_id = s.id
|
|
207
|
+
LEFT JOIN selection_refs rc ON rc.child_id = s.id
|
|
208
|
+
WHERE rp.id IS NULL AND rc.id IS NULL
|
|
209
|
+
)
|
|
210
|
+
DELETE FROM selections WHERE id IN (SELECT id FROM orphan_selections)
|
|
211
|
+
`);
|
|
212
|
+
try {
|
|
213
|
+
await compiler.trigger_hook("ExtractDocuments", {
|
|
214
|
+
payload: { filepaths }
|
|
215
|
+
});
|
|
216
|
+
} catch (err) {
|
|
217
|
+
for (const doc of savedDocs) {
|
|
218
|
+
try {
|
|
219
|
+
ctx.db.run(
|
|
220
|
+
`INSERT OR IGNORE INTO raw_documents
|
|
221
|
+
(offset_line, offset_column, filepath, content, loaded_with)
|
|
222
|
+
VALUES (?, ?, ?, ?, ?)`,
|
|
223
|
+
[
|
|
224
|
+
doc.offset_line,
|
|
225
|
+
doc.offset_column,
|
|
226
|
+
doc.filepath,
|
|
227
|
+
doc.content,
|
|
228
|
+
doc.loaded_with
|
|
229
|
+
]
|
|
230
|
+
);
|
|
231
|
+
} catch {
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
ctx.db.flush();
|
|
235
|
+
ctx.db.reload();
|
|
236
|
+
throw err;
|
|
237
|
+
}
|
|
238
|
+
ctx.db.run(`UPDATE raw_documents SET current_task = ? WHERE ${eqClause}`, [
|
|
239
|
+
task_id,
|
|
240
|
+
...relativePaths
|
|
241
|
+
]);
|
|
242
|
+
const changes = ctx.db.rowsModified();
|
|
243
|
+
if (changes === 0 && savedDocs.length === 0) {
|
|
244
|
+
if (!filepaths.some(isManifestFile)) return;
|
|
245
|
+
}
|
|
246
|
+
await compiler.trigger_hook("AfterExtract", { task_id });
|
|
247
|
+
ctx.db.run(
|
|
248
|
+
`
|
|
249
|
+
WITH RECURSIVE
|
|
250
|
+
seed AS (
|
|
251
|
+
SELECT DISTINCT d.name FROM raw_documents rd
|
|
252
|
+
JOIN documents d ON d.raw_document = rd.id
|
|
253
|
+
WHERE rd.current_task = $task_id
|
|
254
|
+
),
|
|
255
|
+
up AS (
|
|
256
|
+
SELECT name FROM seed
|
|
257
|
+
UNION
|
|
258
|
+
SELECT d2.name FROM up u
|
|
259
|
+
JOIN document_dependencies dd ON dd.depends_on = u.name
|
|
260
|
+
JOIN documents d2 ON d2.id = dd.document
|
|
261
|
+
),
|
|
262
|
+
down AS (
|
|
263
|
+
SELECT name FROM seed
|
|
264
|
+
UNION
|
|
265
|
+
SELECT dd.depends_on FROM down v
|
|
266
|
+
JOIN documents d ON d.name = v.name
|
|
267
|
+
JOIN document_dependencies dd ON dd.document = d.id
|
|
268
|
+
),
|
|
269
|
+
targets_up AS (
|
|
270
|
+
SELECT DISTINCT d.raw_document AS raw_id FROM documents d
|
|
271
|
+
JOIN up u ON u.name = d.name WHERE d.raw_document IS NOT NULL
|
|
272
|
+
),
|
|
273
|
+
targets_down AS (
|
|
274
|
+
SELECT DISTINCT d.raw_document AS raw_id FROM documents d
|
|
275
|
+
JOIN down v ON v.name = d.name
|
|
276
|
+
JOIN raw_documents rd ON rd.id = d.raw_document
|
|
277
|
+
WHERE d.raw_document IS NOT NULL
|
|
278
|
+
),
|
|
279
|
+
targets AS (SELECT raw_id FROM targets_up UNION SELECT raw_id FROM targets_down)
|
|
280
|
+
UPDATE raw_documents SET current_task = $task_id
|
|
281
|
+
WHERE id IN (SELECT raw_id FROM targets)
|
|
282
|
+
`,
|
|
283
|
+
{ $task_id: task_id }
|
|
284
|
+
);
|
|
285
|
+
let results;
|
|
286
|
+
try {
|
|
287
|
+
results = await run_pipeline(compiler.trigger_hook, {
|
|
288
|
+
task_id,
|
|
289
|
+
after: "AfterExtract"
|
|
290
|
+
});
|
|
291
|
+
} finally {
|
|
292
|
+
ctx.db.run(
|
|
293
|
+
`UPDATE raw_documents SET current_task = NULL WHERE current_task = ?`,
|
|
294
|
+
[task_id]
|
|
295
|
+
);
|
|
296
|
+
}
|
|
297
|
+
const changedDocCount = Object.values(results.GenerateDocuments || {}).flat().length;
|
|
298
|
+
console.log(
|
|
299
|
+
`\u{1F3A9} Updated ${changedDocCount} ${changedDocCount === 1 ? "document" : "documents"}`
|
|
300
|
+
);
|
|
301
|
+
const updated_modules = [
|
|
302
|
+
...Object.values(results.GenerateDocuments || {}).flat(),
|
|
303
|
+
...Object.values(results.GenerateRuntime || {}).flat()
|
|
304
|
+
];
|
|
305
|
+
const seenUrls = /* @__PURE__ */ new Set();
|
|
306
|
+
const updates = updated_modules.flatMap((module_path) => {
|
|
307
|
+
const resolvedPath = module_path.startsWith("$houdini/") ? module_path.replace("$houdini", generatedDir) : module_path;
|
|
308
|
+
const mods = [...server.moduleGraph.getModulesByFile(resolvedPath) ?? []];
|
|
309
|
+
return mods.flatMap((mod) => {
|
|
310
|
+
if (seenUrls.has(mod.url)) return [];
|
|
311
|
+
seenUrls.add(mod.url);
|
|
312
|
+
server.moduleGraph.invalidateModule(mod);
|
|
313
|
+
return [
|
|
314
|
+
{
|
|
315
|
+
type: "js-update",
|
|
316
|
+
path: mod.url,
|
|
317
|
+
acceptedPath: mod.url,
|
|
318
|
+
timestamp: Date.now()
|
|
319
|
+
}
|
|
320
|
+
];
|
|
321
|
+
});
|
|
322
|
+
});
|
|
323
|
+
if (updates.length > 0) {
|
|
324
|
+
server.ws.send({ type: "update", updates });
|
|
325
|
+
}
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
function createDebounceHmr(debounceMs = 50) {
|
|
332
|
+
const updateQueue = /* @__PURE__ */ new Map();
|
|
333
|
+
const deleteQueue = /* @__PURE__ */ new Set();
|
|
334
|
+
let updateTimer = null;
|
|
335
|
+
let batchId = 0;
|
|
336
|
+
let isProcessing = false;
|
|
337
|
+
let pendingBatch = null;
|
|
338
|
+
function scheduleFlush(callback) {
|
|
339
|
+
if (updateTimer) {
|
|
340
|
+
clearTimeout(updateTimer);
|
|
341
|
+
}
|
|
342
|
+
updateTimer = setTimeout(async () => {
|
|
343
|
+
const filesToProcess = new Map(updateQueue);
|
|
344
|
+
const filesToDelete = new Set(deleteQueue);
|
|
345
|
+
const currentBatchId = ++batchId;
|
|
346
|
+
updateQueue.clear();
|
|
347
|
+
deleteQueue.clear();
|
|
348
|
+
updateTimer = null;
|
|
349
|
+
if (isProcessing) {
|
|
350
|
+
if (pendingBatch) {
|
|
351
|
+
for (const [fp, entry] of filesToProcess.entries()) {
|
|
352
|
+
pendingBatch.files.set(fp, entry);
|
|
353
|
+
}
|
|
354
|
+
for (const relPath of filesToDelete) {
|
|
355
|
+
pendingBatch.deletedFiles.add(relPath);
|
|
356
|
+
}
|
|
357
|
+
pendingBatch.batchId = currentBatchId;
|
|
358
|
+
} else {
|
|
359
|
+
pendingBatch = {
|
|
360
|
+
files: filesToProcess,
|
|
361
|
+
deletedFiles: filesToDelete,
|
|
362
|
+
batchId: currentBatchId
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
367
|
+
isProcessing = true;
|
|
368
|
+
try {
|
|
369
|
+
const filesWithContent = {};
|
|
370
|
+
await Promise.all(
|
|
371
|
+
Array.from(filesToProcess.entries()).map(async ([filepath, entry]) => {
|
|
372
|
+
try {
|
|
373
|
+
filesWithContent[filepath] = typeof entry === "string" ? entry : await entry();
|
|
374
|
+
} catch {
|
|
375
|
+
}
|
|
376
|
+
})
|
|
377
|
+
);
|
|
378
|
+
try {
|
|
379
|
+
await callback(filesWithContent, [...filesToDelete], currentBatchId.toString());
|
|
380
|
+
} catch (err) {
|
|
381
|
+
console.error("[houdini] HMR pipeline error:", err);
|
|
382
|
+
}
|
|
383
|
+
while (pendingBatch) {
|
|
384
|
+
const {
|
|
385
|
+
files: nextFiles,
|
|
386
|
+
deletedFiles: nextDeleted,
|
|
387
|
+
batchId: nextBatchId
|
|
388
|
+
} = pendingBatch;
|
|
389
|
+
pendingBatch = null;
|
|
390
|
+
const nextFilesWithContent = {};
|
|
391
|
+
await Promise.all(
|
|
392
|
+
Array.from(nextFiles.entries()).map(async ([filepath, entry]) => {
|
|
393
|
+
try {
|
|
394
|
+
nextFilesWithContent[filepath] = typeof entry === "string" ? entry : await entry();
|
|
395
|
+
} catch {
|
|
396
|
+
}
|
|
397
|
+
})
|
|
398
|
+
);
|
|
399
|
+
try {
|
|
400
|
+
await callback(
|
|
401
|
+
nextFilesWithContent,
|
|
402
|
+
[...nextDeleted],
|
|
403
|
+
nextBatchId.toString()
|
|
404
|
+
);
|
|
405
|
+
} catch (err) {
|
|
406
|
+
console.error("[houdini] HMR pipeline error:", err);
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
} finally {
|
|
410
|
+
isProcessing = false;
|
|
411
|
+
}
|
|
412
|
+
}, debounceMs);
|
|
413
|
+
}
|
|
414
|
+
return {
|
|
415
|
+
queueUpdate(ctx, preReadContent, callback) {
|
|
416
|
+
if (!updateQueue.has(ctx.file)) {
|
|
417
|
+
updateQueue.set(ctx.file, preReadContent !== null ? preReadContent : ctx.read);
|
|
418
|
+
}
|
|
419
|
+
scheduleFlush(callback);
|
|
420
|
+
},
|
|
421
|
+
queueDelete(relativePath, callback) {
|
|
422
|
+
deleteQueue.add(relativePath);
|
|
423
|
+
scheduleFlush(callback);
|
|
424
|
+
}
|
|
425
|
+
};
|
|
426
|
+
}
|
|
427
|
+
export {
|
|
428
|
+
compiler,
|
|
429
|
+
createDebounceHmr,
|
|
430
|
+
document_hmr
|
|
431
|
+
};
|
package/build/vite/houdini.d.ts
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
import type { SourceMapInput } from 'rollup';
|
|
2
1
|
import type { Plugin as VitePlugin } from 'vite';
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
content: string;
|
|
8
|
-
map?: SourceMapInput;
|
|
9
|
-
filepath: string;
|
|
10
|
-
watch_file: (path: string) => void;
|
|
11
|
-
}
|
|
2
|
+
import type { VitePluginContext } from './index.js';
|
|
3
|
+
import type { CompilerProxy } from '../lib/index.js';
|
|
4
|
+
export declare let compiler: CompilerProxy;
|
|
5
|
+
export declare function houdini(ctx: VitePluginContext): VitePlugin;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { codegen_setup } from "../lib/codegen.js";
|
|
3
|
+
import * as fs from "../lib/fs.js";
|
|
4
|
+
let compiler;
|
|
5
|
+
let alreadyBuilt = false;
|
|
6
|
+
function houdini(ctx) {
|
|
7
|
+
let viteEnv;
|
|
8
|
+
let viteConfig;
|
|
9
|
+
let devServer = false;
|
|
10
|
+
return {
|
|
11
|
+
name: "houdini",
|
|
12
|
+
enforce: "pre",
|
|
13
|
+
async configureServer() {
|
|
14
|
+
devServer = true;
|
|
15
|
+
},
|
|
16
|
+
async configResolved(conf) {
|
|
17
|
+
viteConfig = conf;
|
|
18
|
+
},
|
|
19
|
+
async config(userConfig, env) {
|
|
20
|
+
viteEnv = env;
|
|
21
|
+
const runtimeDir = path.join(
|
|
22
|
+
ctx.config.root_dir,
|
|
23
|
+
ctx.config.config_file.runtimeDir ?? ".houdini"
|
|
24
|
+
);
|
|
25
|
+
const houdiniAliases = {
|
|
26
|
+
$houdini: runtimeDir,
|
|
27
|
+
"$houdini/*": path.join(runtimeDir, "*"),
|
|
28
|
+
"~": path.join(ctx.config.root_dir, "src"),
|
|
29
|
+
"~/*": path.join(ctx.config.root_dir, "src", "*")
|
|
30
|
+
};
|
|
31
|
+
return {
|
|
32
|
+
resolve: {
|
|
33
|
+
...userConfig.resolve,
|
|
34
|
+
alias: Array.isArray(userConfig.resolve?.alias) ? [
|
|
35
|
+
...userConfig.resolve.alias,
|
|
36
|
+
...Object.entries(houdiniAliases).map(([find, replacement]) => ({
|
|
37
|
+
find,
|
|
38
|
+
replacement
|
|
39
|
+
}))
|
|
40
|
+
] : { ...userConfig.resolve?.alias, ...houdiniAliases }
|
|
41
|
+
},
|
|
42
|
+
server: {
|
|
43
|
+
...userConfig.server,
|
|
44
|
+
fs: {
|
|
45
|
+
...userConfig.server?.fs,
|
|
46
|
+
allow: ["."].concat(userConfig.server?.fs?.allow || [])
|
|
47
|
+
},
|
|
48
|
+
watch: {
|
|
49
|
+
...userConfig.server?.watch,
|
|
50
|
+
ignored: ["**/*.houdini_tmp"].concat(
|
|
51
|
+
userConfig.server?.watch?.ignored || []
|
|
52
|
+
)
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
},
|
|
57
|
+
async buildStart() {
|
|
58
|
+
if (!compiler && !devServer) {
|
|
59
|
+
compiler = await codegen_setup(ctx.config, "dev", ctx.db, ctx.db_file);
|
|
60
|
+
}
|
|
61
|
+
if (ctx.adapter?.pre && viteEnv.command === "build") {
|
|
62
|
+
const routerConventions = await import("../router/conventions.js");
|
|
63
|
+
await ctx.adapter.pre({
|
|
64
|
+
config: ctx.config,
|
|
65
|
+
conventions: routerConventions,
|
|
66
|
+
sourceDir: viteConfig.build.outDir,
|
|
67
|
+
publicBase: viteConfig.base,
|
|
68
|
+
outDir: routerConventions.router_build_directory(ctx.config)
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
if (!devServer && !process.env.HOUDINI_SKIP_GENERATE && !alreadyBuilt) {
|
|
72
|
+
const buildResults = await compiler.run_pipeline({
|
|
73
|
+
// the pipeline through schema is run as part of codegen_setup
|
|
74
|
+
after: "Schema"
|
|
75
|
+
});
|
|
76
|
+
const buildDocCount = Object.values(buildResults.GenerateDocuments ?? {}).flat().length;
|
|
77
|
+
console.log(
|
|
78
|
+
`\u{1F3A9} Generated ${buildDocCount} ${buildDocCount === 1 ? "document" : "documents"}`
|
|
79
|
+
);
|
|
80
|
+
alreadyBuilt = true;
|
|
81
|
+
await compiler.close();
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
closeBundle: {
|
|
85
|
+
order: "post",
|
|
86
|
+
async handler() {
|
|
87
|
+
if (viteEnv.mode !== "production" || devServer || viteConfig.build.ssr) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (!ctx.adapter) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const routerConventions = await import("../router/conventions.js");
|
|
94
|
+
const outDir = routerConventions.router_build_directory(ctx.config);
|
|
95
|
+
const sourceDir = viteConfig.build.outDir;
|
|
96
|
+
console.log("\u{1F3A9} Generating Deployment Assets...");
|
|
97
|
+
try {
|
|
98
|
+
const stat = await fs.stat(outDir);
|
|
99
|
+
if (stat?.isDirectory()) {
|
|
100
|
+
await fs.rmdir(outDir);
|
|
101
|
+
}
|
|
102
|
+
} catch {
|
|
103
|
+
}
|
|
104
|
+
await fs.mkdirp(outDir);
|
|
105
|
+
const { load_manifest } = await import("../router/manifest.js");
|
|
106
|
+
const manifest = await load_manifest({
|
|
107
|
+
config: ctx.config,
|
|
108
|
+
includeArtifacts: true
|
|
109
|
+
});
|
|
110
|
+
if (!ctx.adapter?.disableServer) {
|
|
111
|
+
await fs.recursiveCopy(path.join(sourceDir, "ssr"), path.join(outDir, "ssr"));
|
|
112
|
+
await fs.rmdir(path.join(sourceDir, "ssr"));
|
|
113
|
+
}
|
|
114
|
+
await fs.recursiveCopy(sourceDir, path.join(outDir, "assets"));
|
|
115
|
+
await ctx.adapter({
|
|
116
|
+
config: ctx.config,
|
|
117
|
+
conventions: routerConventions,
|
|
118
|
+
sourceDir,
|
|
119
|
+
publicBase: viteConfig.base,
|
|
120
|
+
outDir,
|
|
121
|
+
manifest,
|
|
122
|
+
adapterPath: "./ssr/entries/adapter"
|
|
123
|
+
});
|
|
124
|
+
if (fs.existsSync(path.join(ctx.config.root_dir, "public"))) {
|
|
125
|
+
await fs.recursiveCopy(path.join(ctx.config.root_dir, "public"), outDir);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
export {
|
|
132
|
+
compiler,
|
|
133
|
+
houdini
|
|
134
|
+
};
|
package/build/vite/index.d.ts
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import type { Db } from '../lib/db.js';
|
|
2
|
+
import type { PluginOption } from 'vite';
|
|
3
|
+
import { type Adapter, type ConfigFile, type Config } from '../lib/index.js';
|
|
4
|
+
export type PluginConfig = {
|
|
5
|
+
configPath?: string;
|
|
6
|
+
adapter?: Adapter;
|
|
7
|
+
} & Partial<ConfigFile>;
|
|
8
|
+
export type VitePluginContext = PluginConfig & {
|
|
9
|
+
db: Db;
|
|
10
|
+
db_file: string;
|
|
11
|
+
config: Config;
|
|
12
|
+
};
|
|
13
|
+
export default function (opts?: PluginConfig): Promise<Array<PluginOption>>;
|