houdini 2.0.0-next.3 → 2.0.0-next.31
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 +21 -0
- package/build/lib/ast.js +71 -0
- package/build/lib/codegen.d.ts +55 -0
- package/build/lib/codegen.js +581 -0
- package/build/lib/config.d.ts +221 -177
- package/build/lib/config.js +135 -0
- package/build/lib/constants.js +14 -0
- package/build/lib/database.d.ts +6 -0
- package/build/lib/database.js +598 -0
- package/build/lib/db.d.ts +13 -0
- package/build/lib/db.js +134 -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 +84 -0
- package/build/lib/project.d.ts +17 -0
- package/build/lib/project.js +187 -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 +40 -0
- package/build/node/index.js +268 -0
- package/build/package.json +197 -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.d.ts +9 -9
- package/build/{runtime-esm/router → router}/cookies.js +22 -22
- 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 +6 -6
- package/build/{runtime-esm/router → router}/match.js +46 -10
- package/build/router/server.d.ts +42 -0
- package/build/router/server.js +130 -0
- package/build/{runtime-esm/router → router}/session.d.ts +2 -1
- package/build/{runtime-esm/router → router}/session.js +7 -3
- package/build/{runtime-cjs/router → router}/types.d.ts +3 -3
- package/build/runtime/cache/gc.d.ts +1 -1
- package/build/runtime/cache/index.d.ts +169 -3
- package/build/{runtime-esm/cache/cache.js → runtime/cache/index.js} +33 -27
- package/build/runtime/cache/lists.d.ts +4 -4
- package/build/{runtime-esm → runtime}/cache/lists.js +29 -18
- package/build/runtime/cache/staleManager.d.ts +1 -1
- package/build/{runtime-esm → runtime}/cache/staleManager.js +2 -2
- package/build/runtime/cache/storage.d.ts +1 -1
- package/build/{runtime-esm → runtime}/cache/storage.js +6 -4
- package/build/runtime/cache/subscription.d.ts +11 -5
- package/build/{runtime-esm → runtime}/cache/subscription.js +10 -10
- package/build/runtime/{client/index.d.ts → client.d.ts} +15 -22
- package/build/runtime/client.js +88 -0
- package/build/runtime/config.d.ts +7 -0
- package/build/{runtime-esm/lib → runtime}/config.js +6 -19
- package/build/runtime/{lib/constants.d.ts → constants.d.ts} +1 -1
- package/build/runtime/{client/documentStore.d.ts → documentStore.d.ts} +14 -10
- package/build/{runtime-esm/client → runtime}/documentStore.js +32 -43
- package/build/{runtime-cjs/lib → runtime}/flatten.d.ts +1 -1
- package/build/runtime/index.d.ts +12 -8
- package/build/runtime/index.js +30 -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-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 +8 -8
- package/build/{runtime-esm/lib → runtime}/pagination.js +19 -18
- 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 +2 -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-cjs/lib → runtime}/types.d.ts +40 -84
- 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/vite/hmr.d.ts +26 -5
- package/build/vite/hmr.js +306 -0
- package/build/vite/houdini.d.ts +4 -10
- package/build/vite/houdini.js +177 -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 +189 -0
- package/package.json +134 -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 -89277
- package/build/cmd-cjs/package.json +0 -1
- package/build/cmd-esm/index.js +0 -89281
- 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 -28
- 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 -74633
- package/build/codegen-cjs/package.json +0 -1
- package/build/codegen-esm/index.js +0 -74632
- 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 -79731
- package/build/lib-cjs/package.json +0 -1
- package/build/lib-esm/index.js +0 -79640
- 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/lib/types.d.ts +0 -417
- 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/session.d.ts +0 -21
- 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.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.d.ts +0 -41
- 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 -102
- package/build/runtime-cjs/router/session.d.ts +0 -21
- package/build/runtime-cjs/router/session.js +0 -95
- 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/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/jwt.d.ts +0 -117
- package/build/runtime-esm/router/match.d.ts +0 -39
- package/build/runtime-esm/router/server.d.ts +0 -24
- package/build/runtime-esm/router/server.js +0 -77
- 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 -75227
- package/build/test-cjs/package.json +0 -1
- package/build/test-esm/index.js +0 -75222
- package/build/vite/imports.d.ts +0 -40
- package/build/vite-cjs/index.js +0 -86263
- package/build/vite-cjs/package.json +0 -1
- package/build/vite-esm/index.js +0 -86255
- /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-cjs/router → router}/jwt.d.ts +0 -0
- /package/build/{runtime-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 → runtime}/cache/gc.js +0 -0
- /package/build/{runtime-esm → runtime}/cache/stuff.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/{test-esm → runtime}/package.json +0 -0
- /package/build/{vite-esm → test}/package.json +0 -0
package/build/adapter/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { serverAdapterFactory as createAdapter } from '../
|
|
1
|
+
import type { serverAdapterFactory as createAdapter } from '../router/server.js';
|
|
2
2
|
export declare const endpoint: string;
|
|
3
|
-
export declare let createServerAdapter: (args: Omit<Parameters<typeof createAdapter>[0], 'on_render' | 'manifest' | 'yoga' | 'schema' | 'graphqlEndpoint' | 'componentCache' | 'client'>) => ReturnType<typeof createAdapter>;
|
|
3
|
+
export declare let createServerAdapter: (args: Omit<Parameters<typeof createAdapter>[0], 'on_render' | 'manifest' | 'yoga' | 'schema' | 'graphqlEndpoint' | 'componentCache' | 'client' | 'config_file'>) => ReturnType<typeof createAdapter>;
|
package/build/cmd/generate.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type PipelineHook } from '../lib/index.js';
|
|
1
2
|
export declare function generate(args?: {
|
|
2
3
|
pullSchema: boolean;
|
|
3
4
|
persistOutput?: string;
|
|
@@ -5,4 +6,8 @@ export declare function generate(args?: {
|
|
|
5
6
|
headers: string[];
|
|
6
7
|
log?: string;
|
|
7
8
|
verbose: boolean;
|
|
9
|
+
mode?: string;
|
|
10
|
+
preserveDatabase: boolean;
|
|
11
|
+
afterPhase?: PipelineHook;
|
|
12
|
+
beforePhase?: PipelineHook;
|
|
8
13
|
}): Promise<void>;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { format_error } from "../lib/error.js";
|
|
4
|
+
import {
|
|
5
|
+
codegen_setup,
|
|
6
|
+
init_db,
|
|
7
|
+
run_pipeline,
|
|
8
|
+
PIPELINE_HOOKS
|
|
9
|
+
} from "../lib/index.js";
|
|
10
|
+
import { get_config } from "../lib/project.js";
|
|
11
|
+
import pull_schema from "./pullSchema.js";
|
|
12
|
+
async function generate(args = {
|
|
13
|
+
pullSchema: false,
|
|
14
|
+
headers: [],
|
|
15
|
+
verbose: false,
|
|
16
|
+
preserveDatabase: false
|
|
17
|
+
}) {
|
|
18
|
+
const mode = args.mode ?? "development";
|
|
19
|
+
let on_close = async () => {
|
|
20
|
+
};
|
|
21
|
+
if (args.pullSchema) {
|
|
22
|
+
await pull_schema({ headers: args.headers, output: args.output });
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
const config = await get_config();
|
|
26
|
+
const [db, dbFilepath] = await init_db(config, args.preserveDatabase);
|
|
27
|
+
const { trigger_hook, close } = await codegen_setup(config, mode, db, dbFilepath);
|
|
28
|
+
on_close = async () => {
|
|
29
|
+
try {
|
|
30
|
+
await close();
|
|
31
|
+
process.exit(0);
|
|
32
|
+
} catch (_error) {
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
process.on("SIGINT", on_close);
|
|
37
|
+
process.on("SIGTERM", on_close);
|
|
38
|
+
if (args.afterPhase && !PIPELINE_HOOKS.includes(args.afterPhase)) {
|
|
39
|
+
throw new Error(
|
|
40
|
+
`Invalid --after-phase: ${args.afterPhase}. Valid phases are: ${PIPELINE_HOOKS.join(
|
|
41
|
+
", "
|
|
42
|
+
)}`
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
if (args.beforePhase && !PIPELINE_HOOKS.includes(args.beforePhase)) {
|
|
46
|
+
throw new Error(
|
|
47
|
+
`Invalid --before-phase: ${args.beforePhase}. Valid phases are: ${PIPELINE_HOOKS.join(", ")}`
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
const pipelineOptions = {
|
|
51
|
+
after: "Schema"
|
|
52
|
+
};
|
|
53
|
+
if (args.afterPhase) {
|
|
54
|
+
pipelineOptions.after = args.afterPhase;
|
|
55
|
+
}
|
|
56
|
+
if (args.beforePhase) {
|
|
57
|
+
pipelineOptions.through = args.beforePhase;
|
|
58
|
+
}
|
|
59
|
+
const results = await run_pipeline(trigger_hook, pipelineOptions);
|
|
60
|
+
const docCount = Object.values(results.GenerateDocuments ?? {}).flat().length;
|
|
61
|
+
console.log(`\u{1F3A9} Generated ${docCount} ${docCount === 1 ? "document" : "documents"}`);
|
|
62
|
+
await on_close();
|
|
63
|
+
} catch (e) {
|
|
64
|
+
format_error(e, (error) => {
|
|
65
|
+
console.error(error.stack?.split("\n").slice(1).join("\n"));
|
|
66
|
+
});
|
|
67
|
+
try {
|
|
68
|
+
on_close();
|
|
69
|
+
} catch (closeError) {
|
|
70
|
+
console.error("Error closing plugins:", closeError);
|
|
71
|
+
}
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export {
|
|
76
|
+
generate
|
|
77
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { Command } from "commander";
|
|
4
|
+
import { generate } from "./generate.js";
|
|
5
|
+
import { init } from "./init.js";
|
|
6
|
+
import pullSchema from "./pullSchema.js";
|
|
7
|
+
const program = new Command();
|
|
8
|
+
program.command("generate").description("generate the application runtime").option("-p, --pull-schema", "pull the latest schema before generating").option("-r, --preserve-database", "preserve any existing generated logic").option("-o, --output [outputPath]", "persist queries to a queryMap file").option(
|
|
9
|
+
"-h, --headers <headers...>",
|
|
10
|
+
"headers to use when pulling your schema. Should be passed as KEY=VALUE"
|
|
11
|
+
).option("-v, --verbose", "verbose error messages").option(
|
|
12
|
+
"--after-phase <phase>",
|
|
13
|
+
"start the pipeline after the specified phase (Config, AfterLoad, Schema, ExtractDocuments, AfterExtract, BeforeValidate, Validate, AfterValidate, BeforeGenerate, GenerateDocuments, GenerateRuntime, AfterGenerate)"
|
|
14
|
+
).option(
|
|
15
|
+
"--before-phase <phase>",
|
|
16
|
+
"run the pipeline up to and including the specified phase (Config, AfterLoad, Schema, ExtractDocuments, AfterExtract, BeforeValidate, Validate, AfterValidate, BeforeGenerate, GenerateDocuments, GenerateRuntime, AfterGenerate)"
|
|
17
|
+
).action(generate);
|
|
18
|
+
program.command("init").arguments("[path]").usage("[path] [options]").description("initialize a new houdini project").option(
|
|
19
|
+
"-h, --headers <headers...>",
|
|
20
|
+
"header to use when pulling your schema. Should be passed as KEY=VALUE"
|
|
21
|
+
).option("-y, --yes", "dont prompt for input. uses default values or empty strings").action(init);
|
|
22
|
+
program.command("pull-schema").usage("[options]").description("pull the latest schema from your api").option("-o, --output [outputPath]", "the destination for the schema contents").option(
|
|
23
|
+
"-h, --headers <headers...>",
|
|
24
|
+
"headers to use when pulling your schema. Should be passed as KEY=VALUE"
|
|
25
|
+
).action(pullSchema);
|
|
26
|
+
program.parse();
|
|
27
|
+
process.on("unhandledRejection", (error) => {
|
|
28
|
+
if ("description" in error) {
|
|
29
|
+
} else {
|
|
30
|
+
console.log(error);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
@@ -0,0 +1,565 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import * as p from "@clack/prompts";
|
|
4
|
+
import { bold, cyan, gray, green, italic } from "kleur/colors";
|
|
5
|
+
import { execSync } from "node:child_process";
|
|
6
|
+
import { fs, path } from "../lib/index.js";
|
|
7
|
+
import { pull_schema } from "../lib/schema.js";
|
|
8
|
+
function pCancel(cancelText = "Operation cancelled.") {
|
|
9
|
+
p.cancel(cancelText);
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
12
|
+
async function init(_path, args) {
|
|
13
|
+
p.intro("\u{1F3A9} Welcome to Houdini!");
|
|
14
|
+
try {
|
|
15
|
+
await fs.stat(path.resolve("./src"));
|
|
16
|
+
} catch {
|
|
17
|
+
throw new Error(
|
|
18
|
+
"Please initialize your project first before running init. For svelte projects, you should follow the instructions here: https://kit.svelte.dev/"
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
const headers = extractHeaders(args.headers);
|
|
22
|
+
const targetPath = _path ? path.resolve(_path) : process.cwd();
|
|
23
|
+
let use_git = false;
|
|
24
|
+
let dir = targetPath;
|
|
25
|
+
do {
|
|
26
|
+
if (fs.existsSync(path.join(dir, ".git"))) {
|
|
27
|
+
use_git = true;
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
} while (dir !== (dir = path.dirname(dir)));
|
|
31
|
+
if (use_git) {
|
|
32
|
+
const status = execSync("git status --porcelain", {
|
|
33
|
+
stdio: "pipe"
|
|
34
|
+
}).toString();
|
|
35
|
+
if (status) {
|
|
36
|
+
const { confirm } = await p.group(
|
|
37
|
+
{
|
|
38
|
+
confirm: () => {
|
|
39
|
+
p.log.warning(
|
|
40
|
+
`Your git working directory is dirty \u2014 we recommend committing your changes before running this migration.`
|
|
41
|
+
);
|
|
42
|
+
return p.confirm({
|
|
43
|
+
message: `Continue anyway?`,
|
|
44
|
+
initialValue: false
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
onCancel: () => pCancel()
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
if (confirm !== true) {
|
|
53
|
+
pCancel();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
let url = "http://localhost:5173/api/graphql";
|
|
58
|
+
let is_remote_endpoint = true;
|
|
59
|
+
if (!args.yes) {
|
|
60
|
+
is_remote_endpoint = (await p.group(
|
|
61
|
+
{
|
|
62
|
+
is_remote_endpoint: () => p.confirm({
|
|
63
|
+
message: "Will you use a remote GraphQL API?",
|
|
64
|
+
initialValue: true
|
|
65
|
+
})
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
onCancel: () => pCancel()
|
|
69
|
+
}
|
|
70
|
+
)).is_remote_endpoint;
|
|
71
|
+
}
|
|
72
|
+
let schemaPath = is_remote_endpoint ? "./schema.graphql" : "path/to/src/lib/**/*.graphql";
|
|
73
|
+
let pullSchema_content = null;
|
|
74
|
+
if (is_remote_endpoint && !args.yes) {
|
|
75
|
+
const { api_running } = await p.group(
|
|
76
|
+
{
|
|
77
|
+
api_running: () => p.confirm({
|
|
78
|
+
message: "Is your API currently running?",
|
|
79
|
+
initialValue: true
|
|
80
|
+
})
|
|
81
|
+
},
|
|
82
|
+
{ onCancel: () => pCancel() }
|
|
83
|
+
);
|
|
84
|
+
if (api_running) {
|
|
85
|
+
let number_of_round = 0;
|
|
86
|
+
let url_and_headers = "";
|
|
87
|
+
while (pullSchema_content === null && number_of_round < 10) {
|
|
88
|
+
number_of_round++;
|
|
89
|
+
const answer = await p.group(
|
|
90
|
+
{
|
|
91
|
+
url_and_headers: async () => p.text({
|
|
92
|
+
message: `What's the URL for your api? ${number_of_round === 1 ? "" : `(attempt ${number_of_round})`}`,
|
|
93
|
+
placeholder: `http://localhost:4000/graphql ${number_of_round === 1 ? "" : "Authorization=Bearer MyToken"}`,
|
|
94
|
+
validate: (value) => {
|
|
95
|
+
if (value && !value.startsWith("http")) {
|
|
96
|
+
return "Please enter a valid URL";
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
})
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
onCancel: () => pCancel()
|
|
103
|
+
}
|
|
104
|
+
);
|
|
105
|
+
url_and_headers = answer.url_and_headers;
|
|
106
|
+
const value_splited = url_and_headers.split(" ");
|
|
107
|
+
const local_url = value_splited[0];
|
|
108
|
+
const local_headers = value_splited.length > 1 ? extractHeadersStr(value_splited.slice(1).join(" ")) : headers;
|
|
109
|
+
const fetchTimeout = 3e4;
|
|
110
|
+
pullSchema_content = await pull_schema(
|
|
111
|
+
local_url,
|
|
112
|
+
fetchTimeout,
|
|
113
|
+
schemaPath,
|
|
114
|
+
local_headers,
|
|
115
|
+
true
|
|
116
|
+
);
|
|
117
|
+
if (pullSchema_content === null) {
|
|
118
|
+
const msg = `If you need to pass headers, add them after the URL (eg: '${green(
|
|
119
|
+
`http://myurl.com/graphql Authorization=Bearer MyToken`
|
|
120
|
+
)}')`;
|
|
121
|
+
p.log.error(msg);
|
|
122
|
+
}
|
|
123
|
+
url = url_and_headers === "" ? "http://localhost:4000/graphql" : local_url;
|
|
124
|
+
}
|
|
125
|
+
if (pullSchema_content === null) {
|
|
126
|
+
pCancel("We couldn't pull the schema. Please check your URL/headers and try again.");
|
|
127
|
+
}
|
|
128
|
+
} else {
|
|
129
|
+
const { has_schema_file } = await p.group(
|
|
130
|
+
{
|
|
131
|
+
has_schema_file: () => p.confirm({
|
|
132
|
+
message: "Do you have a schema file on disk we can use?",
|
|
133
|
+
initialValue: false
|
|
134
|
+
})
|
|
135
|
+
},
|
|
136
|
+
{ onCancel: () => pCancel() }
|
|
137
|
+
);
|
|
138
|
+
if (has_schema_file) {
|
|
139
|
+
const { schema_file_path } = await p.group(
|
|
140
|
+
{
|
|
141
|
+
schema_file_path: () => p.path({
|
|
142
|
+
message: "Where is the schema file?",
|
|
143
|
+
initialValue: "./schema.graphql",
|
|
144
|
+
validate: (value) => {
|
|
145
|
+
if (!value) return "Please enter a valid path";
|
|
146
|
+
try {
|
|
147
|
+
fs.statSync(path.resolve(value));
|
|
148
|
+
} catch {
|
|
149
|
+
return "File not found";
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
})
|
|
153
|
+
},
|
|
154
|
+
{ onCancel: () => pCancel() }
|
|
155
|
+
);
|
|
156
|
+
pullSchema_content = await fs.readFile(path.resolve(schema_file_path)) ?? null;
|
|
157
|
+
}
|
|
158
|
+
url = "API_URL";
|
|
159
|
+
}
|
|
160
|
+
} else if (!args.yes) {
|
|
161
|
+
const answers = await p.group(
|
|
162
|
+
{
|
|
163
|
+
schema_path: () => p.path({
|
|
164
|
+
message: "Where is your schema located?",
|
|
165
|
+
initialValue: schemaPath,
|
|
166
|
+
validate: (value) => {
|
|
167
|
+
if (!value) return "Please enter a valid schemaPath";
|
|
168
|
+
}
|
|
169
|
+
})
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
onCancel: () => pCancel()
|
|
173
|
+
}
|
|
174
|
+
);
|
|
175
|
+
schemaPath = answers.schema_path;
|
|
176
|
+
}
|
|
177
|
+
if (is_remote_endpoint && pullSchema_content) {
|
|
178
|
+
await fs.writeFile(path.join(targetPath, schemaPath), pullSchema_content);
|
|
179
|
+
}
|
|
180
|
+
const { frameworkInfo, typescript, module, package_manager } = await detectTools(targetPath);
|
|
181
|
+
const found_to_log = [];
|
|
182
|
+
if (frameworkInfo.framework === "svelte") {
|
|
183
|
+
found_to_log.push("\u2728 Svelte");
|
|
184
|
+
} else if (frameworkInfo.framework === "kit") {
|
|
185
|
+
found_to_log.push("\u2728 SvelteKit");
|
|
186
|
+
} else {
|
|
187
|
+
throw new Error(`Unmanaged framework: "${JSON.stringify(frameworkInfo)}"`);
|
|
188
|
+
}
|
|
189
|
+
if (module === "esm") {
|
|
190
|
+
found_to_log.push("\u{1F4E6} ES Modules");
|
|
191
|
+
} else {
|
|
192
|
+
found_to_log.push("\u{1F4E6} CommonJS");
|
|
193
|
+
}
|
|
194
|
+
if (typescript) {
|
|
195
|
+
found_to_log.push("\u{1F7E6} TypeScript");
|
|
196
|
+
} else {
|
|
197
|
+
found_to_log.push("\u{1F7E8} JavaScript");
|
|
198
|
+
}
|
|
199
|
+
p.log.info(`Here's what we found: ${found_to_log.join(", ")}`);
|
|
200
|
+
const sourceDir = path.join(targetPath, "src");
|
|
201
|
+
const configPath = path.join(targetPath, "houdini.config.js");
|
|
202
|
+
const s = p.spinner();
|
|
203
|
+
s.start(`\u{1F6A7} Generating houdini's files...`);
|
|
204
|
+
const runtimeDir = ".houdini";
|
|
205
|
+
await houdiniConfig(
|
|
206
|
+
configPath,
|
|
207
|
+
schemaPath,
|
|
208
|
+
module,
|
|
209
|
+
frameworkInfo,
|
|
210
|
+
is_remote_endpoint ? url : null,
|
|
211
|
+
runtimeDir
|
|
212
|
+
);
|
|
213
|
+
await houdiniClient(sourceDir, typescript, frameworkInfo, is_remote_endpoint ? url : null);
|
|
214
|
+
if (frameworkInfo.framework === "svelte") {
|
|
215
|
+
await svelteKitConfig(targetPath, typescript);
|
|
216
|
+
} else if (frameworkInfo.framework === "kit") {
|
|
217
|
+
await svelteConfig(targetPath, typescript);
|
|
218
|
+
}
|
|
219
|
+
await gitIgnore({ targetPath, runtimeDir });
|
|
220
|
+
await graphqlRC(targetPath, runtimeDir);
|
|
221
|
+
await viteConfig(targetPath, frameworkInfo, typescript);
|
|
222
|
+
await tjsConfig(targetPath, frameworkInfo);
|
|
223
|
+
await packageJSON(targetPath, frameworkInfo);
|
|
224
|
+
s.stop(`Houdini's files generated ${green("\u2713")}`);
|
|
225
|
+
p.outro("\u{1F389} Everything is ready!");
|
|
226
|
+
finale_logs(package_manager);
|
|
227
|
+
}
|
|
228
|
+
function finale_logs(package_manager) {
|
|
229
|
+
let cmd_install = "npm i";
|
|
230
|
+
let cmd_run = "npm run dev";
|
|
231
|
+
if (package_manager === "pnpm") {
|
|
232
|
+
cmd_install = "pnpm i";
|
|
233
|
+
cmd_run = "pnpm dev";
|
|
234
|
+
} else if (package_manager === "yarn") {
|
|
235
|
+
cmd_install = "yarn";
|
|
236
|
+
cmd_run = "yarn dev";
|
|
237
|
+
}
|
|
238
|
+
console.log(`\u{1F449} Next Steps`);
|
|
239
|
+
console.log(`1 Finalize your installation: ${green(cmd_install)}
|
|
240
|
+
2 Start your application: ${green(cmd_run)}
|
|
241
|
+
`);
|
|
242
|
+
console.log(
|
|
243
|
+
gray(
|
|
244
|
+
italic(
|
|
245
|
+
`${bold("\u2754 More help")} at ${cyan(
|
|
246
|
+
"https://houdinigraphql.com"
|
|
247
|
+
)} (\u{1F4C4} Docs, \u2B50 Github, \u{1F4E3} Discord, ...)
|
|
248
|
+
`
|
|
249
|
+
)
|
|
250
|
+
)
|
|
251
|
+
);
|
|
252
|
+
}
|
|
253
|
+
async function houdiniConfig(configPath, schemaPath, module, frameworkInfo, url, runtimeDir) {
|
|
254
|
+
const config = {};
|
|
255
|
+
if (url !== null) {
|
|
256
|
+
config.watchSchema = {
|
|
257
|
+
url
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
config.runtimeDir = runtimeDir;
|
|
261
|
+
if (url !== null) {
|
|
262
|
+
config.schemaPath = schemaPath;
|
|
263
|
+
}
|
|
264
|
+
if (module !== "esm") {
|
|
265
|
+
config.module = module;
|
|
266
|
+
}
|
|
267
|
+
if (frameworkInfo.framework === "svelte") {
|
|
268
|
+
config.plugins = {
|
|
269
|
+
"houdini-svelte": {
|
|
270
|
+
framework: "svelte"
|
|
271
|
+
}
|
|
272
|
+
};
|
|
273
|
+
} else if (frameworkInfo.framework === "kit") {
|
|
274
|
+
config.plugins = {
|
|
275
|
+
"houdini-svelte": {}
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
const configObj = JSON.stringify(config, null, 4);
|
|
279
|
+
const content_base = `/// <references types="houdini-svelte">
|
|
280
|
+
|
|
281
|
+
/** @type {import('houdini').ConfigFile} */
|
|
282
|
+
const config = ${configObj}`;
|
|
283
|
+
const content = module === "esm" ? (
|
|
284
|
+
// ESM default config
|
|
285
|
+
`${content_base}
|
|
286
|
+
|
|
287
|
+
export default config
|
|
288
|
+
`
|
|
289
|
+
) : (
|
|
290
|
+
// CommonJS default config
|
|
291
|
+
`${content_base}
|
|
292
|
+
|
|
293
|
+
module.exports = config
|
|
294
|
+
`
|
|
295
|
+
);
|
|
296
|
+
await fs.writeFile(configPath, content);
|
|
297
|
+
return false;
|
|
298
|
+
}
|
|
299
|
+
async function houdiniClient(targetPath, typescript, _frameworkInfo, url) {
|
|
300
|
+
const houdiniClientExt = typescript ? `ts` : `js`;
|
|
301
|
+
const houdiniClientPath = path.join(targetPath, `client.${houdiniClientExt}`);
|
|
302
|
+
const comment = `
|
|
303
|
+
// uncomment this to configure the network call (for things like authentication)
|
|
304
|
+
// for more information, please visit here: https://www.houdinigraphql.com/guides/authentication
|
|
305
|
+
// fetchParams({ session }) {
|
|
306
|
+
// return {
|
|
307
|
+
// headers: {
|
|
308
|
+
// Authorization: \`Bearer \${session.token}\`,
|
|
309
|
+
// }
|
|
310
|
+
// }
|
|
311
|
+
// }`;
|
|
312
|
+
const urlLine = url ? `{
|
|
313
|
+
url: '${url}',${comment}
|
|
314
|
+
}` : `{${comment}
|
|
315
|
+
}`;
|
|
316
|
+
const content = `import { HoudiniClient } from '$houdini';
|
|
317
|
+
|
|
318
|
+
export default new HoudiniClient(${urlLine})
|
|
319
|
+
`;
|
|
320
|
+
await fs.writeFile(houdiniClientPath, content);
|
|
321
|
+
}
|
|
322
|
+
async function svelteKitConfig(targetPath, typescript) {
|
|
323
|
+
const svelteMainJsPath = path.join(targetPath, "src", typescript ? "main.ts" : "main.js");
|
|
324
|
+
const newContent = `import client from "./client";
|
|
325
|
+
import './app.css'
|
|
326
|
+
import App from './App.svelte'
|
|
327
|
+
|
|
328
|
+
const app = new App({
|
|
329
|
+
target: document.getElementById('app')
|
|
330
|
+
})
|
|
331
|
+
|
|
332
|
+
export default app
|
|
333
|
+
`;
|
|
334
|
+
await fs.writeFile(svelteMainJsPath, newContent);
|
|
335
|
+
}
|
|
336
|
+
async function svelteConfig(targetPath, typescript) {
|
|
337
|
+
const svelteConfigPath = path.join(targetPath, "svelte.config.js");
|
|
338
|
+
const newContentTs = `import adapter from '@sveltejs/adapter-auto';
|
|
339
|
+
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
|
|
340
|
+
|
|
341
|
+
/** @type {import('@sveltejs/kit').Config} */
|
|
342
|
+
const config = {
|
|
343
|
+
// Consult https://kit.svelte.dev/docs/integrations#preprocessors
|
|
344
|
+
// for more information about preprocessors
|
|
345
|
+
preprocess: vitePreprocess(),
|
|
346
|
+
|
|
347
|
+
kit: {
|
|
348
|
+
adapter: adapter(),
|
|
349
|
+
alias: {
|
|
350
|
+
$houdini: '.houdini/'
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
};
|
|
354
|
+
|
|
355
|
+
export default config;
|
|
356
|
+
`;
|
|
357
|
+
const newContentJs = `import adapter from '@sveltejs/adapter-auto';
|
|
358
|
+
|
|
359
|
+
/** @type {import('@sveltejs/kit').Config} */
|
|
360
|
+
const config = {
|
|
361
|
+
kit: {
|
|
362
|
+
adapter: adapter(),
|
|
363
|
+
alias: {
|
|
364
|
+
$houdini: '.houdini/'
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
};
|
|
368
|
+
|
|
369
|
+
export default config;
|
|
370
|
+
`;
|
|
371
|
+
await fs.writeFile(svelteConfigPath, typescript ? newContentTs : newContentJs);
|
|
372
|
+
}
|
|
373
|
+
async function gitIgnore({ targetPath, runtimeDir }) {
|
|
374
|
+
const filepath = path.join(targetPath, ".gitignore");
|
|
375
|
+
const existing = await fs.readFile(filepath) || "";
|
|
376
|
+
if (!existing.includes(`
|
|
377
|
+
${runtimeDir}
|
|
378
|
+
`)) {
|
|
379
|
+
await fs.writeFile(filepath, `${existing}
|
|
380
|
+
${runtimeDir}
|
|
381
|
+
`);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
async function graphqlRC(targetPath, runtimeDir) {
|
|
385
|
+
const target = path.join(targetPath, ".graphqlrc.yaml");
|
|
386
|
+
const content = `projects:
|
|
387
|
+
default:
|
|
388
|
+
schema:
|
|
389
|
+
- ./schema.graphql
|
|
390
|
+
- ./${runtimeDir}/graphql/schema.graphql
|
|
391
|
+
documents:
|
|
392
|
+
- '**/*.gql'
|
|
393
|
+
- '**/*.svelte'
|
|
394
|
+
- ./${runtimeDir}/graphql/documents.gql
|
|
395
|
+
`;
|
|
396
|
+
await fs.writeFile(target, content);
|
|
397
|
+
}
|
|
398
|
+
async function viteConfig(targetPath, frameworkInfo, typescript) {
|
|
399
|
+
const viteConfigPath = path.join(targetPath, typescript ? "vite.config.ts" : "vite.config.js");
|
|
400
|
+
let content = "NO_CONTENT_THIS_SHOULD_NEVER_BE_SEEN";
|
|
401
|
+
if (frameworkInfo.framework === "svelte") {
|
|
402
|
+
content = `import { svelte } from '@sveltejs/vite-plugin-svelte'
|
|
403
|
+
import houdini from 'houdini/vite'
|
|
404
|
+
import * as path from 'path'
|
|
405
|
+
import { defineConfig } from 'vite'
|
|
406
|
+
|
|
407
|
+
export default defineConfig({
|
|
408
|
+
plugins: [houdini(), svelte()],
|
|
409
|
+
|
|
410
|
+
resolve: {
|
|
411
|
+
alias: {
|
|
412
|
+
$houdini: '.houdini/',
|
|
413
|
+
},
|
|
414
|
+
},
|
|
415
|
+
})
|
|
416
|
+
`;
|
|
417
|
+
} else if (frameworkInfo.framework === "kit") {
|
|
418
|
+
content = `import { sveltekit } from '@sveltejs/kit/vite'
|
|
419
|
+
import houdini from 'houdini/vite'
|
|
420
|
+
import { defineConfig } from 'vite'
|
|
421
|
+
|
|
422
|
+
export default defineConfig({
|
|
423
|
+
plugins: [houdini(), sveltekit()]
|
|
424
|
+
});
|
|
425
|
+
`;
|
|
426
|
+
} else {
|
|
427
|
+
throw new Error(`Unmanaged framework: "${JSON.stringify(frameworkInfo)}"`);
|
|
428
|
+
}
|
|
429
|
+
await fs.writeFile(viteConfigPath, content);
|
|
430
|
+
}
|
|
431
|
+
async function tjsConfig(targetPath, frameworkInfo) {
|
|
432
|
+
let configFile = path.join(targetPath, "tsconfig.json");
|
|
433
|
+
try {
|
|
434
|
+
await fs.stat(configFile);
|
|
435
|
+
} catch {
|
|
436
|
+
configFile = path.join(targetPath, "jsconfig.json");
|
|
437
|
+
try {
|
|
438
|
+
await fs.stat(configFile);
|
|
439
|
+
} catch {
|
|
440
|
+
return false;
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
let tjsConfig2;
|
|
444
|
+
try {
|
|
445
|
+
const tjsConfigFile = await fs.readFile(configFile);
|
|
446
|
+
if (tjsConfigFile) {
|
|
447
|
+
tjsConfig2 = parseJSON(tjsConfigFile);
|
|
448
|
+
}
|
|
449
|
+
if (frameworkInfo.framework === "svelte") {
|
|
450
|
+
tjsConfig2.compilerOptions.rootDirs = [".", "./.houdini/types"];
|
|
451
|
+
} else if (frameworkInfo.framework === "kit") {
|
|
452
|
+
tjsConfig2.compilerOptions.rootDirs = [".", "./.svelte-kit/types", "./.houdini/types"];
|
|
453
|
+
}
|
|
454
|
+
if (frameworkInfo.framework === "svelte") {
|
|
455
|
+
tjsConfig2.compilerOptions.paths = {
|
|
456
|
+
...tjsConfig2.compilerOptions.paths,
|
|
457
|
+
$houdini: ["./.houdini/"],
|
|
458
|
+
"$houdini/*": ["./.houdini/*"]
|
|
459
|
+
};
|
|
460
|
+
}
|
|
461
|
+
await fs.writeFile(configFile, JSON.stringify(tjsConfig2, null, 4));
|
|
462
|
+
} catch {
|
|
463
|
+
}
|
|
464
|
+
return false;
|
|
465
|
+
}
|
|
466
|
+
async function packageJSON(targetPath, frameworkInfo) {
|
|
467
|
+
let packageJSON2 = {};
|
|
468
|
+
const packagePath = path.join(targetPath, "package.json");
|
|
469
|
+
const packageFile = await fs.readFile(packagePath);
|
|
470
|
+
if (packageFile) {
|
|
471
|
+
packageJSON2 = JSON.parse(packageFile);
|
|
472
|
+
}
|
|
473
|
+
packageJSON2.devDependencies = {
|
|
474
|
+
...packageJSON2.devDependencies,
|
|
475
|
+
houdini: "^2.0.0-next.31"
|
|
476
|
+
};
|
|
477
|
+
if (frameworkInfo.framework === "svelte" || frameworkInfo.framework === "kit") {
|
|
478
|
+
packageJSON2.devDependencies = {
|
|
479
|
+
...packageJSON2.devDependencies,
|
|
480
|
+
"houdini-svelte": "^3.0.0-next.32"
|
|
481
|
+
};
|
|
482
|
+
} else {
|
|
483
|
+
throw new Error(`Unmanaged framework: "${JSON.stringify(frameworkInfo)}"`);
|
|
484
|
+
}
|
|
485
|
+
await fs.writeFile(packagePath, JSON.stringify(packageJSON2, null, 4));
|
|
486
|
+
}
|
|
487
|
+
async function detectFromPackageJSON(cwd) {
|
|
488
|
+
let packageJSON2;
|
|
489
|
+
try {
|
|
490
|
+
const packageJSONFile = await fs.readFile(path.join(cwd, "package.json"));
|
|
491
|
+
if (packageJSONFile) {
|
|
492
|
+
packageJSON2 = JSON.parse(packageJSONFile);
|
|
493
|
+
} else {
|
|
494
|
+
throw new Error("not found");
|
|
495
|
+
}
|
|
496
|
+
} catch {
|
|
497
|
+
throw new Error(
|
|
498
|
+
"\u274C houdini init must target an existing node project (with a package.json)"
|
|
499
|
+
);
|
|
500
|
+
}
|
|
501
|
+
const { devDependencies, dependencies } = packageJSON2;
|
|
502
|
+
const hasDependency = (dep) => Boolean(devDependencies?.[dep] || dependencies?.[dep]);
|
|
503
|
+
let frameworkInfo = { framework: "svelte" };
|
|
504
|
+
if (hasDependency("@sveltejs/kit")) {
|
|
505
|
+
frameworkInfo = { framework: "kit" };
|
|
506
|
+
}
|
|
507
|
+
return {
|
|
508
|
+
frameworkInfo,
|
|
509
|
+
module: packageJSON2.type === "module" ? "esm" : "commonjs"
|
|
510
|
+
};
|
|
511
|
+
}
|
|
512
|
+
async function detectTools(cwd = process.cwd()) {
|
|
513
|
+
let typescript = false;
|
|
514
|
+
try {
|
|
515
|
+
await fs.stat(path.join(cwd, "tsconfig.json"));
|
|
516
|
+
typescript = true;
|
|
517
|
+
} catch {
|
|
518
|
+
}
|
|
519
|
+
let package_manager = "npm";
|
|
520
|
+
let dir = cwd;
|
|
521
|
+
do {
|
|
522
|
+
if (fs.existsSync(path.join(dir, "pnpm-lock.yaml"))) {
|
|
523
|
+
package_manager = "pnpm";
|
|
524
|
+
break;
|
|
525
|
+
}
|
|
526
|
+
if (fs.existsSync(path.join(dir, "yarn.lock"))) {
|
|
527
|
+
package_manager = "yarn";
|
|
528
|
+
break;
|
|
529
|
+
}
|
|
530
|
+
} while (dir !== (dir = path.dirname(dir)));
|
|
531
|
+
return {
|
|
532
|
+
typescript,
|
|
533
|
+
package_manager,
|
|
534
|
+
...await detectFromPackageJSON(cwd)
|
|
535
|
+
};
|
|
536
|
+
}
|
|
537
|
+
function parseJSON(str) {
|
|
538
|
+
str = str.replace(/\\"|"(?:\\"|[^"])*"|(\/\/.*|\/\*[\s\S]*?\*\/)/g, (m, g) => g ? "" : m);
|
|
539
|
+
return JSON.parse(str);
|
|
540
|
+
}
|
|
541
|
+
function extractHeadersStr(str) {
|
|
542
|
+
const regex = /(\w+)=("[^"]*"|[^ ]*)/g;
|
|
543
|
+
const obj = {};
|
|
544
|
+
let match;
|
|
545
|
+
while ((match = regex.exec(str ?? "")) !== null) {
|
|
546
|
+
obj[match[1]] = match[2].replaceAll('"', "");
|
|
547
|
+
}
|
|
548
|
+
return obj;
|
|
549
|
+
}
|
|
550
|
+
function extractHeaders(headers) {
|
|
551
|
+
if ((headers ?? []).length > 0) {
|
|
552
|
+
return headers.reduce((total, header) => {
|
|
553
|
+
const [key, value] = header.split(/=(.*)/s);
|
|
554
|
+
return {
|
|
555
|
+
...total,
|
|
556
|
+
[key]: value.replaceAll('"', "")
|
|
557
|
+
};
|
|
558
|
+
}, {});
|
|
559
|
+
}
|
|
560
|
+
return {};
|
|
561
|
+
}
|
|
562
|
+
export {
|
|
563
|
+
finale_logs,
|
|
564
|
+
init
|
|
565
|
+
};
|