polen 0.11.0-next.26 → 0.11.0-next.28
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 +76 -50
- package/build/api/builder/ssg/generate.js.map +1 -1
- package/build/api/builder/ssg/page-generator.worker.js +59 -55
- package/build/api/builder/ssg/page-generator.worker.js.map +1 -1
- package/build/api/builder/ssg/server-runner.worker.js +34 -40
- package/build/api/builder/ssg/server-runner.worker.js.map +1 -1
- package/build/api/builder/ssg/worker-messages.d.ts +10 -0
- package/build/api/builder/ssg/worker-messages.d.ts.map +1 -1
- package/build/api/builder/ssg/worker-messages.js +7 -1
- package/build/api/builder/ssg/worker-messages.js.map +1 -1
- package/build/template/components/ReferenceLink.d.ts +1 -0
- package/build/template/components/ReferenceLink.d.ts.map +1 -1
- package/build/template/components/ReferenceLink.js.map +1 -1
- package/build/template/components/graphql/type-link.d.ts.map +1 -1
- package/build/template/components/graphql/type-link.js +7 -6
- package/build/template/components/graphql/type-link.js.map +1 -1
- package/build/vite/plugins/routes-manifest.d.ts.map +1 -1
- package/build/vite/plugins/routes-manifest.js +5 -2
- package/build/vite/plugins/routes-manifest.js.map +1 -1
- package/package.json +38 -48
- package/src/api/builder/ssg/generate.ts +111 -71
- package/src/api/builder/ssg/page-generator.worker.ts +106 -74
- package/src/api/builder/ssg/server-runner.worker.ts +39 -44
- package/src/api/builder/ssg/worker-messages.ts +11 -1
- package/src/template/components/ReferenceLink.tsx +1 -0
- package/src/template/components/graphql/type-link.tsx +21 -9
- package/src/vite/plugins/routes-manifest.ts +5 -2
- package/build/lib/extensible-data/$.d.ts +0 -2
- package/build/lib/extensible-data/$.d.ts.map +0 -1
- package/build/lib/extensible-data/$.js +0 -2
- package/build/lib/extensible-data/$.js.map +0 -1
- package/build/lib/extensible-data/extensible-data.d.ts +0 -17
- package/build/lib/extensible-data/extensible-data.d.ts.map +0 -1
- package/build/lib/extensible-data/extensible-data.js +0 -24
- package/build/lib/extensible-data/extensible-data.js.map +0 -1
- package/build/lib/vite-plugin-reactive-data/$.d.ts +0 -2
- package/build/lib/vite-plugin-reactive-data/$.d.ts.map +0 -1
- package/build/lib/vite-plugin-reactive-data/$.js +0 -2
- package/build/lib/vite-plugin-reactive-data/$.js.map +0 -1
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.d.ts +0 -32
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.d.ts.map +0 -1
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.js +0 -85
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.js.map +0 -1
- package/src/lib/extensible-data/$.ts +0 -1
- package/src/lib/extensible-data/extensible-data.ts +0 -38
- package/src/lib/vite-plugin-reactive-data/$.ts +0 -1
- package/src/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.ts +0 -124
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"vite-plugin-reactive-data.js","sourceRoot":"","sources":["../../../src/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.ts"],"names":[],"mappings":"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"}
|
@@ -1 +0,0 @@
|
|
1
|
-
export * as ExtensibleData from './extensible-data.js'
|
@@ -1,38 +0,0 @@
|
|
1
|
-
import { computed, reactive } from '@vue/reactivity'
|
2
|
-
import type { ComputedRef, UnwrapRefSimple } from '@vue/reactivity'
|
3
|
-
|
4
|
-
type Join<$Data> = (chunks: $Data[]) => $Data
|
5
|
-
type Create<$Data> = () => $Data
|
6
|
-
|
7
|
-
interface DataTypeOperations<$Data> {
|
8
|
-
join: Join<$Data>
|
9
|
-
create: Create<$Data>
|
10
|
-
}
|
11
|
-
|
12
|
-
export const create = <$Data extends object = object>(dataTypeOperations: DataTypeOperations<$Data>) => {
|
13
|
-
return new ExtensibleData<$Data>(dataTypeOperations)
|
14
|
-
}
|
15
|
-
|
16
|
-
export class ExtensibleData<$Data extends object = object> {
|
17
|
-
public value: ComputedRef<$Data> = computed(() => {
|
18
|
-
const namespacedDataItems = Array.from(this.namespacedReactiveData.values())
|
19
|
-
const data = this.dataTypeOperations.join(namespacedDataItems as $Data[])
|
20
|
-
return data
|
21
|
-
})
|
22
|
-
|
23
|
-
private namespacedReactiveData = reactive(new Map<string, $Data>())
|
24
|
-
|
25
|
-
private dataTypeOperations: DataTypeOperations<$Data>
|
26
|
-
|
27
|
-
constructor(dataTypeOperations: DataTypeOperations<$Data>) {
|
28
|
-
this.dataTypeOperations = dataTypeOperations
|
29
|
-
}
|
30
|
-
|
31
|
-
get(namespace: string): $Data {
|
32
|
-
if (!this.namespacedReactiveData.has(namespace)) {
|
33
|
-
const data = this.dataTypeOperations.create()
|
34
|
-
this.namespacedReactiveData.set(namespace, data as UnwrapRefSimple<$Data>)
|
35
|
-
}
|
36
|
-
return this.namespacedReactiveData.get(namespace)! as $Data
|
37
|
-
}
|
38
|
-
}
|
@@ -1 +0,0 @@
|
|
1
|
-
export * as VitePluginReactiveData from './vite-plugin-reactive-data.js'
|
@@ -1,124 +0,0 @@
|
|
1
|
-
import type { VitePluginJson } from '#lib/vite-plugin-json'
|
2
|
-
import { debugPolen } from '#singletons/debug'
|
3
|
-
import { type ComputedRef, effect, isRef } from '@vue/reactivity'
|
4
|
-
import type { Plugin, ViteDevServer } from 'vite'
|
5
|
-
|
6
|
-
interface ReactiveDataOptions {
|
7
|
-
/**
|
8
|
-
* Virtual module ID (e.g., 'virtual:polen/navbar') that this data will be exported from.
|
9
|
-
* The appropriate extension will be appended automatically based on moduleType.
|
10
|
-
*/
|
11
|
-
moduleId: string
|
12
|
-
/**
|
13
|
-
* The reactive data to expose.
|
14
|
-
* Can be either:
|
15
|
-
* - A Vue computed ref (recommended)
|
16
|
-
* - A function that returns reactive data
|
17
|
-
* - A reactive value directly
|
18
|
-
*/
|
19
|
-
data: ComputedRef<object | unknown[]> | (() => object | unknown[]) | object | unknown[]
|
20
|
-
/**
|
21
|
-
* JSON codec to use
|
22
|
-
* Default: JSON
|
23
|
-
* Only used when includeJsonPlugin is true
|
24
|
-
*/
|
25
|
-
codec?: VitePluginJson.Codec
|
26
|
-
/**
|
27
|
-
* Custom plugin name. Can use to help identify this plugin in logs if using many instances of this plugin.
|
28
|
-
@default 'reactive-data'
|
29
|
-
*/
|
30
|
-
name?: string
|
31
|
-
}
|
32
|
-
|
33
|
-
const pluginDebug = debugPolen.sub(`vite-reactive-data`)
|
34
|
-
|
35
|
-
export const create = (options: ReactiveDataOptions): Plugin => {
|
36
|
-
const codec = options.codec ?? JSON
|
37
|
-
const moduleId = options.moduleId
|
38
|
-
const name = options.name ?? `reactive-data`
|
39
|
-
|
40
|
-
const debug = pluginDebug.sub(name)
|
41
|
-
debug(`constructor`, { moduleId })
|
42
|
-
|
43
|
-
let $server: ViteDevServer
|
44
|
-
let $invalidationScheduled = false
|
45
|
-
|
46
|
-
const tryInvalidate = () => {
|
47
|
-
$invalidationScheduled = false
|
48
|
-
if (!$server) throw new Error(`Server not available yet - this should be impossible`)
|
49
|
-
const moduleNode = $server.moduleGraph.getModuleById(moduleId)
|
50
|
-
if (moduleNode) {
|
51
|
-
debug(`invalidate`, { id: moduleNode.id })
|
52
|
-
$server.moduleGraph.invalidateModule(moduleNode)
|
53
|
-
} else {
|
54
|
-
debug(`cannot invalidate`, {
|
55
|
-
reason: `notInModuleGraph`,
|
56
|
-
moduleId,
|
57
|
-
hint: `maybe it was not loaded yet`,
|
58
|
-
})
|
59
|
-
}
|
60
|
-
}
|
61
|
-
|
62
|
-
const scheduleInvalidate = () => {
|
63
|
-
if ($invalidationScheduled) return // already scheduled
|
64
|
-
|
65
|
-
$invalidationScheduled = true
|
66
|
-
|
67
|
-
if (!$server) return // server will flush when ready
|
68
|
-
|
69
|
-
tryInvalidate()
|
70
|
-
}
|
71
|
-
|
72
|
-
// Helper to get the current data value
|
73
|
-
const getData = () => {
|
74
|
-
if (isRef(options.data)) {
|
75
|
-
return options.data.value
|
76
|
-
} else if (typeof options.data === `function`) {
|
77
|
-
return options.data()
|
78
|
-
} else {
|
79
|
-
return options.data
|
80
|
-
}
|
81
|
-
}
|
82
|
-
|
83
|
-
// Set up reactive effect immediately
|
84
|
-
effect(() => {
|
85
|
-
// Access data to track dependencies
|
86
|
-
const data = getData()
|
87
|
-
debug(`effect triggered`, { data })
|
88
|
-
|
89
|
-
scheduleInvalidate()
|
90
|
-
})
|
91
|
-
|
92
|
-
return {
|
93
|
-
name,
|
94
|
-
|
95
|
-
configureServer(_server) {
|
96
|
-
debug(`hook configureServer`)
|
97
|
-
$server = _server
|
98
|
-
if ($invalidationScheduled) {
|
99
|
-
debug(`try invalidate scheduled before server was ready`)
|
100
|
-
tryInvalidate()
|
101
|
-
}
|
102
|
-
},
|
103
|
-
|
104
|
-
resolveId(id) {
|
105
|
-
if (id === moduleId) {
|
106
|
-
return moduleId
|
107
|
-
}
|
108
|
-
},
|
109
|
-
|
110
|
-
// todo make use of Vite's builtin json plugin
|
111
|
-
// for example, call it here somehow
|
112
|
-
load(id) {
|
113
|
-
if (id !== moduleId) return
|
114
|
-
|
115
|
-
const data = getData()
|
116
|
-
debug(`hook load`, { data })
|
117
|
-
|
118
|
-
return {
|
119
|
-
code: codec.stringify(data),
|
120
|
-
map: null,
|
121
|
-
}
|
122
|
-
},
|
123
|
-
}
|
124
|
-
}
|