polen 0.10.0-next.14 → 0.10.0-next.3
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/README.md +375 -49
- package/build/api/api.d.ts +0 -1
- package/build/api/api.d.ts.map +1 -1
- package/build/api/api.js +0 -1
- package/build/api/api.js.map +1 -1
- package/build/api/builder/builder.js +1 -1
- package/build/api/builder/builder.js.map +1 -1
- package/build/api/config/load.js +6 -6
- package/build/api/config/load.js.map +1 -1
- package/build/api/config-resolver/resolve.js +2 -2
- package/build/api/config-resolver/resolve.js.map +1 -1
- package/build/api/schema/data-sources/schema-directory/schema-directory.js +1 -1
- package/build/api/schema/data-sources/schema-directory/schema-directory.js.map +1 -1
- package/build/api/vite/plugins/branding/index.js +4 -4
- package/build/api/vite/plugins/branding/index.js.map +1 -1
- package/build/api/vite/plugins/build.d.ts.map +1 -1
- package/build/api/vite/plugins/build.js +4 -33
- package/build/api/vite/plugins/build.js.map +1 -1
- package/build/api/vite/plugins/core.d.ts +2 -2
- package/build/api/vite/plugins/core.d.ts.map +1 -1
- package/build/api/vite/plugins/core.js +13 -13
- package/build/api/vite/plugins/core.js.map +1 -1
- package/build/api/vite/plugins/pages.d.ts +14 -8
- package/build/api/vite/plugins/pages.d.ts.map +1 -1
- package/build/api/vite/plugins/pages.js +185 -111
- package/build/api/vite/plugins/pages.js.map +1 -1
- package/build/api/vite/plugins/serve.d.ts.map +1 -1
- package/build/api/vite/plugins/serve.js +12 -52
- package/build/api/vite/plugins/serve.js.map +1 -1
- package/build/cli/_/self-contained-mode.js +5 -5
- package/build/cli/_/self-contained-mode.js.map +1 -1
- package/build/lib/file-router/diagnostic-reporter.js +2 -2
- package/build/lib/file-router/diagnostic-reporter.js.map +1 -1
- package/build/lib/file-router/file-router.d.ts +2 -0
- package/build/lib/file-router/file-router.d.ts.map +1 -1
- package/build/lib/file-router/file-router.js +2 -0
- package/build/lib/file-router/file-router.js.map +1 -1
- package/build/lib/file-router/route.d.ts +0 -2
- package/build/lib/file-router/route.d.ts.map +1 -1
- package/build/lib/file-router/route.js.map +1 -1
- package/build/lib/file-router/scan-tree.d.ts +20 -0
- package/build/lib/file-router/scan-tree.d.ts.map +1 -0
- package/build/lib/file-router/scan-tree.js +158 -0
- package/build/lib/file-router/scan-tree.js.map +1 -0
- package/build/lib/file-router/scan.d.ts.map +1 -1
- package/build/lib/file-router/scan.js +13 -22
- package/build/lib/file-router/scan.js.map +1 -1
- package/build/lib/file-router/sidebar/index.d.ts +3 -0
- package/build/lib/file-router/sidebar/index.d.ts.map +1 -0
- package/build/lib/file-router/sidebar/index.js +4 -0
- package/build/lib/file-router/sidebar/index.js.map +1 -0
- package/build/lib/file-router/sidebar/sidebar-tree.d.ts +9 -0
- package/build/lib/file-router/sidebar/sidebar-tree.d.ts.map +1 -0
- package/build/lib/file-router/sidebar/sidebar-tree.js +85 -0
- package/build/lib/file-router/sidebar/sidebar-tree.js.map +1 -0
- package/build/lib/file-router/sidebar/types.d.ts +17 -0
- package/build/lib/file-router/sidebar/types.d.ts.map +1 -0
- package/build/lib/file-router/sidebar/types.js.map +1 -0
- package/build/lib/helpers.d.ts.map +1 -1
- package/build/lib/helpers.js +3 -5
- package/build/lib/helpers.js.map +1 -1
- package/build/lib/kit-temp.d.ts +0 -157
- package/build/lib/kit-temp.d.ts.map +1 -1
- package/build/lib/kit-temp.js +14 -316
- package/build/lib/kit-temp.js.map +1 -1
- package/build/lib/tree/index.d.ts +3 -0
- package/build/lib/tree/index.d.ts.map +1 -0
- package/build/lib/tree/index.js +2 -0
- package/build/lib/tree/index.js.map +1 -0
- package/build/lib/tree/tree.d.ts +62 -0
- package/build/lib/tree/tree.d.ts.map +1 -0
- package/build/lib/tree/tree.js +134 -0
- package/build/lib/tree/tree.js.map +1 -0
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.d.ts +8 -1
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.d.ts.map +1 -1
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.js +53 -48
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.js.map +1 -1
- package/build/package-paths.js +3 -3
- package/build/package-paths.js.map +1 -1
- package/build/singletons/debug.d.ts +1 -1
- package/build/singletons/debug.d.ts.map +1 -1
- package/build/singletons/debug.js +1 -1
- package/build/singletons/debug.js.map +1 -1
- package/build/template/components/ArgumentAnnotation.jsx +16 -0
- package/build/template/components/ArgumentAnnotation.jsx.map +1 -0
- package/build/template/components/ArgumentList.jsx +16 -0
- package/build/template/components/ArgumentList.jsx.map +1 -0
- package/build/template/components/ArgumentListAnnotation.jsx +23 -0
- package/build/template/components/ArgumentListAnnotation.jsx.map +1 -0
- package/build/template/components/Changelog.jsx +68 -0
- package/build/template/components/Changelog.jsx.map +1 -0
- package/build/template/components/{CodeBlock.js → CodeBlock.jsx} +5 -4
- package/build/template/components/{CodeBlock.js.map → CodeBlock.jsx.map} +1 -1
- package/build/template/components/DeprecationReason.jsx +10 -0
- package/build/template/components/DeprecationReason.jsx.map +1 -0
- package/build/template/components/Description.jsx +10 -0
- package/build/template/components/Description.jsx.map +1 -0
- package/build/template/components/Field.jsx +22 -0
- package/build/template/components/Field.jsx.map +1 -0
- package/build/template/components/{FieldList.js → FieldList.jsx} +5 -4
- package/build/template/components/FieldList.jsx.map +1 -0
- package/build/template/components/{FieldListSection.js → FieldListSection.jsx} +6 -4
- package/build/template/components/FieldListSection.jsx.map +1 -0
- package/build/template/components/Link.d.ts +2 -2
- package/build/template/components/Link.d.ts.map +1 -1
- package/build/template/components/{Link.js → Link.jsx} +10 -18
- package/build/template/components/Link.jsx.map +1 -0
- package/build/template/components/Logo.jsx +29 -0
- package/build/template/components/Logo.jsx.map +1 -0
- package/build/template/components/{Markdown.js → Markdown.jsx} +2 -3
- package/build/template/components/Markdown.jsx.map +1 -0
- package/build/template/components/MissingSchema.d.ts +1 -1
- package/build/template/components/MissingSchema.d.ts.map +1 -1
- package/build/template/components/MissingSchema.jsx +4 -0
- package/build/template/components/MissingSchema.jsx.map +1 -0
- package/build/template/components/NamedType.jsx +17 -0
- package/build/template/components/NamedType.jsx.map +1 -0
- package/build/template/components/{RadixLink.js → RadixLink.jsx} +1 -1
- package/build/template/components/RadixLink.jsx.map +1 -0
- package/build/template/components/Texts/{MinorHeading.js → MinorHeading.jsx} +3 -4
- package/build/template/components/Texts/MinorHeading.jsx.map +1 -0
- package/build/template/components/Texts/texts.js +1 -1
- package/build/template/components/Texts/texts.js.map +1 -1
- package/build/template/components/{TypeAnnotation.js → TypeAnnotation.jsx} +18 -8
- package/build/template/components/TypeAnnotation.jsx.map +1 -0
- package/build/template/components/TypeFieldsLinkList.jsx +17 -0
- package/build/template/components/TypeFieldsLinkList.jsx.map +1 -0
- package/build/template/components/TypeIndex.jsx +27 -0
- package/build/template/components/TypeIndex.jsx.map +1 -0
- package/build/template/components/graphql/graphql.d.ts +2 -2
- package/build/template/components/graphql/graphql.jsx +3 -0
- package/build/template/components/graphql/graphql.jsx.map +1 -0
- package/build/template/components/graphql/index.d.ts +1 -1
- package/build/template/components/graphql/index.js +1 -1
- package/build/template/components/graphql/index.js.map +1 -1
- package/build/template/components/graphql/{type-kind-icon.js → type-kind-icon.jsx} +2 -3
- package/build/template/components/graphql/type-kind-icon.jsx.map +1 -0
- package/build/template/components/graphql/type-link.jsx +16 -0
- package/build/template/components/graphql/type-link.jsx.map +1 -0
- package/build/template/components/sidebar/Sidebar.d.ts +3 -3
- package/build/template/components/sidebar/Sidebar.d.ts.map +1 -1
- package/build/template/components/sidebar/Sidebar.jsx +15 -0
- package/build/template/components/sidebar/Sidebar.jsx.map +1 -0
- package/build/template/components/sidebar/SidebarItem.d.ts +3 -3
- package/build/template/components/sidebar/SidebarItem.d.ts.map +1 -1
- package/build/template/components/sidebar/{SidebarItem.js → SidebarItem.jsx} +35 -18
- package/build/template/components/sidebar/SidebarItem.jsx.map +1 -0
- package/build/template/components/sidebar/ToggleButton.d.ts +1 -1
- package/build/template/components/sidebar/ToggleButton.d.ts.map +1 -1
- package/build/template/components/sidebar/ToggleButton.jsx +6 -0
- package/build/template/components/sidebar/ToggleButton.jsx.map +1 -0
- package/build/template/entry.client.d.ts +0 -1
- package/build/template/entry.client.d.ts.map +1 -1
- package/build/template/{entry.client.js → entry.client.jsx} +9 -5
- package/build/template/entry.client.jsx.map +1 -0
- package/build/template/routes/changelog.d.ts +1 -1
- package/build/template/routes/{changelog.js → changelog.jsx} +4 -5
- package/build/template/routes/changelog.jsx.map +1 -0
- package/build/template/routes/{index.js → index.jsx} +2 -3
- package/build/template/routes/index.jsx.map +1 -0
- package/build/template/routes/reference.$type.$field.d.ts +1 -1
- package/build/template/routes/{reference.$type.$field.js → reference.$type.$field.jsx} +5 -6
- package/build/template/routes/reference.$type.$field.jsx.map +1 -0
- package/build/template/routes/reference.$type.d.ts +1 -1
- package/build/template/routes/{reference.$type.js → reference.$type.jsx} +5 -6
- package/build/template/routes/reference.$type.jsx.map +1 -0
- package/build/template/routes/reference.d.ts +2 -2
- package/build/template/routes/reference.d.ts.map +1 -1
- package/build/template/routes/{reference.js → reference.jsx} +12 -7
- package/build/template/routes/reference.jsx.map +1 -0
- package/build/template/routes/root.d.ts +2 -2
- package/build/template/routes/root.d.ts.map +1 -1
- package/build/template/routes/root.jsx +188 -0
- package/build/template/routes/root.jsx.map +1 -0
- package/build/template/routes.jsx +5 -0
- package/build/template/routes.jsx.map +1 -0
- package/build/template/server/app.d.ts +1 -8
- package/build/template/server/app.d.ts.map +1 -1
- package/build/template/server/app.js +21 -21
- package/build/template/server/app.js.map +1 -1
- package/build/template/server/main.js +1 -2
- package/build/template/server/main.js.map +1 -1
- package/build/template/server/render-page.d.ts +3 -0
- package/build/template/server/render-page.d.ts.map +1 -0
- package/build/template/server/{create-page-html-response.js → render-page.jsx} +17 -11
- package/build/template/server/render-page.jsx.map +1 -0
- package/build/template/server/ssg/generate.d.ts.map +1 -1
- package/build/template/server/ssg/generate.js +34 -33
- package/build/template/server/ssg/generate.js.map +1 -1
- package/build/template/server/ssg/get-route-paths.js +1 -1
- package/build/template/server/ssg/get-route-paths.js.map +1 -1
- package/build/template/server/view.js +1 -1
- package/build/template/server/view.js.map +1 -1
- package/package.json +9 -73
- package/src/api/api.ts +0 -1
- package/src/api/config/load.ts +5 -5
- package/src/api/config-resolver/resolve.ts +2 -2
- package/src/api/schema/data-sources/schema-directory/schema-directory.ts +1 -1
- package/src/api/singletons/markdown/markdown.test.ts +2 -2
- package/src/api/utils/asset-url/asset-url.test.ts +4 -4
- package/src/api/vite/plugins/branding/index.ts +4 -4
- package/src/api/vite/plugins/build.ts +89 -121
- package/src/api/vite/plugins/core.ts +17 -19
- package/src/api/vite/plugins/pages.ts +209 -135
- package/src/api/vite/plugins/serve.ts +14 -67
- package/src/cli/_/self-contained-mode.ts +5 -5
- package/src/lib/file-router/diagnostic-reporter.ts +2 -2
- package/src/lib/file-router/file-router.ts +2 -0
- package/src/lib/file-router/linter.test.ts +0 -2
- package/src/lib/file-router/route.ts +0 -2
- package/src/lib/file-router/scan-tree.test.ts +189 -0
- package/src/lib/file-router/scan-tree.ts +205 -0
- package/src/lib/file-router/scan.ts +14 -26
- package/src/lib/file-router/sidebar/index.ts +3 -0
- package/src/lib/file-router/sidebar/sidebar-tree.test.ts +123 -0
- package/src/lib/file-router/sidebar/sidebar-tree.ts +110 -0
- package/src/lib/file-router/sidebar/types.ts +19 -0
- package/src/lib/helpers.ts +3 -4
- package/src/lib/kit-temp.ts +14 -428
- package/src/lib/shiki/shiki.test.ts +1 -1
- package/src/lib/tree/index.ts +2 -0
- package/src/lib/tree/tree.test.ts +117 -0
- package/src/lib/tree/tree.ts +183 -0
- package/src/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.ts +58 -52
- package/src/package-paths.ts +3 -3
- package/src/singletons/debug.ts +1 -1
- package/src/template/components/ArgumentAnnotation.tsx +1 -1
- package/src/template/components/ArgumentList.tsx +1 -1
- package/src/template/components/ArgumentListAnnotation.tsx +2 -2
- package/src/template/components/DeprecationReason.tsx +1 -1
- package/src/template/components/Description.tsx +1 -1
- package/src/template/components/Field.tsx +4 -4
- package/src/template/components/FieldList.tsx +1 -1
- package/src/template/components/FieldListSection.tsx +1 -1
- package/src/template/components/Link.tsx +15 -23
- package/src/template/components/NamedType.tsx +2 -2
- package/src/template/components/TypeAnnotation.tsx +1 -1
- package/src/template/components/TypeFieldsLinkList.tsx +1 -1
- package/src/template/components/TypeIndex.tsx +1 -1
- package/src/template/components/graphql/graphql.tsx +2 -2
- package/src/template/components/graphql/index.ts +1 -1
- package/src/template/components/graphql/type-link.tsx +2 -2
- package/src/template/components/sidebar/Sidebar.tsx +2 -2
- package/src/template/components/sidebar/SidebarItem.tsx +14 -14
- package/src/template/entry.client.tsx +5 -2
- package/src/template/routes/changelog.tsx +1 -1
- package/src/template/routes/reference.$type.$field.tsx +3 -3
- package/src/template/routes/reference.$type.tsx +3 -3
- package/src/template/routes/reference.tsx +10 -6
- package/src/template/routes/root.tsx +108 -112
- package/src/template/routes.tsx +1 -1
- package/src/template/server/app.ts +23 -33
- package/src/template/server/main.ts +1 -2
- package/src/template/server/{create-page-html-response.ts → render-page.tsx} +16 -19
- package/src/template/server/ssg/generate.ts +72 -68
- package/src/template/server/ssg/get-route-paths.ts +1 -1
- package/src/template/server/view.ts +1 -1
- package/src/template/styles/code-block.css +0 -32
- package/build/api/content/$$.d.ts +0 -7
- package/build/api/content/$$.d.ts.map +0 -1
- package/build/api/content/$$.js +0 -7
- package/build/api/content/$$.js.map +0 -1
- package/build/api/content/$.d.ts +0 -2
- package/build/api/content/$.d.ts.map +0 -1
- package/build/api/content/$.js +0 -2
- package/build/api/content/$.js.map +0 -1
- package/build/api/content/metadata.d.ts +0 -10
- package/build/api/content/metadata.d.ts.map +0 -1
- package/build/api/content/metadata.js +0 -9
- package/build/api/content/metadata.js.map +0 -1
- package/build/api/content/navbar.d.ts +0 -10
- package/build/api/content/navbar.d.ts.map +0 -1
- package/build/api/content/navbar.js +0 -45
- package/build/api/content/navbar.js.map +0 -1
- package/build/api/content/page.d.ts +0 -11
- package/build/api/content/page.d.ts.map +0 -1
- package/build/api/content/page.js +0 -2
- package/build/api/content/page.js.map +0 -1
- package/build/api/content/scan.d.ts +0 -19
- package/build/api/content/scan.d.ts.map +0 -1
- package/build/api/content/scan.js +0 -90
- package/build/api/content/scan.js.map +0 -1
- package/build/api/content/sidebar.d.ts +0 -104
- package/build/api/content/sidebar.d.ts.map +0 -1
- package/build/api/content/sidebar.js +0 -166
- package/build/api/content/sidebar.js.map +0 -1
- package/build/api/content/utils.d.ts +0 -5
- package/build/api/content/utils.d.ts.map +0 -1
- package/build/api/content/utils.js +0 -8
- package/build/api/content/utils.js.map +0 -1
- package/build/api/static/index.d.ts +0 -2
- package/build/api/static/index.d.ts.map +0 -1
- package/build/api/static/index.js +0 -2
- package/build/api/static/index.js.map +0 -1
- package/build/api/static/manifest.d.ts +0 -18
- package/build/api/static/manifest.d.ts.map +0 -1
- package/build/api/static/manifest.js +0 -13
- package/build/api/static/manifest.js.map +0 -1
- package/build/api/static/rebase.d.ts +0 -14
- package/build/api/static/rebase.d.ts.map +0 -1
- package/build/api/static/rebase.js +0 -110
- package/build/api/static/rebase.js.map +0 -1
- package/build/api/static/static.d.ts +0 -3
- package/build/api/static/static.d.ts.map +0 -1
- package/build/api/static/static.js +0 -3
- package/build/api/static/static.js.map +0 -1
- package/build/cli/commands/static/$default.d.ts +0 -3
- package/build/cli/commands/static/$default.d.ts.map +0 -1
- package/build/cli/commands/static/$default.js +0 -38
- package/build/cli/commands/static/$default.js.map +0 -1
- package/build/cli/commands/static/rebase.d.ts +0 -2
- package/build/cli/commands/static/rebase.d.ts.map +0 -1
- package/build/cli/commands/static/rebase.js +0 -26
- package/build/cli/commands/static/rebase.js.map +0 -1
- package/build/cli/commands/static.d.ts +0 -3
- package/build/cli/commands/static.d.ts.map +0 -1
- package/build/cli/commands/static.js +0 -5
- package/build/cli/commands/static.js.map +0 -1
- package/build/exports/components.d.ts +0 -5
- package/build/exports/components.d.ts.map +0 -1
- package/build/exports/components.js +0 -5
- package/build/exports/components.js.map +0 -1
- package/build/lib/demos/builder.d.ts +0 -83
- package/build/lib/demos/builder.d.ts.map +0 -1
- package/build/lib/demos/builder.js +0 -237
- package/build/lib/demos/builder.js.map +0 -1
- package/build/lib/demos/config-schema.d.ts +0 -243
- package/build/lib/demos/config-schema.d.ts.map +0 -1
- package/build/lib/demos/config-schema.js +0 -52
- package/build/lib/demos/config-schema.js.map +0 -1
- package/build/lib/demos/config.d.ts +0 -40
- package/build/lib/demos/config.d.ts.map +0 -1
- package/build/lib/demos/config.js +0 -180
- package/build/lib/demos/config.js.map +0 -1
- package/build/lib/demos/index.d.ts +0 -9
- package/build/lib/demos/index.d.ts.map +0 -1
- package/build/lib/demos/index.js +0 -8
- package/build/lib/demos/index.js.map +0 -1
- package/build/lib/demos/ui/components.d.ts +0 -33
- package/build/lib/demos/ui/components.d.ts.map +0 -1
- package/build/lib/demos/ui/components.js +0 -699
- package/build/lib/demos/ui/components.js.map +0 -1
- package/build/lib/demos/ui/data-collector.d.ts +0 -88
- package/build/lib/demos/ui/data-collector.d.ts.map +0 -1
- package/build/lib/demos/ui/data-collector.js +0 -174
- package/build/lib/demos/ui/data-collector.js.map +0 -1
- package/build/lib/demos/ui/landing-page-cli.d.ts +0 -3
- package/build/lib/demos/ui/landing-page-cli.d.ts.map +0 -1
- package/build/lib/demos/ui/landing-page-cli.js +0 -21
- package/build/lib/demos/ui/landing-page-cli.js.map +0 -1
- package/build/lib/demos/ui/landing-page.d.ts +0 -32
- package/build/lib/demos/ui/landing-page.d.ts.map +0 -1
- package/build/lib/demos/ui/landing-page.js +0 -83
- package/build/lib/demos/ui/landing-page.js.map +0 -1
- package/build/lib/demos/ui/page-renderer.d.ts +0 -26
- package/build/lib/demos/ui/page-renderer.d.ts.map +0 -1
- package/build/lib/demos/ui/page-renderer.js +0 -104
- package/build/lib/demos/ui/page-renderer.js.map +0 -1
- package/build/lib/demos/utils.d.ts +0 -14
- package/build/lib/demos/utils.d.ts.map +0 -1
- package/build/lib/demos/utils.js +0 -37
- package/build/lib/demos/utils.js.map +0 -1
- package/build/lib/deployment/$$.d.ts +0 -3
- package/build/lib/deployment/$$.d.ts.map +0 -1
- package/build/lib/deployment/$$.js +0 -3
- package/build/lib/deployment/$$.js.map +0 -1
- package/build/lib/deployment/$.d.ts +0 -2
- package/build/lib/deployment/$.d.ts.map +0 -1
- package/build/lib/deployment/$.js +0 -2
- package/build/lib/deployment/$.js.map +0 -1
- package/build/lib/deployment/metadata.d.ts +0 -32
- package/build/lib/deployment/metadata.d.ts.map +0 -1
- package/build/lib/deployment/metadata.js +0 -37
- package/build/lib/deployment/metadata.js.map +0 -1
- package/build/lib/deployment/path-manager.d.ts +0 -41
- package/build/lib/deployment/path-manager.d.ts.map +0 -1
- package/build/lib/deployment/path-manager.js +0 -157
- package/build/lib/deployment/path-manager.js.map +0 -1
- package/build/lib/github-actions/git-controller.d.ts +0 -50
- package/build/lib/github-actions/git-controller.d.ts.map +0 -1
- package/build/lib/github-actions/git-controller.js +0 -90
- package/build/lib/github-actions/git-controller.js.map +0 -1
- package/build/lib/github-actions/github-actions.d.ts +0 -7
- package/build/lib/github-actions/github-actions.d.ts.map +0 -1
- package/build/lib/github-actions/github-actions.js +0 -7
- package/build/lib/github-actions/github-actions.js.map +0 -1
- package/build/lib/github-actions/index.d.ts +0 -2
- package/build/lib/github-actions/index.d.ts.map +0 -1
- package/build/lib/github-actions/index.js +0 -2
- package/build/lib/github-actions/index.js.map +0 -1
- package/build/lib/github-actions/lib/get-pr-deployments.d.ts +0 -12
- package/build/lib/github-actions/lib/get-pr-deployments.d.ts.map +0 -1
- package/build/lib/github-actions/lib/get-pr-deployments.js +0 -51
- package/build/lib/github-actions/lib/get-pr-deployments.js.map +0 -1
- package/build/lib/github-actions/pr-controller.d.ts +0 -39
- package/build/lib/github-actions/pr-controller.d.ts.map +0 -1
- package/build/lib/github-actions/pr-controller.js +0 -122
- package/build/lib/github-actions/pr-controller.js.map +0 -1
- package/build/lib/github-actions/run-step-cli.d.ts +0 -9
- package/build/lib/github-actions/run-step-cli.d.ts.map +0 -1
- package/build/lib/github-actions/run-step-cli.js +0 -71
- package/build/lib/github-actions/run-step-cli.js.map +0 -1
- package/build/lib/github-actions/runner.d.ts +0 -17
- package/build/lib/github-actions/runner.d.ts.map +0 -1
- package/build/lib/github-actions/runner.js +0 -195
- package/build/lib/github-actions/runner.js.map +0 -1
- package/build/lib/github-actions/schemas/context.d.ts +0 -933
- package/build/lib/github-actions/schemas/context.d.ts.map +0 -1
- package/build/lib/github-actions/schemas/context.js +0 -407
- package/build/lib/github-actions/schemas/context.js.map +0 -1
- package/build/lib/github-actions/schemas/index.d.ts +0 -5
- package/build/lib/github-actions/schemas/index.d.ts.map +0 -1
- package/build/lib/github-actions/schemas/index.js +0 -5
- package/build/lib/github-actions/schemas/index.js.map +0 -1
- package/build/lib/github-actions/search-module.d.ts +0 -38
- package/build/lib/github-actions/search-module.d.ts.map +0 -1
- package/build/lib/github-actions/search-module.js +0 -40
- package/build/lib/github-actions/search-module.js.map +0 -1
- package/build/lib/github-actions/step.d.ts +0 -163
- package/build/lib/github-actions/step.d.ts.map +0 -1
- package/build/lib/github-actions/step.js +0 -121
- package/build/lib/github-actions/step.js.map +0 -1
- package/build/lib/graphql-document/$$.d.ts +0 -5
- package/build/lib/graphql-document/$$.d.ts.map +0 -1
- package/build/lib/graphql-document/$$.js +0 -5
- package/build/lib/graphql-document/$$.js.map +0 -1
- package/build/lib/graphql-document/$.d.ts +0 -2
- package/build/lib/graphql-document/$.d.ts.map +0 -1
- package/build/lib/graphql-document/$.js +0 -2
- package/build/lib/graphql-document/$.js.map +0 -1
- package/build/lib/graphql-document/analysis.d.ts +0 -44
- package/build/lib/graphql-document/analysis.d.ts.map +0 -1
- package/build/lib/graphql-document/analysis.js +0 -361
- package/build/lib/graphql-document/analysis.js.map +0 -1
- package/build/lib/graphql-document/components/CopyButton.d.ts +0 -19
- package/build/lib/graphql-document/components/CopyButton.d.ts.map +0 -1
- package/build/lib/graphql-document/components/CopyButton.js +0 -43
- package/build/lib/graphql-document/components/CopyButton.js.map +0 -1
- package/build/lib/graphql-document/components/GraphQLDocument.d.ts +0 -38
- package/build/lib/graphql-document/components/GraphQLDocument.d.ts.map +0 -1
- package/build/lib/graphql-document/components/GraphQLDocument.js +0 -142
- package/build/lib/graphql-document/components/GraphQLDocument.js.map +0 -1
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.d.ts +0 -7
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.d.ts.map +0 -1
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.js +0 -45
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.js.map +0 -1
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.d.ts +0 -33
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.d.ts.map +0 -1
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.js +0 -48
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.js.map +0 -1
- package/build/lib/graphql-document/components/IdentifierLink.d.ts +0 -39
- package/build/lib/graphql-document/components/IdentifierLink.d.ts.map +0 -1
- package/build/lib/graphql-document/components/IdentifierLink.js +0 -75
- package/build/lib/graphql-document/components/IdentifierLink.js.map +0 -1
- package/build/lib/graphql-document/components/graphql-document-styles.d.ts +0 -5
- package/build/lib/graphql-document/components/graphql-document-styles.d.ts.map +0 -1
- package/build/lib/graphql-document/components/graphql-document-styles.js +0 -167
- package/build/lib/graphql-document/components/graphql-document-styles.js.map +0 -1
- package/build/lib/graphql-document/components/index.d.ts +0 -6
- package/build/lib/graphql-document/components/index.d.ts.map +0 -1
- package/build/lib/graphql-document/components/index.js +0 -6
- package/build/lib/graphql-document/components/index.js.map +0 -1
- package/build/lib/graphql-document/example.d.ts +0 -25
- package/build/lib/graphql-document/example.d.ts.map +0 -1
- package/build/lib/graphql-document/example.js +0 -140
- package/build/lib/graphql-document/example.js.map +0 -1
- package/build/lib/graphql-document/graphql-document.d.ts +0 -35
- package/build/lib/graphql-document/graphql-document.d.ts.map +0 -1
- package/build/lib/graphql-document/graphql-document.js +0 -36
- package/build/lib/graphql-document/graphql-document.js.map +0 -1
- package/build/lib/graphql-document/hooks/use-tooltip-state.d.ts +0 -43
- package/build/lib/graphql-document/hooks/use-tooltip-state.d.ts.map +0 -1
- package/build/lib/graphql-document/hooks/use-tooltip-state.js +0 -132
- package/build/lib/graphql-document/hooks/use-tooltip-state.js.map +0 -1
- package/build/lib/graphql-document/positioning-simple.d.ts +0 -63
- package/build/lib/graphql-document/positioning-simple.d.ts.map +0 -1
- package/build/lib/graphql-document/positioning-simple.js +0 -185
- package/build/lib/graphql-document/positioning-simple.js.map +0 -1
- package/build/lib/graphql-document/schema-context.d.ts +0 -8
- package/build/lib/graphql-document/schema-context.d.ts.map +0 -1
- package/build/lib/graphql-document/schema-context.js +0 -11
- package/build/lib/graphql-document/schema-context.js.map +0 -1
- package/build/lib/graphql-document/schema-integration-example.d.ts +0 -27
- package/build/lib/graphql-document/schema-integration-example.d.ts.map +0 -1
- package/build/lib/graphql-document/schema-integration-example.js +0 -297
- package/build/lib/graphql-document/schema-integration-example.js.map +0 -1
- package/build/lib/graphql-document/schema-integration.d.ts +0 -135
- package/build/lib/graphql-document/schema-integration.d.ts.map +0 -1
- package/build/lib/graphql-document/schema-integration.js +0 -328
- package/build/lib/graphql-document/schema-integration.js.map +0 -1
- package/build/lib/graphql-document/types.d.ts +0 -117
- package/build/lib/graphql-document/types.d.ts.map +0 -1
- package/build/lib/graphql-document/types.js.map +0 -1
- package/build/lib/kit-temp.test-d.d.ts +0 -2
- package/build/lib/kit-temp.test-d.d.ts.map +0 -1
- package/build/lib/kit-temp.test-d.js +0 -75
- package/build/lib/kit-temp.test-d.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/task/$$.d.ts +0 -3
- package/build/lib/task/$$.d.ts.map +0 -1
- package/build/lib/task/$$.js +0 -3
- package/build/lib/task/$$.js.map +0 -1
- package/build/lib/task/$.d.ts +0 -2
- package/build/lib/task/$.d.ts.map +0 -1
- package/build/lib/task/$.js +0 -2
- package/build/lib/task/$.js.map +0 -1
- package/build/lib/task/report.d.ts +0 -28
- package/build/lib/task/report.d.ts.map +0 -1
- package/build/lib/task/report.js +0 -33
- package/build/lib/task/report.js.map +0 -1
- package/build/lib/task/task.d.ts +0 -44
- package/build/lib/task/task.d.ts.map +0 -1
- package/build/lib/task/task.js +0 -63
- package/build/lib/task/task.js.map +0 -1
- package/build/lib/version-history/index.d.ts +0 -3
- package/build/lib/version-history/index.d.ts.map +0 -1
- package/build/lib/version-history/index.js +0 -2
- package/build/lib/version-history/index.js.map +0 -1
- package/build/lib/version-history/types.d.ts +0 -64
- package/build/lib/version-history/types.d.ts.map +0 -1
- package/build/lib/version-history/types.js +0 -5
- package/build/lib/version-history/types.js.map +0 -1
- package/build/lib/version-history/version-history.d.ts +0 -85
- package/build/lib/version-history/version-history.d.ts.map +0 -1
- package/build/lib/version-history/version-history.js +0 -248
- package/build/lib/version-history/version-history.js.map +0 -1
- package/build/sandbox.d.ts +0 -2
- package/build/sandbox.d.ts.map +0 -1
- package/build/sandbox.js +0 -18
- package/build/sandbox.js.map +0 -1
- package/build/template/components/ArgumentAnnotation.js +0 -10
- package/build/template/components/ArgumentAnnotation.js.map +0 -1
- package/build/template/components/ArgumentList.js +0 -9
- package/build/template/components/ArgumentList.js.map +0 -1
- package/build/template/components/ArgumentListAnnotation.js +0 -15
- package/build/template/components/ArgumentListAnnotation.js.map +0 -1
- package/build/template/components/Changelog.js +0 -44
- package/build/template/components/Changelog.js.map +0 -1
- package/build/template/components/CodeBlockEnhancer.d.ts +0 -2
- package/build/template/components/CodeBlockEnhancer.d.ts.map +0 -1
- package/build/template/components/CodeBlockEnhancer.js +0 -175
- package/build/template/components/CodeBlockEnhancer.js.map +0 -1
- package/build/template/components/DeprecationReason.js +0 -9
- package/build/template/components/DeprecationReason.js.map +0 -1
- package/build/template/components/Description.js +0 -9
- package/build/template/components/Description.js.map +0 -1
- package/build/template/components/Field.js +0 -14
- package/build/template/components/Field.js.map +0 -1
- package/build/template/components/FieldList.js.map +0 -1
- package/build/template/components/FieldListSection.js.map +0 -1
- package/build/template/components/HamburgerMenu.d.ts +0 -9
- package/build/template/components/HamburgerMenu.d.ts.map +0 -1
- package/build/template/components/HamburgerMenu.js +0 -30
- package/build/template/components/HamburgerMenu.js.map +0 -1
- package/build/template/components/Link.js.map +0 -1
- package/build/template/components/Logo.js +0 -20
- package/build/template/components/Logo.js.map +0 -1
- package/build/template/components/MDXComponents.d.ts +0 -11
- package/build/template/components/MDXComponents.d.ts.map +0 -1
- package/build/template/components/MDXComponents.js +0 -70
- package/build/template/components/MDXComponents.js.map +0 -1
- package/build/template/components/Markdown.js.map +0 -1
- package/build/template/components/MissingSchema.js +0 -5
- package/build/template/components/MissingSchema.js.map +0 -1
- package/build/template/components/NamedType.js +0 -12
- package/build/template/components/NamedType.js.map +0 -1
- package/build/template/components/NotFound.d.ts +0 -2
- package/build/template/components/NotFound.d.ts.map +0 -1
- package/build/template/components/NotFound.js +0 -7
- package/build/template/components/NotFound.js.map +0 -1
- package/build/template/components/RadixLink.js.map +0 -1
- package/build/template/components/TestComponent.d.ts +0 -5
- package/build/template/components/TestComponent.d.ts.map +0 -1
- package/build/template/components/TestComponent.js +0 -7
- package/build/template/components/TestComponent.js.map +0 -1
- package/build/template/components/Texts/MinorHeading.js.map +0 -1
- package/build/template/components/ThemeToggle.d.ts +0 -3
- package/build/template/components/ThemeToggle.d.ts.map +0 -1
- package/build/template/components/ThemeToggle.js +0 -9
- package/build/template/components/ThemeToggle.js.map +0 -1
- package/build/template/components/TypeAnnotation.js.map +0 -1
- package/build/template/components/TypeFieldsLinkList.js +0 -9
- package/build/template/components/TypeFieldsLinkList.js.map +0 -1
- package/build/template/components/TypeIndex.js +0 -17
- package/build/template/components/TypeIndex.js.map +0 -1
- package/build/template/components/content/$$.d.ts +0 -3
- package/build/template/components/content/$$.d.ts.map +0 -1
- package/build/template/components/content/$$.js +0 -3
- package/build/template/components/content/$$.js.map +0 -1
- package/build/template/components/content/GraphQLDocumentWithSchema.d.ts +0 -8
- package/build/template/components/content/GraphQLDocumentWithSchema.d.ts.map +0 -1
- package/build/template/components/content/GraphQLDocumentWithSchema.js +0 -13
- package/build/template/components/content/GraphQLDocumentWithSchema.js.map +0 -1
- package/build/template/components/content/GraphQLDocumentWrapper.d.ts +0 -7
- package/build/template/components/content/GraphQLDocumentWrapper.d.ts.map +0 -1
- package/build/template/components/content/GraphQLDocumentWrapper.js +0 -63
- package/build/template/components/content/GraphQLDocumentWrapper.js.map +0 -1
- package/build/template/components/graphql/graphql.js +0 -3
- package/build/template/components/graphql/graphql.js.map +0 -1
- package/build/template/components/graphql/type-kind-icon.js.map +0 -1
- package/build/template/components/graphql/type-link.js +0 -11
- package/build/template/components/graphql/type-link.js.map +0 -1
- package/build/template/components/sidebar/Sidebar.js +0 -11
- package/build/template/components/sidebar/Sidebar.js.map +0 -1
- package/build/template/components/sidebar/SidebarItem.js.map +0 -1
- package/build/template/components/sidebar/ToggleButton.js +0 -5
- package/build/template/components/sidebar/ToggleButton.js.map +0 -1
- package/build/template/contexts/ThemeContext.d.ts +0 -12
- package/build/template/contexts/ThemeContext.d.ts.map +0 -1
- package/build/template/contexts/ThemeContext.js +0 -40
- package/build/template/contexts/ThemeContext.js.map +0 -1
- package/build/template/entry.client.js.map +0 -1
- package/build/template/hooks/useClientOnly.d.ts +0 -9
- package/build/template/hooks/useClientOnly.d.ts.map +0 -1
- package/build/template/hooks/useClientOnly.js +0 -16
- package/build/template/hooks/useClientOnly.js.map +0 -1
- package/build/template/routes/changelog.js.map +0 -1
- package/build/template/routes/index.js.map +0 -1
- package/build/template/routes/reference.$type.$field.js.map +0 -1
- package/build/template/routes/reference.$type.js.map +0 -1
- package/build/template/routes/reference.js.map +0 -1
- package/build/template/routes/root.js +0 -138
- package/build/template/routes/root.js.map +0 -1
- package/build/template/routes.js +0 -5
- package/build/template/routes.js.map +0 -1
- package/build/template/server/create-page-html-response.d.ts +0 -7
- package/build/template/server/create-page-html-response.d.ts.map +0 -1
- package/build/template/server/create-page-html-response.js.map +0 -1
- package/build/template/server/middleware/page.d.ts +0 -4
- package/build/template/server/middleware/page.d.ts.map +0 -1
- package/build/template/server/middleware/page.js +0 -15
- package/build/template/server/middleware/page.js.map +0 -1
- package/build/template/server/middleware/unsupported-assets.d.ts +0 -10
- package/build/template/server/middleware/unsupported-assets.d.ts.map +0 -1
- package/build/template/server/middleware/unsupported-assets.js +0 -21
- package/build/template/server/middleware/unsupported-assets.js.map +0 -1
- package/build/template/styles/code-block.css +0 -218
- package/src/api/content/$$.ts +0 -6
- package/src/api/content/$.test.ts +0 -72
- package/src/api/content/$.ts +0 -1
- package/src/api/content/metadata.ts +0 -11
- package/src/api/content/navbar.test.ts +0 -55
- package/src/api/content/navbar.ts +0 -61
- package/src/api/content/page.ts +0 -12
- package/src/api/content/scan.ts +0 -117
- package/src/api/content/sidebar.test.ts +0 -297
- package/src/api/content/sidebar.ts +0 -283
- package/src/api/content/utils.ts +0 -7
- package/src/api/static/index.ts +0 -1
- package/src/api/static/manifest.test.ts +0 -106
- package/src/api/static/manifest.ts +0 -16
- package/src/api/static/rebase.test.ts +0 -229
- package/src/api/static/rebase.ts +0 -140
- package/src/api/static/static.ts +0 -2
- package/src/cli/commands/static/$default.ts +0 -43
- package/src/cli/commands/static/rebase.ts +0 -37
- package/src/cli/commands/static.ts +0 -6
- package/src/exports/components.ts +0 -4
- package/src/lib/demos/builder.ts +0 -298
- package/src/lib/demos/config-schema.ts +0 -56
- package/src/lib/demos/config.test.ts +0 -193
- package/src/lib/demos/config.ts +0 -205
- package/src/lib/demos/index.ts +0 -9
- package/src/lib/demos/ui/components.ts +0 -739
- package/src/lib/demos/ui/data-collector.ts +0 -246
- package/src/lib/demos/ui/landing-page-cli.ts +0 -23
- package/src/lib/demos/ui/landing-page.ts +0 -126
- package/src/lib/demos/ui/page-renderer.ts +0 -124
- package/src/lib/demos/utils.ts +0 -43
- package/src/lib/deployment/$$.ts +0 -2
- package/src/lib/deployment/$.test.ts +0 -53
- package/src/lib/deployment/$.ts +0 -1
- package/src/lib/deployment/metadata.ts +0 -40
- package/src/lib/deployment/path-manager.ts +0 -186
- package/src/lib/github-actions/git-controller.ts +0 -151
- package/src/lib/github-actions/github-actions.ts +0 -6
- package/src/lib/github-actions/index.ts +0 -1
- package/src/lib/github-actions/lib/get-pr-deployments.ts +0 -76
- package/src/lib/github-actions/pr-controller.test.ts +0 -172
- package/src/lib/github-actions/pr-controller.ts +0 -183
- package/src/lib/github-actions/run-step-cli.ts +0 -84
- package/src/lib/github-actions/runner.test.ts +0 -192
- package/src/lib/github-actions/runner.ts +0 -226
- package/src/lib/github-actions/schemas/context.ts +0 -424
- package/src/lib/github-actions/schemas/index.ts +0 -5
- package/src/lib/github-actions/search-module.test.ts +0 -110
- package/src/lib/github-actions/search-module.ts +0 -76
- package/src/lib/github-actions/step.test.ts +0 -149
- package/src/lib/github-actions/step.ts +0 -232
- package/src/lib/graphql-document/$$.ts +0 -4
- package/src/lib/graphql-document/$.test.ts +0 -132
- package/src/lib/graphql-document/$.ts +0 -1
- package/src/lib/graphql-document/README.md +0 -102
- package/src/lib/graphql-document/analysis.ts +0 -415
- package/src/lib/graphql-document/components/CopyButton.tsx +0 -76
- package/src/lib/graphql-document/components/GraphQLDocument.tsx +0 -262
- package/src/lib/graphql-document/components/GraphQLDocument.unit.test.ts +0 -188
- package/src/lib/graphql-document/components/GraphQLDocumentWithSchema.tsx +0 -70
- package/src/lib/graphql-document/components/GraphQLIdentifierPopover.tsx +0 -197
- package/src/lib/graphql-document/components/IdentifierLink.tsx +0 -160
- package/src/lib/graphql-document/components/graphql-document-styles.ts +0 -167
- package/src/lib/graphql-document/components/index.ts +0 -5
- package/src/lib/graphql-document/demo.md +0 -155
- package/src/lib/graphql-document/example.ts +0 -163
- package/src/lib/graphql-document/graphql-document.ts +0 -37
- package/src/lib/graphql-document/hooks/use-tooltip-state.test.ts +0 -76
- package/src/lib/graphql-document/hooks/use-tooltip-state.ts +0 -191
- package/src/lib/graphql-document/positioning-simple.test.ts +0 -248
- package/src/lib/graphql-document/positioning-simple.ts +0 -260
- package/src/lib/graphql-document/schema-context.tsx +0 -20
- package/src/lib/graphql-document/schema-integration-example.ts +0 -341
- package/src/lib/graphql-document/schema-integration.test.ts +0 -365
- package/src/lib/graphql-document/schema-integration.ts +0 -497
- package/src/lib/graphql-document/types.ts +0 -129
- package/src/lib/kit-temp.test-d.ts +0 -115
- package/src/lib/kit-temp.test.ts +0 -139
- package/src/lib/mask/$$.ts +0 -2
- package/src/lib/mask/$.test.ts +0 -248
- package/src/lib/mask/$.ts +0 -1
- package/src/lib/mask/apply.ts +0 -134
- package/src/lib/mask/mask.test-d.ts +0 -144
- package/src/lib/mask/mask.ts +0 -244
- package/src/lib/task/$$.ts +0 -2
- package/src/lib/task/$.test.ts +0 -209
- package/src/lib/task/$.ts +0 -1
- package/src/lib/task/report.ts +0 -72
- package/src/lib/task/task.ts +0 -112
- package/src/lib/version-history/index.test.ts +0 -196
- package/src/lib/version-history/index.ts +0 -4
- package/src/lib/version-history/types.ts +0 -68
- package/src/lib/version-history/version-history.ts +0 -293
- package/src/sandbox.ts +0 -20
- package/src/template/components/CodeBlockEnhancer.tsx +0 -192
- package/src/template/components/HamburgerMenu.tsx +0 -96
- package/src/template/components/MDXComponents.tsx +0 -101
- package/src/template/components/NotFound.tsx +0 -28
- package/src/template/components/TestComponent.tsx +0 -6
- package/src/template/components/ThemeToggle.tsx +0 -21
- package/src/template/components/content/$$.ts +0 -2
- package/src/template/components/content/GraphQLDocumentWithSchema.tsx +0 -13
- package/src/template/components/content/GraphQLDocumentWrapper.tsx +0 -89
- package/src/template/contexts/ThemeContext.tsx +0 -60
- package/src/template/hooks/useClientOnly.ts +0 -21
- package/src/template/server/middleware/page.ts +0 -19
- package/src/template/server/middleware/unsupported-assets.ts +0 -25
- /package/build/lib/{graphql-document → file-router/sidebar}/types.js +0 -0
@@ -0,0 +1,110 @@
|
|
1
|
+
import { Tree } from '#lib/tree/index'
|
2
|
+
import { Str } from '@wollybeard/kit'
|
3
|
+
import * as FileRouter from '../file-router.ts'
|
4
|
+
import type { RouteTreeNode } from '../scan-tree.ts'
|
5
|
+
import type { ItemLink, ItemSection, Sidebar } from './types.ts'
|
6
|
+
|
7
|
+
export * from './types.ts'
|
8
|
+
|
9
|
+
/**
|
10
|
+
* Build sidebar from tree structure
|
11
|
+
*/
|
12
|
+
export const buildFromTree = (routeTree: RouteTreeNode, basePath: FileRouter.Path): Sidebar => {
|
13
|
+
const links: ItemLink[] = []
|
14
|
+
const sections: ItemSection[] = []
|
15
|
+
|
16
|
+
// Process only the children of the root node
|
17
|
+
for (const child of routeTree.children) {
|
18
|
+
processNode(child, basePath, [], links, sections)
|
19
|
+
}
|
20
|
+
|
21
|
+
const items = [...links, ...sections]
|
22
|
+
|
23
|
+
return {
|
24
|
+
items,
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
const processNode = (
|
29
|
+
node: RouteTreeNode,
|
30
|
+
basePath: FileRouter.Path,
|
31
|
+
parentPath: string[],
|
32
|
+
links: ItemLink[],
|
33
|
+
sections: ItemSection[],
|
34
|
+
): void => {
|
35
|
+
const currentPath = [...parentPath, node.value.name]
|
36
|
+
|
37
|
+
if (node.value.type === 'directory') {
|
38
|
+
// This is a directory - create a section
|
39
|
+
const sectionPath = [...basePath, ...currentPath]
|
40
|
+
const sectionPathExp = FileRouter.pathToExpression(sectionPath)
|
41
|
+
const sectionTitle = Str.titlizeSlug(node.value.name)
|
42
|
+
|
43
|
+
const section: ItemSection = {
|
44
|
+
type: `ItemSection`,
|
45
|
+
title: sectionTitle,
|
46
|
+
pathExp: sectionPathExp.startsWith('/') ? sectionPathExp.slice(1) : sectionPathExp,
|
47
|
+
isLinkToo: false,
|
48
|
+
links: [],
|
49
|
+
}
|
50
|
+
|
51
|
+
// Check if this directory has an index file
|
52
|
+
const indexChild = node.children.find(child => child.value.type === 'file' && child.value.name === 'index')
|
53
|
+
if (indexChild) {
|
54
|
+
section.isLinkToo = true
|
55
|
+
}
|
56
|
+
|
57
|
+
// Process all non-index children as links for this section
|
58
|
+
for (const child of node.children) {
|
59
|
+
if (child.value.type === 'file' && child.value.name !== 'index' && child.value.route) {
|
60
|
+
// Pass the parent path of the route, not the section path
|
61
|
+
const routeParentPath = child.value.route.logical.path.slice(0, -1)
|
62
|
+
section.links.push(routeToItemLink(child.value.route, routeParentPath))
|
63
|
+
} else if (child.value.type === 'directory') {
|
64
|
+
// Recursively process subdirectories
|
65
|
+
// Note: This creates nested sections which the original implementation doesn't support
|
66
|
+
// For now, we'll just add the files from subdirectories to the parent section
|
67
|
+
collectFilesFromDirectory(child, child.value.route?.logical.path || [], section.links)
|
68
|
+
}
|
69
|
+
}
|
70
|
+
|
71
|
+
sections.push(section)
|
72
|
+
} else if (node.value.type === 'file' && node.value.route) {
|
73
|
+
// This is a top-level file - add as nav
|
74
|
+
if (node.value.name !== 'index') {
|
75
|
+
links.push(routeToItemLink(node.value.route, basePath))
|
76
|
+
}
|
77
|
+
}
|
78
|
+
}
|
79
|
+
|
80
|
+
const collectFilesFromDirectory = (
|
81
|
+
node: RouteTreeNode,
|
82
|
+
basePath: FileRouter.Path,
|
83
|
+
links: ItemLink[],
|
84
|
+
): void => {
|
85
|
+
Tree.visit(node, (n) => {
|
86
|
+
if (n.value.type === 'file' && n.value.route && n.value.name !== 'index') {
|
87
|
+
// Use the route's parent path for relative title generation
|
88
|
+
const routeParentPath = n.value.route.logical.path.slice(0, -1)
|
89
|
+
links.push(routeToItemLink(n.value.route, routeParentPath))
|
90
|
+
}
|
91
|
+
})
|
92
|
+
}
|
93
|
+
|
94
|
+
const routeToItemLink = (route: FileRouter.Route, basePath: FileRouter.Path): ItemLink => {
|
95
|
+
const pagePathExp = FileRouter.routeToPathExpression(route)
|
96
|
+
const pageRelative = FileRouter.makeRelativeUnsafe(route, basePath)
|
97
|
+
const pageRelativePathExp = FileRouter.routeToPathExpression(pageRelative)
|
98
|
+
|
99
|
+
// Remove leading slash for title generation
|
100
|
+
const titlePath = pageRelativePathExp.startsWith('/') ? pageRelativePathExp.slice(1) : pageRelativePathExp
|
101
|
+
|
102
|
+
// Use only the last segment for the title
|
103
|
+
const titleSegment = pageRelative.logical.path[pageRelative.logical.path.length - 1] || titlePath
|
104
|
+
|
105
|
+
return {
|
106
|
+
type: `ItemLink`,
|
107
|
+
pathExp: pagePathExp.startsWith('/') ? pagePathExp.slice(1) : pagePathExp,
|
108
|
+
title: Str.titlizeSlug(titleSegment),
|
109
|
+
}
|
110
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
export interface Sidebar {
|
2
|
+
items: Item[]
|
3
|
+
}
|
4
|
+
|
5
|
+
export type Item = ItemLink | ItemSection
|
6
|
+
|
7
|
+
export interface ItemLink {
|
8
|
+
type: `ItemLink`
|
9
|
+
title: string
|
10
|
+
pathExp: string
|
11
|
+
}
|
12
|
+
|
13
|
+
export interface ItemSection {
|
14
|
+
type: `ItemSection`
|
15
|
+
title: string
|
16
|
+
pathExp: string
|
17
|
+
isLinkToo: boolean
|
18
|
+
links: ItemLink[]
|
19
|
+
}
|
package/src/lib/helpers.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { Manifest } from '@wollybeard/kit'
|
2
2
|
|
3
3
|
/**
|
4
4
|
* Check if a project has a package installed by examining its package.json
|
@@ -9,9 +9,8 @@ export async function checkIsProjectHasPackageInstalled(
|
|
9
9
|
): Promise<boolean> {
|
10
10
|
const packageJson = await Manifest.resource.read(projectRoot)
|
11
11
|
|
12
|
-
if (
|
13
|
-
|
14
|
-
throw packageJson
|
12
|
+
if (!packageJson) {
|
13
|
+
return false
|
15
14
|
}
|
16
15
|
|
17
16
|
// Check if React is in dependencies or devDependencies
|
package/src/lib/kit-temp.ts
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
//
|
13
13
|
//
|
14
14
|
|
15
|
-
import {
|
15
|
+
import { Fs, Http, Path, Undefined } from '@wollybeard/kit'
|
16
16
|
import type { ResolveHookContext } from 'node:module'
|
17
17
|
|
18
18
|
export const arrayEquals = (a: any[], b: any[]) => {
|
@@ -60,103 +60,23 @@ export interface ImportEvent {
|
|
60
60
|
context: ResolveHookContext
|
61
61
|
}
|
62
62
|
|
63
|
-
// dprint-ignore
|
64
|
-
export type ObjPolicyFilter<
|
65
|
-
$Object extends object,
|
66
|
-
$Key extends Keyof<$Object>,
|
67
|
-
Mode extends 'allow' | 'deny',
|
68
|
-
> = Mode extends 'allow'
|
69
|
-
? Pick<$Object, Extract<$Key, keyof $Object>>
|
70
|
-
: Omit<$Object, Extract<$Key, keyof $Object>>
|
71
|
-
|
72
|
-
/**
|
73
|
-
* Like keyof but returns PropertyKey for object
|
74
|
-
*/
|
75
|
-
type Keyof<$Object extends object> = object extends $Object ? PropertyKey : (keyof $Object)
|
76
|
-
|
77
|
-
/**
|
78
|
-
* Filter object properties based on a policy mode and set of keys
|
79
|
-
*
|
80
|
-
* @param mode - 'allow' to keep only specified keys, 'deny' to remove specified keys
|
81
|
-
* @param obj - The object to filter
|
82
|
-
* @param keys - The keys to process
|
83
|
-
* @returns A filtered object with proper type inference
|
84
|
-
*
|
85
|
-
* @example
|
86
|
-
* ```ts
|
87
|
-
* const obj = { a: 1, b: 2, c: 3 }
|
88
|
-
*
|
89
|
-
* // Allow mode: keep only 'a' and 'c'
|
90
|
-
* objPolicyFilter('allow', obj, ['a', 'c']) // { a: 1, c: 3 }
|
91
|
-
*
|
92
|
-
* // Deny mode: remove 'a' and 'c'
|
93
|
-
* objPolicyFilter('deny', obj, ['a', 'c']) // { b: 2 }
|
94
|
-
* ```
|
95
|
-
*/
|
96
|
-
export const objPolicyFilter = <
|
97
|
-
obj extends object,
|
98
|
-
keyUnion extends Keyof<obj>,
|
99
|
-
mode extends 'allow' | 'deny',
|
100
|
-
>(
|
101
|
-
mode: mode,
|
102
|
-
obj: obj,
|
103
|
-
keys: readonly keyUnion[],
|
104
|
-
): ObjPolicyFilter<obj, keyUnion, mode> => {
|
105
|
-
const result: any = mode === 'deny' ? { ...obj } : {}
|
106
|
-
|
107
|
-
if (mode === 'allow') {
|
108
|
-
// For allow mode, only add specified keys
|
109
|
-
for (const key of keys) {
|
110
|
-
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
111
|
-
// @ts-expect-error
|
112
|
-
result[key] = obj[key]
|
113
|
-
}
|
114
|
-
}
|
115
|
-
} else {
|
116
|
-
// For deny mode, remove specified keys
|
117
|
-
for (const key of keys) {
|
118
|
-
delete result[key]
|
119
|
-
}
|
120
|
-
}
|
121
|
-
|
122
|
-
return result
|
123
|
-
}
|
124
|
-
|
125
|
-
/**
|
126
|
-
* Filter an object using a predicate function
|
127
|
-
*
|
128
|
-
* @param obj - The object to filter
|
129
|
-
* @param predicate - Function that returns true to keep a key/value pair
|
130
|
-
* @returns A new object with only the key/value pairs where predicate returned true
|
131
|
-
*
|
132
|
-
* @example
|
133
|
-
* ```ts
|
134
|
-
* const obj = { a: 1, b: 2, c: 3 }
|
135
|
-
* objFilter(obj, (k, v) => v > 1) // { b: 2, c: 3 }
|
136
|
-
* objFilter(obj, k => k !== 'b') // { a: 1, c: 3 }
|
137
|
-
* ```
|
138
|
-
*/
|
139
|
-
export const objFilter = <T extends object>(
|
140
|
-
obj: T,
|
141
|
-
predicate: (key: keyof T, value: T[keyof T], obj: T) => boolean,
|
142
|
-
): Partial<T> => {
|
143
|
-
const result = {} as Partial<T>
|
144
|
-
// Use Object.keys to get all enumerable own properties
|
145
|
-
// This matches the behavior of for...in but only for own properties
|
146
|
-
for (const key of Object.keys(obj) as (keyof T)[]) {
|
147
|
-
if (predicate(key, obj[key], obj)) {
|
148
|
-
result[key] = obj[key]
|
149
|
-
}
|
150
|
-
}
|
151
|
-
return result
|
152
|
-
}
|
153
|
-
|
154
63
|
export const ObjPick = <T extends object, K extends keyof T>(obj: T, keys: readonly K[]): Pick<T, K> => {
|
155
|
-
return
|
64
|
+
return keys.reduce((acc, key) => {
|
65
|
+
if (key in obj) {
|
66
|
+
acc[key] = obj[key]
|
67
|
+
}
|
68
|
+
return acc
|
69
|
+
}, {} as Pick<T, K>)
|
156
70
|
}
|
157
71
|
|
158
72
|
export const ObjOmit = <T extends object, K extends keyof T>(obj: T, keys: readonly K[]): Omit<T, K> => {
|
159
|
-
return
|
73
|
+
return keys.reduce((acc, key) => {
|
74
|
+
if (key in acc) {
|
75
|
+
// @ts-expect-error omitted already at type level
|
76
|
+
delete acc[key]
|
77
|
+
}
|
78
|
+
return acc
|
79
|
+
}, { ...obj } as Omit<T, K>)
|
160
80
|
}
|
161
81
|
|
162
82
|
export const ObjPartition = <T extends object, K extends keyof T>(
|
@@ -186,337 +106,3 @@ export const ResponseInternalServerError = () =>
|
|
186
106
|
status: Http.Status.InternalServerError.code,
|
187
107
|
statusText: Http.Status.InternalServerError.description,
|
188
108
|
})
|
189
|
-
|
190
|
-
/**
|
191
|
-
* Execute an operation on multiple items, continuing even if some fail
|
192
|
-
*/
|
193
|
-
export async function tryCatchMany<item, result>(
|
194
|
-
items: item[],
|
195
|
-
operation: (item: item) => Promise<result>,
|
196
|
-
): Promise<[result[], (Error & { context: { item: item } })[]]> {
|
197
|
-
const partitionedResults = await Promise.all(items.map(async (item) => {
|
198
|
-
const result = await Err.tryCatch(() => operation(item))
|
199
|
-
if (Err.is(result)) {
|
200
|
-
const error = result as Error & { context: { item: item } }
|
201
|
-
error.context = { item }
|
202
|
-
return error
|
203
|
-
}
|
204
|
-
return result
|
205
|
-
})).then(Arr.partitionErrors)
|
206
|
-
return partitionedResults as any
|
207
|
-
}
|
208
|
-
|
209
|
-
/**
|
210
|
-
* Type-level helper to check if two types are exactly the same (invariant).
|
211
|
-
*/
|
212
|
-
export type IsExact<T, U> = T extends U ? U extends T ? true : false : false
|
213
|
-
|
214
|
-
// dprint-ignore
|
215
|
-
export type ExtendsExact<$Input, $Constraint> =
|
216
|
-
$Input extends $Constraint
|
217
|
-
? $Constraint extends $Input
|
218
|
-
? $Input
|
219
|
-
: never
|
220
|
-
: never
|
221
|
-
|
222
|
-
/**
|
223
|
-
* Split an array into chunks of specified size
|
224
|
-
*
|
225
|
-
* @param array - The array to chunk
|
226
|
-
* @param size - The size of each chunk
|
227
|
-
* @returns Array of chunks
|
228
|
-
*
|
229
|
-
* @example
|
230
|
-
* ```ts
|
231
|
-
* chunk([1, 2, 3, 4, 5], 2) // [[1, 2], [3, 4], [5]]
|
232
|
-
* chunk(['a', 'b', 'c'], 3) // [['a', 'b', 'c']]
|
233
|
-
* ```
|
234
|
-
*/
|
235
|
-
export const chunk = <T>(array: readonly T[], size: number): T[][] => {
|
236
|
-
if (size <= 0) throw new Error('Chunk size must be greater than 0')
|
237
|
-
if (array.length === 0) return []
|
238
|
-
|
239
|
-
const chunks: T[][] = []
|
240
|
-
for (let i = 0; i < array.length; i += size) {
|
241
|
-
chunks.push(array.slice(i, i + size))
|
242
|
-
}
|
243
|
-
return chunks
|
244
|
-
}
|
245
|
-
|
246
|
-
export interface AsyncParallelOptions {
|
247
|
-
/**
|
248
|
-
* Maximum number of items to process concurrently
|
249
|
-
* @default 10
|
250
|
-
*/
|
251
|
-
concurrency?: number
|
252
|
-
|
253
|
-
/**
|
254
|
-
* If true, stops processing on first error
|
255
|
-
* If false, continues processing all items even if some fail
|
256
|
-
* @default false
|
257
|
-
*/
|
258
|
-
failFast?: boolean
|
259
|
-
|
260
|
-
/**
|
261
|
-
* Size of batches to process items in
|
262
|
-
* If not specified, all items are processed with the specified concurrency
|
263
|
-
*/
|
264
|
-
batchSize?: number
|
265
|
-
}
|
266
|
-
|
267
|
-
export interface AsyncParallelResult<T, R> {
|
268
|
-
/** Successfully processed results */
|
269
|
-
results: R[]
|
270
|
-
/** Errors that occurred during processing */
|
271
|
-
errors: (Error & { item: T })[]
|
272
|
-
/** Whether all items were processed successfully */
|
273
|
-
success: boolean
|
274
|
-
}
|
275
|
-
|
276
|
-
/**
|
277
|
-
* Process items in parallel with configurable options
|
278
|
-
*
|
279
|
-
* @param items - Items to process
|
280
|
-
* @param operation - Async function to apply to each item (with optional index)
|
281
|
-
* @param options - Configuration options
|
282
|
-
* @returns Results and errors from processing
|
283
|
-
*
|
284
|
-
* @example
|
285
|
-
* ```ts
|
286
|
-
* const items = [1, 2, 3, 4, 5]
|
287
|
-
* const result = await asyncParallel(items, async (n, index) => n * 2, {
|
288
|
-
* concurrency: 2,
|
289
|
-
* batchSize: 3,
|
290
|
-
* failFast: false
|
291
|
-
* })
|
292
|
-
* // result.results: [2, 4, 6, 8, 10]
|
293
|
-
* // result.errors: []
|
294
|
-
* // result.success: true
|
295
|
-
* ```
|
296
|
-
*/
|
297
|
-
export const asyncParallel = async <T, R>(
|
298
|
-
items: readonly T[],
|
299
|
-
operation: (item: T, index: number) => Promise<R>,
|
300
|
-
options: AsyncParallelOptions = {},
|
301
|
-
): Promise<AsyncParallelResult<T, R>> => {
|
302
|
-
const { concurrency = 10, failFast = false, batchSize } = options
|
303
|
-
|
304
|
-
if (items.length === 0) {
|
305
|
-
return { results: [], errors: [], success: true }
|
306
|
-
}
|
307
|
-
|
308
|
-
const allResults: R[] = []
|
309
|
-
const allErrors: (Error & { item: T })[] = []
|
310
|
-
|
311
|
-
// If batchSize is specified, process in batches
|
312
|
-
if (batchSize !== undefined) {
|
313
|
-
const batches = chunk(items, batchSize)
|
314
|
-
let globalIndex = 0
|
315
|
-
|
316
|
-
for (const batch of batches) {
|
317
|
-
const batchResult = await processBatch(batch, operation, concurrency, failFast, globalIndex)
|
318
|
-
allResults.push(...batchResult.results)
|
319
|
-
allErrors.push(...batchResult.errors)
|
320
|
-
globalIndex += batch.length
|
321
|
-
|
322
|
-
if (failFast && batchResult.errors.length > 0) {
|
323
|
-
break
|
324
|
-
}
|
325
|
-
}
|
326
|
-
} else {
|
327
|
-
// Process all items with specified concurrency
|
328
|
-
const result = await processBatch(items, operation, concurrency, failFast, 0)
|
329
|
-
allResults.push(...result.results)
|
330
|
-
allErrors.push(...result.errors)
|
331
|
-
}
|
332
|
-
|
333
|
-
return {
|
334
|
-
results: allResults,
|
335
|
-
errors: allErrors,
|
336
|
-
success: allErrors.length === 0,
|
337
|
-
}
|
338
|
-
}
|
339
|
-
|
340
|
-
/**
|
341
|
-
* Process a batch of items with limited concurrency
|
342
|
-
*/
|
343
|
-
const processBatch = async <T, R>(
|
344
|
-
items: readonly T[],
|
345
|
-
operation: (item: T, index: number) => Promise<R>,
|
346
|
-
concurrency: number,
|
347
|
-
failFast: boolean,
|
348
|
-
startIndex: number = 0,
|
349
|
-
): Promise<AsyncParallelResult<T, R>> => {
|
350
|
-
const results: R[] = []
|
351
|
-
const errors: (Error & { item: T })[] = []
|
352
|
-
|
353
|
-
// Process items in chunks based on concurrency limit
|
354
|
-
const chunks = chunk(items, concurrency)
|
355
|
-
let currentIndex = startIndex
|
356
|
-
|
357
|
-
for (const chunkItems of chunks) {
|
358
|
-
const promises = chunkItems.map(async (item, chunkIndex) => {
|
359
|
-
const globalIndex = currentIndex + chunkIndex
|
360
|
-
try {
|
361
|
-
const result = await operation(item, globalIndex)
|
362
|
-
return { success: true, result, item }
|
363
|
-
} catch (error) {
|
364
|
-
const enhancedError = error instanceof Error ? error : new Error(String(error))
|
365
|
-
Object.assign(enhancedError, { item })
|
366
|
-
return { success: false, error: enhancedError as Error & { item: T }, item }
|
367
|
-
}
|
368
|
-
})
|
369
|
-
|
370
|
-
currentIndex += chunkItems.length
|
371
|
-
|
372
|
-
const chunkResults = await Promise.allSettled(promises)
|
373
|
-
|
374
|
-
for (const promiseResult of chunkResults) {
|
375
|
-
if (promiseResult.status === 'fulfilled') {
|
376
|
-
const { success, result, error, item } = promiseResult.value
|
377
|
-
if (success) {
|
378
|
-
results.push(result!)
|
379
|
-
} else {
|
380
|
-
errors.push(error!)
|
381
|
-
if (failFast) {
|
382
|
-
return { results, errors, success: false }
|
383
|
-
}
|
384
|
-
}
|
385
|
-
} else {
|
386
|
-
// This shouldn't happen since we're catching errors above
|
387
|
-
// But handle it just in case
|
388
|
-
const error = new Error('Unexpected promise rejection') as Error & { item: any }
|
389
|
-
errors.push(error)
|
390
|
-
if (failFast) {
|
391
|
-
return { results, errors, success: false }
|
392
|
-
}
|
393
|
-
}
|
394
|
-
}
|
395
|
-
}
|
396
|
-
|
397
|
-
return { results, errors, success: errors.length === 0 }
|
398
|
-
}
|
399
|
-
|
400
|
-
// /**
|
401
|
-
// * Reduce an array asynchronously, processing each item in sequence
|
402
|
-
// *
|
403
|
-
// * @param items - Array of items to process
|
404
|
-
// * @param reducer - Async function that takes accumulator and current item
|
405
|
-
// * @param initial - Initial value for the accumulator
|
406
|
-
// * @returns Final accumulated value
|
407
|
-
// *
|
408
|
-
// * @example
|
409
|
-
// * ```ts
|
410
|
-
// * const numbers = [1, 2, 3, 4]
|
411
|
-
// * const sum = await asyncReduce(numbers, async (acc, n) => acc + n, 0)
|
412
|
-
// * // sum: 10
|
413
|
-
// *
|
414
|
-
// * const transforms = [addHeader, addFooter, minify]
|
415
|
-
// * const html = await asyncReduce(transforms, async (html, transform) => transform(html), initialHtml)
|
416
|
-
// * ```
|
417
|
-
// */
|
418
|
-
// export const asyncReduce = async <T, R>(
|
419
|
-
// items: readonly T[],
|
420
|
-
// reducer: (accumulator: R, current: T, index: number) => Promise<R> | R,
|
421
|
-
// initial: R,
|
422
|
-
// ): Promise<R> => {
|
423
|
-
// let result = initial
|
424
|
-
// for (let i = 0; i < items.length; i++) {
|
425
|
-
// const item = items[i]!
|
426
|
-
// result = await reducer(result, item, i)
|
427
|
-
// }
|
428
|
-
// return result
|
429
|
-
// }
|
430
|
-
|
431
|
-
// /**
|
432
|
-
// * Curried version of asyncReduce for functions that transform a value
|
433
|
-
// *
|
434
|
-
// * @param transformers - Array of transformer functions
|
435
|
-
// * @returns A function that takes an initial value and applies all transformers
|
436
|
-
// *
|
437
|
-
// * @example
|
438
|
-
// * ```ts
|
439
|
-
// * const transformers = [addHeader, addFooter, minify]
|
440
|
-
// * const applyTransforms = asyncReduceWith(transformers)
|
441
|
-
// * const finalHtml = await applyTransforms(initialHtml)
|
442
|
-
// *
|
443
|
-
// * // For simple pipelines where each function transforms the same type
|
444
|
-
// * const htmlPipeline = asyncReduceWith([
|
445
|
-
// * (html) => html.replace('foo', 'bar'),
|
446
|
-
// * async (html) => await prettify(html),
|
447
|
-
// * (html) => html.trim()
|
448
|
-
// * ])
|
449
|
-
// * ```
|
450
|
-
// */
|
451
|
-
// export const asyncReduceWith = <T>(
|
452
|
-
// transformers: readonly ((value: T) => Promise<T> | T)[],
|
453
|
-
// ) => {
|
454
|
-
// return async (initial: T): Promise<T> => {
|
455
|
-
// return asyncReduce(transformers, (value, transform) => transform(value), initial)
|
456
|
-
// }
|
457
|
-
// }
|
458
|
-
|
459
|
-
/**
|
460
|
-
* Reduce an array asynchronously with context, processing each item in sequence
|
461
|
-
*
|
462
|
-
* @param items - Array of items to process
|
463
|
-
* @param reducer - Async function that takes accumulator, current item, and context
|
464
|
-
* @param initial - Initial value for the accumulator
|
465
|
-
* @param context - Context object passed to each reducer call
|
466
|
-
* @returns Final accumulated value
|
467
|
-
*
|
468
|
-
* @example
|
469
|
-
* ```ts
|
470
|
-
* const transformers = [transformer1, transformer2]
|
471
|
-
* const ctx = { request: req, response: res }
|
472
|
-
* const result = await asyncReduceWithContext(
|
473
|
-
* transformers,
|
474
|
-
* async (html, transformer) => transformer(html, ctx),
|
475
|
-
* initialHtml,
|
476
|
-
* ctx
|
477
|
-
* )
|
478
|
-
* ```
|
479
|
-
*/
|
480
|
-
export const asyncReduce = async <T, R, C>(
|
481
|
-
items: readonly T[],
|
482
|
-
reducer: (accumulator: R, current: T, context: C, index: number) => Promise<R> | R,
|
483
|
-
initial: R,
|
484
|
-
context: C,
|
485
|
-
): Promise<R> => {
|
486
|
-
let result = initial
|
487
|
-
for (let i = 0; i < items.length; i++) {
|
488
|
-
const item = items[i]!
|
489
|
-
result = await reducer(result, item, context, i)
|
490
|
-
}
|
491
|
-
return result
|
492
|
-
}
|
493
|
-
|
494
|
-
/**
|
495
|
-
* Curried version of asyncReduceWithContext for functions that transform a value with context
|
496
|
-
*
|
497
|
-
* @param transformers - Array of transformer functions that take value and context
|
498
|
-
* @returns A function that takes an initial value and context, and applies all transformers
|
499
|
-
*
|
500
|
-
* @example
|
501
|
-
* ```ts
|
502
|
-
* const transformers = [
|
503
|
-
* (html, ctx) => html.replace('{{url}}', ctx.req.url),
|
504
|
-
* async (html, ctx) => await ctx.minify(html),
|
505
|
-
* ]
|
506
|
-
* const applyTransforms = asyncReduceWithContextWith(transformers)
|
507
|
-
* const finalHtml = await applyTransforms(initialHtml, ctx)
|
508
|
-
* ```
|
509
|
-
*/
|
510
|
-
export const asyncReduceWith = <T, C>(
|
511
|
-
transformers: readonly ((value: T, context: C) => Promise<T> | T)[],
|
512
|
-
context: C,
|
513
|
-
) => {
|
514
|
-
return async (initial: T): Promise<T> => {
|
515
|
-
return asyncReduce(
|
516
|
-
transformers,
|
517
|
-
(value, transform, ctx) => transform(value, ctx),
|
518
|
-
initial,
|
519
|
-
context,
|
520
|
-
)
|
521
|
-
}
|
522
|
-
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { expect, test } from 'vitest'
|
2
|
-
import { getHighlighter, highlightCode } from './shiki.
|
2
|
+
import { getHighlighter, highlightCode } from './shiki.js'
|
3
3
|
|
4
4
|
test(`getHighlighter returns singleton instance`, async () => {
|
5
5
|
const highlighter1 = await getHighlighter()
|