polen 0.11.0-next.16 → 0.11.0-next.18
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/api/builder/ssg/generate.d.ts.map +1 -1
- package/build/api/builder/ssg/generate.js +5 -5
- package/build/api/builder/ssg/generate.js.map +1 -1
- package/build/api/builder/ssg/page-generator.worker.js +13 -3
- package/build/api/builder/ssg/page-generator.worker.js.map +1 -1
- package/build/api/config/input.d.ts +88 -3
- package/build/api/config/input.d.ts.map +1 -1
- package/build/api/config/normalized.d.ts +92 -7
- package/build/api/config/normalized.d.ts.map +1 -1
- package/build/api/config/normalized.js +11 -3
- package/build/api/config/normalized.js.map +1 -1
- package/build/api/config-template/template.js +2 -2
- package/build/api/config-template/template.js.map +1 -1
- package/build/api/content/sidebar.d.ts.map +1 -1
- package/build/api/content/sidebar.js +2 -1
- package/build/api/content/sidebar.js.map +1 -1
- package/build/api/examples/config.d.ts +366 -3
- package/build/api/examples/config.d.ts.map +1 -1
- package/build/api/examples/config.js +25 -3
- package/build/api/examples/config.js.map +1 -1
- package/build/api/examples/diagnostic/diagnostic.d.ts +5 -5
- package/build/api/examples/diagnostic/missing-versions.d.ts +5 -4
- package/build/api/examples/diagnostic/missing-versions.d.ts.map +1 -1
- package/build/api/examples/diagnostic/missing-versions.js +3 -2
- package/build/api/examples/diagnostic/missing-versions.js.map +1 -1
- package/build/api/examples/diagnostic/unknown-version.d.ts +5 -4
- package/build/api/examples/diagnostic/unknown-version.d.ts.map +1 -1
- package/build/api/examples/diagnostic/unknown-version.js +3 -2
- package/build/api/examples/diagnostic/unknown-version.js.map +1 -1
- package/build/api/examples/diagnostic/validation-error.d.ts +3 -2
- package/build/api/examples/diagnostic/validation-error.d.ts.map +1 -1
- package/build/api/examples/diagnostic/validation-error.js +9 -3
- package/build/api/examples/diagnostic/validation-error.js.map +1 -1
- package/build/api/examples/diagnostic/validator.d.ts.map +1 -1
- package/build/api/examples/diagnostic/validator.js +115 -69
- package/build/api/examples/diagnostic/validator.js.map +1 -1
- package/build/api/examples/filter.d.ts.map +1 -1
- package/build/api/examples/filter.js +9 -6
- package/build/api/examples/filter.js.map +1 -1
- package/build/api/examples/scanner.d.ts.map +1 -1
- package/build/api/examples/scanner.js +93 -103
- package/build/api/examples/scanner.js.map +1 -1
- package/build/api/examples/type-usage-indexer.d.ts.map +1 -1
- package/build/api/examples/type-usage-indexer.js +18 -32
- package/build/api/examples/type-usage-indexer.js.map +1 -1
- package/build/api/iso/schema/routing.d.ts.map +1 -1
- package/build/api/iso/schema/routing.js +8 -8
- package/build/api/iso/schema/routing.js.map +1 -1
- package/build/api/iso/schema/validation.d.ts.map +1 -1
- package/build/api/iso/schema/validation.js +3 -2
- package/build/api/iso/schema/validation.js.map +1 -1
- package/build/api/schema/input-sources/directory.js +2 -2
- package/build/api/schema/input-sources/directory.js.map +1 -1
- package/build/api/schema/input-sources/versioned-directory.d.ts +3 -3
- package/build/api/schema/input-sources/versioned-directory.d.ts.map +1 -1
- package/build/api/schema/input-sources/versioned-directory.js +6 -4
- package/build/api/schema/input-sources/versioned-directory.js.map +1 -1
- package/build/api/schema/load.d.ts.map +1 -1
- package/build/api/schema/load.js +2 -2
- package/build/api/schema/load.js.map +1 -1
- package/build/cli/commands/hero-image.js +1 -1
- package/build/cli/commands/hero-image.js.map +1 -1
- package/build/lib/catalog/catalog.d.ts +65 -24
- package/build/lib/catalog/catalog.d.ts.map +1 -1
- package/build/lib/catalog/catalog.js +72 -16
- package/build/lib/catalog/catalog.js.map +1 -1
- package/build/lib/catalog/versioned.d.ts +46 -26
- package/build/lib/catalog/versioned.d.ts.map +1 -1
- package/build/lib/catalog/versioned.js +44 -7
- package/build/lib/catalog/versioned.js.map +1 -1
- package/build/lib/catalog-statistics/analyze-catalog.js +3 -3
- package/build/lib/catalog-statistics/analyze-catalog.js.map +1 -1
- package/build/lib/document/document.d.ts +55 -5
- package/build/lib/document/document.d.ts.map +1 -1
- package/build/lib/document/document.js +96 -2
- package/build/lib/document/document.js.map +1 -1
- package/build/lib/document/versioned.d.ts +2 -2
- package/build/lib/document/versioned.d.ts.map +1 -1
- package/build/lib/document/versioned.js +7 -7
- package/build/lib/document/versioned.js.map +1 -1
- package/build/lib/lifecycles/lifecycles.d.ts +5 -4
- package/build/lib/lifecycles/lifecycles.d.ts.map +1 -1
- package/build/lib/lifecycles/lifecycles.js +15 -13
- package/build/lib/lifecycles/lifecycles.js.map +1 -1
- package/build/lib/version-coverage/$$.d.ts +2 -0
- package/build/lib/version-coverage/$$.d.ts.map +1 -0
- package/build/lib/version-coverage/$$.js +2 -0
- package/build/lib/version-coverage/$$.js.map +1 -0
- package/build/lib/version-coverage/$.d.ts.map +1 -0
- package/build/lib/version-coverage/$.js.map +1 -0
- package/build/lib/{version-selection/version-selection.d.ts → version-coverage/version-coverage.d.ts} +1 -1
- package/build/lib/version-coverage/version-coverage.d.ts.map +1 -0
- package/build/lib/{version-selection/version-selection.js → version-coverage/version-coverage.js} +2 -2
- package/build/lib/version-coverage/version-coverage.js.map +1 -0
- package/build/template/components/Changelog/Changelog.d.ts.map +1 -1
- package/build/template/components/Changelog/Changelog.js +7 -7
- package/build/template/components/Changelog/Changelog.js.map +1 -1
- package/build/template/components/GraphQLDocument.d.ts +1 -1
- package/build/template/components/GraphQLDocument.d.ts.map +1 -1
- package/build/template/components/GraphQLDocument.js +10 -38
- package/build/template/components/GraphQLDocument.js.map +1 -1
- package/build/template/components/GraphQLInteractive/lib/parser.d.ts +28 -0
- package/build/template/components/GraphQLInteractive/lib/parser.d.ts.map +1 -1
- package/build/template/components/GraphQLInteractive/lib/parser.js +60 -27
- package/build/template/components/GraphQLInteractive/lib/parser.js.map +1 -1
- package/build/template/components/VersionCoveragePicker.d.ts +1 -1
- package/build/template/components/VersionCoveragePicker.d.ts.map +1 -1
- package/build/template/components/VersionCoveragePicker.js +4 -6
- package/build/template/components/VersionCoveragePicker.js.map +1 -1
- package/build/template/components/VersionPicker.d.ts.map +1 -1
- package/build/template/components/VersionPicker.js +5 -2
- package/build/template/components/VersionPicker.js.map +1 -1
- package/build/template/components/home/FeaturesGrid.js +1 -1
- package/build/template/components/home/FeaturesGrid.js.map +1 -1
- package/build/template/components/home/HeroSection.js +1 -1
- package/build/template/components/home/HeroSection.js.map +1 -1
- package/build/template/components/home/QuickStart.d.ts.map +1 -1
- package/build/template/components/home/QuickStart.js +8 -4
- package/build/template/components/home/QuickStart.js.map +1 -1
- package/build/template/components/home/RecentChanges.d.ts.map +1 -1
- package/build/template/components/home/RecentChanges.js +2 -1
- package/build/template/components/home/RecentChanges.js.map +1 -1
- package/build/template/hooks/use-highlighted.d.ts.map +1 -1
- package/build/template/hooks/use-highlighted.js +19 -13
- package/build/template/hooks/use-highlighted.js.map +1 -1
- package/build/template/lib/fetch-text.d.ts +18 -0
- package/build/template/lib/fetch-text.d.ts.map +1 -1
- package/build/template/lib/fetch-text.js +32 -4
- package/build/template/lib/fetch-text.js.map +1 -1
- package/build/template/routes/changelog.d.ts +1 -1
- package/build/template/routes/changelog.d.ts.map +1 -1
- package/build/template/routes/changelog.js +7 -4
- package/build/template/routes/changelog.js.map +1 -1
- package/build/template/routes/examples/_index.js +1 -1
- package/build/template/routes/examples/_index.js.map +1 -1
- package/build/template/routes/examples/name.d.ts.map +1 -1
- package/build/template/routes/examples/name.js +4 -2
- package/build/template/routes/examples/name.js.map +1 -1
- package/build/template/routes/reference.js +6 -6
- package/build/template/routes/reference.js.map +1 -1
- package/build/template/stores/toast.d.ts.map +1 -1
- package/build/template/stores/toast.js +5 -3
- package/build/template/stores/toast.js.map +1 -1
- package/build/vite/plugins/navbar.js +1 -1
- package/build/vite/plugins/navbar.js.map +1 -1
- package/build/vite/plugins/routes-manifest.js +1 -1
- package/build/vite/plugins/routes-manifest.js.map +1 -1
- package/package.json +7 -7
- package/src/api/builder/ssg/generate.ts +10 -5
- package/src/api/builder/ssg/page-generator.worker.ts +18 -3
- package/src/api/config/normalized.ts +12 -3
- package/src/api/config-template/template.ts +2 -2
- package/src/api/content/sidebar.ts +3 -3
- package/src/api/examples/config.test.ts +10 -0
- package/src/api/examples/config.ts +33 -4
- package/src/api/examples/diagnostic/missing-versions.ts +3 -2
- package/src/api/examples/diagnostic/unknown-version.ts +3 -2
- package/src/api/examples/diagnostic/validation-error.ts +9 -3
- package/src/api/examples/diagnostic/validator.test.ts +100 -55
- package/src/api/examples/diagnostic/validator.ts +148 -105
- package/src/api/examples/filter.ts +9 -6
- package/src/api/examples/scanner.ts +144 -120
- package/src/api/examples/type-usage-indexer.test.ts +44 -33
- package/src/api/examples/type-usage-indexer.ts +25 -40
- package/src/api/iso/schema/routing.ts +10 -10
- package/src/api/iso/schema/validation.ts +3 -2
- package/src/api/schema/$.test.ts +2 -2
- package/src/api/schema/input-sources/directory.ts +2 -2
- package/src/api/schema/input-sources/versioned-directory.ts +11 -8
- package/src/api/schema/load.ts +2 -2
- package/src/cli/commands/hero-image.ts +1 -1
- package/src/lib/catalog/catalog.ts +93 -16
- package/src/lib/catalog/versioned.ts +57 -7
- package/src/lib/catalog-statistics/$.test.ts +22 -12
- package/src/lib/catalog-statistics/analyze-catalog.ts +3 -3
- package/src/lib/document/document.ts +135 -2
- package/src/lib/document/versioned.ts +8 -8
- package/src/lib/lifecycles/lifecycles.ts +33 -28
- package/src/lib/version-coverage/$$.ts +1 -0
- package/src/lib/{version-selection/version-selection.ts → version-coverage/version-coverage.ts} +1 -1
- package/src/template/components/Changelog/Changelog.tsx +10 -6
- package/src/template/components/GraphQLDocument.tsx +11 -68
- package/src/template/components/GraphQLInteractive/lib/parser.ts +81 -29
- package/src/template/components/VersionCoveragePicker.tsx +4 -5
- package/src/template/components/VersionPicker.tsx +9 -2
- package/src/template/components/home/FeaturesGrid.tsx +1 -1
- package/src/template/components/home/HeroSection.tsx +1 -1
- package/src/template/components/home/QuickStart.tsx +16 -7
- package/src/template/components/home/RecentChanges.tsx +3 -1
- package/src/template/hooks/use-highlighted.ts +31 -19
- package/src/template/lib/fetch-text.ts +45 -4
- package/src/template/routes/changelog.tsx +10 -4
- package/src/template/routes/examples/_index.tsx +1 -1
- package/src/template/routes/examples/name.tsx +4 -2
- package/src/template/routes/reference.tsx +6 -6
- package/src/template/stores/toast.ts +6 -3
- package/src/vite/plugins/navbar.ts +1 -1
- package/src/vite/plugins/routes-manifest.ts +1 -1
- package/build/lib/graph/$$.d.ts +0 -2
- package/build/lib/graph/$$.d.ts.map +0 -1
- package/build/lib/graph/$$.js +0 -2
- package/build/lib/graph/$$.js.map +0 -1
- package/build/lib/graph/$.d.ts +0 -2
- package/build/lib/graph/$.d.ts.map +0 -1
- package/build/lib/graph/$.js +0 -2
- package/build/lib/graph/$.js.map +0 -1
- package/build/lib/graph/graph.d.ts +0 -127
- package/build/lib/graph/graph.d.ts.map +0 -1
- package/build/lib/graph/graph.js +0 -152
- package/build/lib/graph/graph.js.map +0 -1
- package/build/lib/mask/$$.d.ts +0 -3
- package/build/lib/mask/$$.d.ts.map +0 -1
- package/build/lib/mask/$$.js +0 -3
- package/build/lib/mask/$$.js.map +0 -1
- package/build/lib/mask/$.d.ts +0 -2
- package/build/lib/mask/$.d.ts.map +0 -1
- package/build/lib/mask/$.js +0 -2
- package/build/lib/mask/$.js.map +0 -1
- package/build/lib/mask/apply.d.ts +0 -86
- package/build/lib/mask/apply.d.ts.map +0 -1
- package/build/lib/mask/apply.js +0 -86
- package/build/lib/mask/apply.js.map +0 -1
- package/build/lib/mask/mask.d.ts +0 -124
- package/build/lib/mask/mask.d.ts.map +0 -1
- package/build/lib/mask/mask.js +0 -137
- package/build/lib/mask/mask.js.map +0 -1
- package/build/lib/mask/mask.test-d.d.ts +0 -2
- package/build/lib/mask/mask.test-d.d.ts.map +0 -1
- package/build/lib/mask/mask.test-d.js +0 -102
- package/build/lib/mask/mask.test-d.js.map +0 -1
- package/build/lib/version-selection/$$.d.ts +0 -2
- package/build/lib/version-selection/$$.d.ts.map +0 -1
- package/build/lib/version-selection/$$.js +0 -2
- package/build/lib/version-selection/$$.js.map +0 -1
- package/build/lib/version-selection/$.d.ts.map +0 -1
- package/build/lib/version-selection/$.js.map +0 -1
- package/build/lib/version-selection/version-selection.d.ts.map +0 -1
- package/build/lib/version-selection/version-selection.js.map +0 -1
- package/src/lib/graph/$$.ts +0 -1
- package/src/lib/graph/$.ts +0 -1
- package/src/lib/graph/graph.ts +0 -197
- package/src/lib/mask/$$.ts +0 -2
- package/src/lib/mask/$.test.ts +0 -226
- package/src/lib/mask/$.ts +0 -1
- package/src/lib/mask/apply.ts +0 -134
- package/src/lib/mask/mask.test-d.ts +0 -156
- package/src/lib/mask/mask.ts +0 -244
- package/src/lib/version-selection/$$.ts +0 -1
- /package/build/lib/{version-selection → version-coverage}/$.d.ts +0 -0
- /package/build/lib/{version-selection → version-coverage}/$.js +0 -0
- /package/src/lib/{version-selection → version-coverage}/$.ts +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"navbar.js","sourceRoot":"","sources":["../../../src/vite/plugins/navbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAmB,MAAM,qBAAqB,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,KAAK,cAAc,MAAM,sCAAsC,CAAA;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAG/B,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;AASlE;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EACrB,MAAM,EACN,YAAY,EACZ,cAAc,EACd,WAAW,GACH,EAAe,EAAE;IACzB,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,GAAG,WAAW,CAAC,gBAAgB,CAAC,OAAO,CACrC;YACE,UAAU,EAAE,eAAe;YAC3B,KAAK,CAAC,MAAM;gBACV,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;gBACrD,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,EAAE,EAAE,CAAC,CAAA;gBAEzC,MAAM,MAAM,GAAiB,EAAE,CAAA;gBAE/B,oDAAoD;gBACpD,MAAM,mBAAmB,GAAG,MAAM,MAAM,CAAC,UAAU,CACjD,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAG5D,CACF,CAAA;gBAED,IAAI,mBAAmB,EAAE,IAAI,EAAE,CAAC;oBAC9B,gFAAgF;oBAChF,iFAAiF;oBACjF,6EAA6E;oBAC7E,oEAAoE;oBACpE,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAA;oBAClE,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;oBAE9E,+CAA+C;oBAC/C,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAA;oBACxC,MAAM,oBAAoB,GAAG,OAAO,CAAC,IAAI,CACvC,CAAC,SAAS,EAAE,EAAE;wBACZ,mEAAmE;wBACnE,MAAM,cAAc,GAAG,SAAS,CAAC,
|
1
|
+
{"version":3,"file":"navbar.js","sourceRoot":"","sources":["../../../src/vite/plugins/navbar.ts"],"names":[],"mappings":"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"}
|
@@ -64,7 +64,7 @@ export const RoutesManifest = (config) => {
|
|
64
64
|
};
|
65
65
|
};
|
66
66
|
function processVersionedCatalog(catalog, routes) {
|
67
|
-
for (const schema of catalog
|
67
|
+
for (const schema of Catalog.Versioned.getAll(catalog)) {
|
68
68
|
const version = schema.version;
|
69
69
|
routes.push(`/reference/version/${version}`);
|
70
70
|
processSchemaDefinition(schema.definition, routes, `/reference/version/${version}`);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"routes-manifest.js","sourceRoot":"","sources":["../../../src/vite/plugins/routes-manifest.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"routes-manifest.js","sourceRoot":"","sources":["../../../src/vite/plugins/routes-manifest.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "polen",
|
3
|
-
"version": "0.11.0-next.
|
3
|
+
"version": "0.11.0-next.18",
|
4
4
|
"type": "module",
|
5
5
|
"description": "A framework for delightful GraphQL developer portals",
|
6
6
|
"author": {
|
@@ -43,6 +43,12 @@
|
|
43
43
|
"#lib/errors/errors": {
|
44
44
|
"default": "./build/lib/errors/$$.js"
|
45
45
|
},
|
46
|
+
"#lib/version-coverage": {
|
47
|
+
"default": "./build/lib/version-coverage/$.js"
|
48
|
+
},
|
49
|
+
"#lib/version-coverage/version-coverage": {
|
50
|
+
"default": "./build/lib/version-coverage/$$.js"
|
51
|
+
},
|
46
52
|
"#lib/version": {
|
47
53
|
"default": "./build/lib/version/$.js"
|
48
54
|
},
|
@@ -160,12 +166,6 @@
|
|
160
166
|
"#lib/semver/semver": {
|
161
167
|
"default": "./build/lib/semver/$$.js"
|
162
168
|
},
|
163
|
-
"#lib/mask": {
|
164
|
-
"default": "./build/lib/mask/$.js"
|
165
|
-
},
|
166
|
-
"#lib/mask/mask": {
|
167
|
-
"default": "./build/lib/mask/$$.js"
|
168
|
-
},
|
169
169
|
"#lib/path-map": {
|
170
170
|
"default": "./build/lib/path-map/$.js"
|
171
171
|
},
|
@@ -1,13 +1,12 @@
|
|
1
1
|
import type { Config } from '#api/config/$'
|
2
2
|
import { Routes } from '#api/routes/$'
|
3
|
-
import { chunk } from '#lib/kit-temp'
|
4
3
|
import { debugPolen } from '#singletons/debug'
|
5
4
|
import { Worker } from '@effect/platform'
|
6
5
|
import { NodeContext, NodeWorker } from '@effect/platform-node'
|
7
6
|
import { FileSystem } from '@effect/platform/FileSystem'
|
8
7
|
import { Path } from '@wollybeard/kit'
|
9
8
|
import consola from 'consola'
|
10
|
-
import { Effect, Layer } from 'effect'
|
9
|
+
import { Array, Chunk, Effect, Layer } from 'effect'
|
11
10
|
import getPort from 'get-port'
|
12
11
|
import { cpus, totalmem } from 'node:os'
|
13
12
|
import {
|
@@ -42,7 +41,12 @@ export const generate = (config: Config.Config): Effect.Effect<void, Error, File
|
|
42
41
|
const minBatchSize = 10
|
43
42
|
const idealBatchesPerWorker = 3 // Better work stealing
|
44
43
|
const batchSize = Math.max(minBatchSize, Math.ceil(totalRoutes / (optimalWorkers * idealBatchesPerWorker)))
|
45
|
-
const batches =
|
44
|
+
const batches = Chunk.toReadonlyArray(
|
45
|
+
Chunk.map(
|
46
|
+
Chunk.chunksOf(Chunk.fromIterable(routes), batchSize),
|
47
|
+
batch => Chunk.toReadonlyArray(batch),
|
48
|
+
),
|
49
|
+
)
|
46
50
|
|
47
51
|
consola.info(`SSG Build Plan:`)
|
48
52
|
consola.info(` Routes: ${totalRoutes} pages to generate`)
|
@@ -194,8 +198,9 @@ export const generate = (config: Config.Config): Effect.Effect<void, Error, File
|
|
194
198
|
|
195
199
|
// Final stats using successful results
|
196
200
|
const totalTime = ((Date.now() - startTime) / 1000).toFixed(1)
|
197
|
-
const totalMemoryMB =
|
198
|
-
const avgTimePerBatch =
|
201
|
+
const totalMemoryMB = Array.reduce(successfulResults, 0, (sum, r) => sum + r.memoryUsed) / (1024 * 1024)
|
202
|
+
const avgTimePerBatch = Array.reduce(successfulResults, 0, (sum, r) => sum + r.duration)
|
203
|
+
/ successfulResults.length
|
199
204
|
/ 1000
|
200
205
|
|
201
206
|
consola.success(`\n\nSSG Complete!`)
|
@@ -5,12 +5,28 @@
|
|
5
5
|
import { debugPolen } from '#singletons/debug'
|
6
6
|
import { Path, WorkerRunner } from '@effect/platform'
|
7
7
|
import { NodeContext, NodeRuntime, NodeWorkerRunner } from '@effect/platform-node'
|
8
|
-
import { Effect, Layer } from 'effect'
|
8
|
+
import { Data, Effect, Layer } from 'effect'
|
9
9
|
import { promises as fs } from 'node:fs'
|
10
10
|
import { type GenerateResult, PageMessage } from './worker-messages.js'
|
11
11
|
|
12
12
|
const debug = debugPolen.sub(`api:ssg:page-generator`)
|
13
13
|
|
14
|
+
// ============================================================================
|
15
|
+
// Error Types
|
16
|
+
// ============================================================================
|
17
|
+
|
18
|
+
class RouteProcessingError extends Data.Error<{
|
19
|
+
route: string
|
20
|
+
cause: unknown
|
21
|
+
}> {
|
22
|
+
override get message() {
|
23
|
+
const causeMessage = this.cause instanceof Error
|
24
|
+
? this.cause.message
|
25
|
+
: String(this.cause)
|
26
|
+
return `Failed to process route ${this.route}: ${causeMessage}`
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
14
30
|
// ============================================================================
|
15
31
|
// Generate Pages Handler
|
16
32
|
// ============================================================================
|
@@ -69,8 +85,7 @@ const handlers = {
|
|
69
85
|
},
|
70
86
|
catch: (error) => {
|
71
87
|
debug(`Failed to process route`, { route, error })
|
72
|
-
|
73
|
-
return new Error(`Failed to process route ${route}: ${message}`)
|
88
|
+
return new RouteProcessingError({ route, cause: error })
|
74
89
|
},
|
75
90
|
})
|
76
91
|
}
|
@@ -469,7 +469,7 @@ const buildPaths = (rootDir: string, overrides?: ConfigAdvancedPathsInput | unde
|
|
469
469
|
}
|
470
470
|
}
|
471
471
|
|
472
|
-
const getConfigInputDefaults = (): Config => ({
|
472
|
+
const getConfigInputDefaults = (baseRootDirPath: string): Config => ({
|
473
473
|
_input: {},
|
474
474
|
name: `My Developer Portal`,
|
475
475
|
description: `Explore and integrate with our GraphQL API`,
|
@@ -525,7 +525,7 @@ const getConfigInputDefaults = (): Config => ({
|
|
525
525
|
enabled: true,
|
526
526
|
},
|
527
527
|
},
|
528
|
-
paths: buildPaths(
|
528
|
+
paths: buildPaths(baseRootDirPath),
|
529
529
|
advanced: {
|
530
530
|
isSelfContainedMode: false,
|
531
531
|
debug: false,
|
@@ -549,7 +549,7 @@ export const normalizeInput = (
|
|
549
549
|
assertPathAbsolute(baseRootDirPath)
|
550
550
|
|
551
551
|
const configInput_as_writeable = configInput as WritableDeep<ConfigInput> | undefined
|
552
|
-
const config = structuredClone(getConfigInputDefaults()) as WritableDeep<Config>
|
552
|
+
const config = structuredClone(getConfigInputDefaults(baseRootDirPath)) as WritableDeep<Config>
|
553
553
|
|
554
554
|
if (configInput_as_writeable) {
|
555
555
|
config._input = configInput_as_writeable
|
@@ -656,6 +656,15 @@ export const normalizeInput = (
|
|
656
656
|
if (configInput_as_writeable?.examples) {
|
657
657
|
const examplesInput = configInput_as_writeable.examples
|
658
658
|
|
659
|
+
// The schema transform handles boolean shorthand, so we always get an object here
|
660
|
+
if (examplesInput.enabled !== undefined) {
|
661
|
+
// If explicitly disabled, set display to 'none'
|
662
|
+
if (examplesInput.enabled === false) {
|
663
|
+
config.examples.display = 'none'
|
664
|
+
}
|
665
|
+
// enabled: true keeps defaults
|
666
|
+
}
|
667
|
+
|
659
668
|
if (examplesInput.display !== undefined) {
|
660
669
|
config.examples.display = examplesInput.display
|
661
670
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import type { Api } from '#api/$'
|
2
|
-
import {
|
2
|
+
import { ExamplesConfigObject } from '#api/examples/config'
|
3
3
|
import { ConfigSchema } from '#api/schema/config-schema'
|
4
4
|
import type { Catalog } from '#lib/catalog/$'
|
5
5
|
import { S } from '#lib/kit-temp/effect'
|
@@ -42,7 +42,7 @@ export const TemplateConfig = S.extend(
|
|
42
42
|
}),
|
43
43
|
),
|
44
44
|
examples: S.extend(
|
45
|
-
|
45
|
+
ExamplesConfigObject.pipe(S.omit('enabled')),
|
46
46
|
S.Struct({
|
47
47
|
enabled: S.Boolean,
|
48
48
|
}),
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { FileRouter } from '#lib/file-router'
|
2
2
|
import { Str } from '@wollybeard/kit'
|
3
|
+
import { Array } from 'effect'
|
3
4
|
import type { Page } from './page.js'
|
4
5
|
import type { ScanResult } from './scan.js'
|
5
6
|
|
@@ -129,10 +130,9 @@ export const buildSidebarIndex = (scanResult: ScanResult): SidebarIndex => {
|
|
129
130
|
|
130
131
|
// Build sidebar for each directory that has an index page
|
131
132
|
for (const [topLevelDir, pages] of pagesByTopLevelDir) {
|
132
|
-
const hasIndexPage =
|
133
|
+
const hasIndexPage = Array.some(pages, page =>
|
133
134
|
page.route.logical.path.length === 1
|
134
|
-
&& FileRouter.routeIsFromIndexFile(page.route)
|
135
|
-
)
|
135
|
+
&& FileRouter.routeIsFromIndexFile(page.route))
|
136
136
|
|
137
137
|
// Skip directories without index pages
|
138
138
|
if (!hasIndexPage) continue
|
@@ -28,6 +28,16 @@ describe('ExamplesConfig', () => {
|
|
28
28
|
expect(result).toEqual({})
|
29
29
|
})
|
30
30
|
|
31
|
+
test('boolean shorthand: false disables examples', () => {
|
32
|
+
const result = decodeExamplesConfig(false)
|
33
|
+
expect(result).toEqual({ enabled: false })
|
34
|
+
})
|
35
|
+
|
36
|
+
test('boolean shorthand: true uses defaults', () => {
|
37
|
+
const result = decodeExamplesConfig(true)
|
38
|
+
expect(result).toEqual({})
|
39
|
+
})
|
40
|
+
|
31
41
|
test('decodes full config', () => {
|
32
42
|
const input = {
|
33
43
|
display: { include: ['example1', 'example2'] },
|
@@ -141,7 +141,7 @@ export type ExampleDiagnostics = S.Schema.Type<typeof ExampleDiagnostics>
|
|
141
141
|
// Schema - Examples Config
|
142
142
|
// ============================================================================
|
143
143
|
|
144
|
-
export const
|
144
|
+
export const ExamplesConfigObject = S.Struct({
|
145
145
|
/**
|
146
146
|
* Control whether the examples feature is enabled.
|
147
147
|
* - true: Always enabled (show in nav even if no examples exist)
|
@@ -220,13 +220,42 @@ export const ExamplesConfig = S.Struct({
|
|
220
220
|
description: 'Configuration for GraphQL examples behavior and diagnostics',
|
221
221
|
})
|
222
222
|
|
223
|
+
/**
|
224
|
+
* Examples configuration supporting both boolean shorthand and detailed object form.
|
225
|
+
* - `false`: Disable examples entirely
|
226
|
+
* - `true`: Enable examples with defaults
|
227
|
+
* - object: Fine-grained configuration
|
228
|
+
*/
|
229
|
+
export const ExamplesConfig = S.transform(
|
230
|
+
S.Union(
|
231
|
+
S.Boolean,
|
232
|
+
ExamplesConfigObject,
|
233
|
+
),
|
234
|
+
ExamplesConfigObject,
|
235
|
+
{
|
236
|
+
strict: false,
|
237
|
+
decode: (input) => {
|
238
|
+
if (typeof input === 'boolean') {
|
239
|
+
// Convert boolean shorthand to object form
|
240
|
+
return input === false
|
241
|
+
? { enabled: false } as const
|
242
|
+
: {} // true means use defaults
|
243
|
+
}
|
244
|
+
return input
|
245
|
+
},
|
246
|
+
encode: (value) => value,
|
247
|
+
},
|
248
|
+
).annotations({
|
249
|
+
identifier: 'ExamplesConfigTransform',
|
250
|
+
title: 'Examples Configuration with Boolean Shorthand',
|
251
|
+
description: 'Configuration for GraphQL examples - accepts boolean shorthand or detailed object',
|
252
|
+
})
|
253
|
+
|
223
254
|
export type ExamplesConfig = S.Schema.Type<typeof ExamplesConfig>
|
224
255
|
|
225
256
|
// ============================================================================
|
226
257
|
// Constructors
|
227
|
-
|
228
|
-
|
229
|
-
export const makeExamplesConfig = ExamplesConfig.make
|
258
|
+
export const makeExamplesConfig = ExamplesConfigObject.make
|
230
259
|
|
231
260
|
// ============================================================================
|
232
261
|
// Type Guards
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { Diagnostic } from '#lib/diagnostic/$'
|
2
2
|
import { S } from '#lib/kit-temp/effect'
|
3
|
+
import { Version } from '#lib/version/$'
|
3
4
|
|
4
5
|
export const DiagnosticMissingVersions = Diagnostic.create({
|
5
6
|
source: 'examples-scanner',
|
@@ -10,8 +11,8 @@ export const DiagnosticMissingVersions = Diagnostic.create({
|
|
10
11
|
name: S.String,
|
11
12
|
path: S.String,
|
12
13
|
}),
|
13
|
-
providedVersions: S.Array(
|
14
|
-
missingVersions: S.Array(
|
14
|
+
providedVersions: S.Array(Version.Version),
|
15
|
+
missingVersions: S.Array(Version.Version),
|
15
16
|
},
|
16
17
|
}).annotations({
|
17
18
|
identifier: 'DiagnosticMissingVersions',
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { Diagnostic } from '#lib/diagnostic/$'
|
2
2
|
import { S } from '#lib/kit-temp/effect'
|
3
|
+
import { Version } from '#lib/version/$'
|
3
4
|
|
4
5
|
export const DiagnosticUnknownVersion = Diagnostic.create({
|
5
6
|
source: 'examples-scanner',
|
@@ -10,8 +11,8 @@ export const DiagnosticUnknownVersion = Diagnostic.create({
|
|
10
11
|
name: S.String,
|
11
12
|
path: S.String,
|
12
13
|
}),
|
13
|
-
version:
|
14
|
-
availableVersions: S.Array(
|
14
|
+
version: Version.Version,
|
15
|
+
availableVersions: S.Array(Version.Version),
|
15
16
|
},
|
16
17
|
}).annotations({
|
17
18
|
identifier: 'DiagnosticUnknownVersion',
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { Diagnostic } from '#lib/diagnostic/$'
|
2
|
-
import { GraphQLError } from '#lib/graphql-error/$'
|
3
2
|
import { S } from '#lib/kit-temp/effect'
|
3
|
+
import { Version } from '#lib/version/$'
|
4
4
|
|
5
5
|
export const DiagnosticValidationError = Diagnostic.create({
|
6
6
|
source: 'examples-validation',
|
@@ -11,8 +11,14 @@ export const DiagnosticValidationError = Diagnostic.create({
|
|
11
11
|
name: S.String,
|
12
12
|
path: S.String,
|
13
13
|
}),
|
14
|
-
version: S.
|
15
|
-
errors: S.Array(
|
14
|
+
version: S.optional(Version.Version),
|
15
|
+
errors: S.Array(S.Struct({
|
16
|
+
message: S.String,
|
17
|
+
locations: S.optional(S.Array(S.Struct({
|
18
|
+
line: S.Number,
|
19
|
+
column: S.Number,
|
20
|
+
}))),
|
21
|
+
})),
|
16
22
|
},
|
17
23
|
}).annotations({
|
18
24
|
identifier: 'DiagnosticValidationError',
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { Catalog } from '#lib/catalog/$'
|
2
2
|
import { Document } from '#lib/document/$'
|
3
|
+
import { Schema } from '#lib/schema/$'
|
3
4
|
import { Version } from '#lib/version/$'
|
4
5
|
import { HashMap, HashSet } from 'effect'
|
5
6
|
import { buildSchema } from 'graphql'
|
@@ -30,22 +31,26 @@ const catalog = Catalog.Unversioned.make({
|
|
30
31
|
|
31
32
|
// Create a versioned catalog for versioned tests
|
32
33
|
const versionedCatalogForTests = Catalog.Versioned.make({
|
33
|
-
entries:
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
34
|
+
entries: HashMap.make(
|
35
|
+
[
|
36
|
+
Version.fromString('v1'),
|
37
|
+
Schema.Versioned.make({
|
38
|
+
version: Version.fromString('v1'),
|
39
|
+
definition: schema,
|
40
|
+
branchPoint: null,
|
41
|
+
revisions: [],
|
42
|
+
}),
|
43
|
+
],
|
44
|
+
[
|
45
|
+
Version.fromString('v2'),
|
46
|
+
Schema.Versioned.make({
|
47
|
+
version: Version.fromString('v2'),
|
48
|
+
definition: schema,
|
49
|
+
branchPoint: null,
|
50
|
+
revisions: [],
|
51
|
+
}),
|
52
|
+
],
|
53
|
+
),
|
49
54
|
})
|
50
55
|
|
51
56
|
test.for([
|
@@ -173,22 +178,26 @@ test('validates versioned catalog with multiple schemas', () => {
|
|
173
178
|
`)
|
174
179
|
|
175
180
|
const versionedCatalog = Catalog.Versioned.make({
|
176
|
-
entries:
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
181
|
+
entries: HashMap.make(
|
182
|
+
[
|
183
|
+
Version.fromString('1.0.0'),
|
184
|
+
Schema.Versioned.make({
|
185
|
+
version: Version.fromString('1.0.0'),
|
186
|
+
revisions: [],
|
187
|
+
definition: v1Schema,
|
188
|
+
branchPoint: null,
|
189
|
+
}),
|
190
|
+
],
|
191
|
+
[
|
192
|
+
Version.fromString('2.0.0'),
|
193
|
+
Schema.Versioned.make({
|
194
|
+
version: Version.fromString('2.0.0'),
|
195
|
+
revisions: [],
|
196
|
+
definition: v2Schema,
|
197
|
+
branchPoint: null,
|
198
|
+
}),
|
199
|
+
],
|
200
|
+
),
|
192
201
|
})
|
193
202
|
|
194
203
|
const v1 = Version.fromString('1.0.0')
|
@@ -247,31 +256,67 @@ test('validates examples with version sets', () => {
|
|
247
256
|
|
248
257
|
// Create catalog with v1, v2, v3 versions
|
249
258
|
const versionedCatalogWithV3 = Catalog.Versioned.make({
|
250
|
-
entries:
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
259
|
+
entries: HashMap.make(
|
260
|
+
[
|
261
|
+
v1,
|
262
|
+
Schema.Versioned.make({
|
263
|
+
version: v1,
|
264
|
+
definition: schema,
|
265
|
+
branchPoint: null,
|
266
|
+
revisions: [],
|
267
|
+
}),
|
268
|
+
],
|
269
|
+
[
|
270
|
+
v2,
|
271
|
+
Schema.Versioned.make({
|
272
|
+
version: v2,
|
273
|
+
definition: schema,
|
274
|
+
branchPoint: null,
|
275
|
+
revisions: [],
|
276
|
+
}),
|
277
|
+
],
|
278
|
+
[
|
279
|
+
Version.fromString('v3'),
|
280
|
+
Schema.Versioned.make({
|
281
|
+
version: Version.fromString('v3'),
|
282
|
+
definition: schema,
|
283
|
+
branchPoint: null,
|
284
|
+
revisions: [],
|
285
|
+
}),
|
286
|
+
],
|
287
|
+
),
|
273
288
|
})
|
274
289
|
|
275
290
|
const diagnostics = validateExamples(examples, versionedCatalogWithV3)
|
276
291
|
expect(diagnostics.length).toBe(1) // invalidField doesn't exist in the test schema
|
277
292
|
})
|
293
|
+
|
294
|
+
test('detects mismatch between versioned document and unversioned catalog', () => {
|
295
|
+
// Create a versioned document with multiple versions
|
296
|
+
const v1 = Version.fromString('1.0.0')
|
297
|
+
const v2 = Version.fromString('2.0.0')
|
298
|
+
|
299
|
+
const versionedDocument = Document.Versioned.make({
|
300
|
+
versionDocuments: HashMap.make(
|
301
|
+
[v1, 'query { user(id: "1") { id name } }'],
|
302
|
+
[v2, 'query { users { id name } }'],
|
303
|
+
),
|
304
|
+
})
|
305
|
+
|
306
|
+
// Create an example with versioned document
|
307
|
+
const example = Example.make({
|
308
|
+
name: 'test-version-mismatch',
|
309
|
+
path: 'test.graphql',
|
310
|
+
document: versionedDocument,
|
311
|
+
})
|
312
|
+
|
313
|
+
// Validate against unversioned catalog - should detect mismatch
|
314
|
+
const diagnostics = validateExamples([example], catalog)
|
315
|
+
|
316
|
+
// Should have exactly one diagnostic about the version mismatch
|
317
|
+
expect(diagnostics.length).toBe(1)
|
318
|
+
expect(diagnostics[0]!._tag).toBe('Diagnostic')
|
319
|
+
expect(diagnostics[0]!.name).toBe('invalid-graphql')
|
320
|
+
expect(diagnostics[0]!.message).toContain('versioned content but catalog is unversioned')
|
321
|
+
expect(diagnostics[0]!.errors![0]!.message).toContain('Cannot use a version coverage with an unversioned catalog')
|
322
|
+
})
|