polen 0.10.0-next.12 → 0.10.0-next.14
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/vite/plugins/build.d.ts.map +1 -1
- package/build/api/vite/plugins/build.js +11 -3
- package/build/api/vite/plugins/build.js.map +1 -1
- package/build/api/vite/plugins/core.d.ts.map +1 -1
- package/build/api/vite/plugins/core.js +12 -10
- package/build/api/vite/plugins/core.js.map +1 -1
- package/build/api/vite/plugins/pages.d.ts.map +1 -1
- package/build/api/vite/plugins/pages.js +6 -7
- 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 +47 -7
- package/build/api/vite/plugins/serve.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/graphql-document/components/CopyButton.d.ts +19 -0
- package/build/lib/graphql-document/components/CopyButton.d.ts.map +1 -0
- package/build/lib/graphql-document/components/CopyButton.js +43 -0
- package/build/lib/graphql-document/components/CopyButton.js.map +1 -0
- package/build/lib/graphql-document/components/GraphQLDocument.d.ts +0 -4
- package/build/lib/graphql-document/components/GraphQLDocument.d.ts.map +1 -1
- package/build/lib/graphql-document/components/GraphQLDocument.js +52 -83
- package/build/lib/graphql-document/components/GraphQLDocument.js.map +1 -1
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.d.ts +33 -0
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.d.ts.map +1 -0
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.js +48 -0
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.js.map +1 -0
- package/build/lib/graphql-document/components/IdentifierLink.d.ts +15 -13
- package/build/lib/graphql-document/components/IdentifierLink.d.ts.map +1 -1
- package/build/lib/graphql-document/components/IdentifierLink.js +51 -117
- package/build/lib/graphql-document/components/IdentifierLink.js.map +1 -1
- package/build/lib/graphql-document/components/graphql-document-styles.d.ts +5 -0
- package/build/lib/graphql-document/components/graphql-document-styles.d.ts.map +1 -0
- package/build/lib/graphql-document/components/graphql-document-styles.js +167 -0
- package/build/lib/graphql-document/components/graphql-document-styles.js.map +1 -0
- package/build/lib/graphql-document/components/index.d.ts +2 -1
- package/build/lib/graphql-document/components/index.d.ts.map +1 -1
- package/build/lib/graphql-document/components/index.js +2 -1
- package/build/lib/graphql-document/components/index.js.map +1 -1
- package/build/lib/graphql-document/hooks/use-tooltip-state.d.ts +43 -0
- package/build/lib/graphql-document/hooks/use-tooltip-state.d.ts.map +1 -0
- package/build/lib/graphql-document/hooks/use-tooltip-state.js +132 -0
- package/build/lib/graphql-document/hooks/use-tooltip-state.js.map +1 -0
- package/build/lib/graphql-document/positioning-simple.d.ts +0 -5
- package/build/lib/graphql-document/positioning-simple.d.ts.map +1 -1
- package/build/lib/graphql-document/positioning-simple.js +78 -90
- package/build/lib/graphql-document/positioning-simple.js.map +1 -1
- package/build/lib/kit-temp.d.ts +103 -0
- package/build/lib/kit-temp.d.ts.map +1 -1
- package/build/lib/kit-temp.js +236 -2
- package/build/lib/kit-temp.js.map +1 -1
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.d.ts +1 -8
- 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 +48 -53
- 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/template/components/Link.d.ts +1 -1
- package/build/template/components/Link.d.ts.map +1 -1
- package/build/template/components/Link.js +14 -5
- package/build/template/components/Link.js.map +1 -1
- package/build/template/components/content/GraphQLDocumentWithSchema.d.ts.map +1 -1
- package/build/template/components/content/GraphQLDocumentWithSchema.js +0 -3
- package/build/template/components/content/GraphQLDocumentWithSchema.js.map +1 -1
- package/build/template/components/content/GraphQLDocumentWrapper.d.ts.map +1 -1
- package/build/template/components/content/GraphQLDocumentWrapper.js +8 -7
- package/build/template/components/content/GraphQLDocumentWrapper.js.map +1 -1
- package/build/template/components/sidebar/SidebarItem.js +2 -2
- package/build/template/entry.client.d.ts.map +1 -1
- package/build/template/entry.client.js +0 -3
- package/build/template/entry.client.js.map +1 -1
- package/build/template/hooks/useClientOnly.d.ts +9 -0
- package/build/template/hooks/useClientOnly.d.ts.map +1 -0
- package/build/template/hooks/useClientOnly.js +16 -0
- package/build/template/hooks/useClientOnly.js.map +1 -0
- package/build/template/routes/root.d.ts.map +1 -1
- package/build/template/routes/root.js +2 -150
- package/build/template/routes/root.js.map +1 -1
- package/build/template/server/app.d.ts +8 -1
- 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/create-page-html-response.d.ts +7 -0
- package/build/template/server/create-page-html-response.d.ts.map +1 -0
- package/build/template/server/{render-page.js → create-page-html-response.js} +11 -16
- package/build/template/server/create-page-html-response.js.map +1 -0
- package/build/template/server/main.js +2 -1
- package/build/template/server/main.js.map +1 -1
- package/build/template/server/middleware/page.d.ts +4 -0
- package/build/template/server/middleware/page.d.ts.map +1 -0
- package/build/template/server/middleware/page.js +15 -0
- package/build/template/server/middleware/page.js.map +1 -0
- package/build/template/server/middleware/unsupported-assets.d.ts +10 -0
- package/build/template/server/middleware/unsupported-assets.d.ts.map +1 -0
- package/build/template/server/middleware/unsupported-assets.js +21 -0
- package/build/template/server/middleware/unsupported-assets.js.map +1 -0
- package/build/template/server/ssg/generate.d.ts.map +1 -1
- package/build/template/server/ssg/generate.js +33 -34
- package/build/template/server/ssg/generate.js.map +1 -1
- package/build/template/styles/code-block.css +218 -0
- package/package.json +4 -2
- package/src/api/singletons/markdown/markdown.test.ts +1 -1
- package/src/api/vite/plugins/build.ts +97 -89
- package/src/api/vite/plugins/core.ts +15 -10
- package/src/api/vite/plugins/pages.ts +9 -7
- package/src/api/vite/plugins/serve.ts +62 -9
- package/src/lib/file-router/diagnostic-reporter.ts +2 -2
- package/src/lib/graphql-document/components/CopyButton.tsx +76 -0
- package/src/lib/graphql-document/components/GraphQLDocument.tsx +73 -95
- package/src/lib/graphql-document/components/GraphQLIdentifierPopover.tsx +197 -0
- package/src/lib/graphql-document/components/IdentifierLink.tsx +105 -166
- package/src/lib/graphql-document/components/graphql-document-styles.ts +167 -0
- package/src/lib/graphql-document/components/index.ts +2 -1
- package/src/lib/graphql-document/hooks/use-tooltip-state.test.ts +76 -0
- package/src/lib/graphql-document/hooks/use-tooltip-state.ts +191 -0
- package/src/lib/graphql-document/positioning-simple.test.ts +18 -22
- package/src/lib/graphql-document/positioning-simple.ts +97 -108
- package/src/lib/kit-temp.test.ts +15 -3
- package/src/lib/kit-temp.ts +304 -4
- package/src/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.ts +52 -58
- package/src/package-paths.ts +3 -3
- package/src/template/components/Link.tsx +20 -12
- package/src/template/components/content/GraphQLDocumentWithSchema.tsx +0 -5
- package/src/template/components/content/GraphQLDocumentWrapper.tsx +14 -7
- package/src/template/components/sidebar/SidebarItem.tsx +2 -2
- package/src/template/entry.client.tsx +0 -3
- package/src/template/hooks/useClientOnly.ts +21 -0
- package/src/template/routes/root.tsx +0 -159
- package/src/template/server/app.ts +33 -23
- package/src/template/server/{render-page.tsx → create-page-html-response.ts} +19 -16
- package/src/template/server/main.ts +2 -1
- package/src/template/server/middleware/page.ts +19 -0
- package/src/template/server/middleware/unsupported-assets.ts +25 -0
- package/src/template/server/ssg/generate.ts +68 -72
- package/build/lib/graphql-document/components/HoverTooltip.d.ts +0 -35
- package/build/lib/graphql-document/components/HoverTooltip.d.ts.map +0 -1
- package/build/lib/graphql-document/components/HoverTooltip.js +0 -132
- package/build/lib/graphql-document/components/HoverTooltip.js.map +0 -1
- package/build/template/server/render-page.d.ts +0 -3
- package/build/template/server/render-page.d.ts.map +0 -1
- package/build/template/server/render-page.js.map +0 -1
- package/src/lib/graphql-document/components/HoverTooltip.tsx +0 -282
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"positioning-simple.js","sourceRoot":"","sources":["../../../src/lib/graphql-document/positioning-simple.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4BH;;;;;;;;;;GAUG;AACH,MAAM,OAAO,wBAAwB;IACnC;;OAEG;IACH,gBAAgB,CACd,gBAAyB,EACzB,WAAyB;QAEzB,
|
1
|
+
{"version":3,"file":"positioning-simple.js","sourceRoot":"","sources":["../../../src/lib/graphql-document/positioning-simple.ts"],"names":[],"mappings":"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"}
|
package/build/lib/kit-temp.d.ts
CHANGED
@@ -71,5 +71,108 @@ export declare function tryCatchMany<item, result>(items: item[], operation: (it
|
|
71
71
|
*/
|
72
72
|
export type IsExact<T, U> = T extends U ? U extends T ? true : false : false;
|
73
73
|
export type ExtendsExact<$Input, $Constraint> = $Input extends $Constraint ? $Constraint extends $Input ? $Input : never : never;
|
74
|
+
/**
|
75
|
+
* Split an array into chunks of specified size
|
76
|
+
*
|
77
|
+
* @param array - The array to chunk
|
78
|
+
* @param size - The size of each chunk
|
79
|
+
* @returns Array of chunks
|
80
|
+
*
|
81
|
+
* @example
|
82
|
+
* ```ts
|
83
|
+
* chunk([1, 2, 3, 4, 5], 2) // [[1, 2], [3, 4], [5]]
|
84
|
+
* chunk(['a', 'b', 'c'], 3) // [['a', 'b', 'c']]
|
85
|
+
* ```
|
86
|
+
*/
|
87
|
+
export declare const chunk: <T>(array: readonly T[], size: number) => T[][];
|
88
|
+
export interface AsyncParallelOptions {
|
89
|
+
/**
|
90
|
+
* Maximum number of items to process concurrently
|
91
|
+
* @default 10
|
92
|
+
*/
|
93
|
+
concurrency?: number;
|
94
|
+
/**
|
95
|
+
* If true, stops processing on first error
|
96
|
+
* If false, continues processing all items even if some fail
|
97
|
+
* @default false
|
98
|
+
*/
|
99
|
+
failFast?: boolean;
|
100
|
+
/**
|
101
|
+
* Size of batches to process items in
|
102
|
+
* If not specified, all items are processed with the specified concurrency
|
103
|
+
*/
|
104
|
+
batchSize?: number;
|
105
|
+
}
|
106
|
+
export interface AsyncParallelResult<T, R> {
|
107
|
+
/** Successfully processed results */
|
108
|
+
results: R[];
|
109
|
+
/** Errors that occurred during processing */
|
110
|
+
errors: (Error & {
|
111
|
+
item: T;
|
112
|
+
})[];
|
113
|
+
/** Whether all items were processed successfully */
|
114
|
+
success: boolean;
|
115
|
+
}
|
116
|
+
/**
|
117
|
+
* Process items in parallel with configurable options
|
118
|
+
*
|
119
|
+
* @param items - Items to process
|
120
|
+
* @param operation - Async function to apply to each item (with optional index)
|
121
|
+
* @param options - Configuration options
|
122
|
+
* @returns Results and errors from processing
|
123
|
+
*
|
124
|
+
* @example
|
125
|
+
* ```ts
|
126
|
+
* const items = [1, 2, 3, 4, 5]
|
127
|
+
* const result = await asyncParallel(items, async (n, index) => n * 2, {
|
128
|
+
* concurrency: 2,
|
129
|
+
* batchSize: 3,
|
130
|
+
* failFast: false
|
131
|
+
* })
|
132
|
+
* // result.results: [2, 4, 6, 8, 10]
|
133
|
+
* // result.errors: []
|
134
|
+
* // result.success: true
|
135
|
+
* ```
|
136
|
+
*/
|
137
|
+
export declare const asyncParallel: <T, R>(items: readonly T[], operation: (item: T, index: number) => Promise<R>, options?: AsyncParallelOptions) => Promise<AsyncParallelResult<T, R>>;
|
138
|
+
/**
|
139
|
+
* Reduce an array asynchronously with context, processing each item in sequence
|
140
|
+
*
|
141
|
+
* @param items - Array of items to process
|
142
|
+
* @param reducer - Async function that takes accumulator, current item, and context
|
143
|
+
* @param initial - Initial value for the accumulator
|
144
|
+
* @param context - Context object passed to each reducer call
|
145
|
+
* @returns Final accumulated value
|
146
|
+
*
|
147
|
+
* @example
|
148
|
+
* ```ts
|
149
|
+
* const transformers = [transformer1, transformer2]
|
150
|
+
* const ctx = { request: req, response: res }
|
151
|
+
* const result = await asyncReduceWithContext(
|
152
|
+
* transformers,
|
153
|
+
* async (html, transformer) => transformer(html, ctx),
|
154
|
+
* initialHtml,
|
155
|
+
* ctx
|
156
|
+
* )
|
157
|
+
* ```
|
158
|
+
*/
|
159
|
+
export declare const asyncReduce: <T, R, C>(items: readonly T[], reducer: (accumulator: R, current: T, context: C, index: number) => Promise<R> | R, initial: R, context: C) => Promise<R>;
|
160
|
+
/**
|
161
|
+
* Curried version of asyncReduceWithContext for functions that transform a value with context
|
162
|
+
*
|
163
|
+
* @param transformers - Array of transformer functions that take value and context
|
164
|
+
* @returns A function that takes an initial value and context, and applies all transformers
|
165
|
+
*
|
166
|
+
* @example
|
167
|
+
* ```ts
|
168
|
+
* const transformers = [
|
169
|
+
* (html, ctx) => html.replace('{{url}}', ctx.req.url),
|
170
|
+
* async (html, ctx) => await ctx.minify(html),
|
171
|
+
* ]
|
172
|
+
* const applyTransforms = asyncReduceWithContextWith(transformers)
|
173
|
+
* const finalHtml = await applyTransforms(initialHtml, ctx)
|
174
|
+
* ```
|
175
|
+
*/
|
176
|
+
export declare const asyncReduceWith: <T, C>(transformers: readonly ((value: T, context: C) => Promise<T> | T)[], context: C) => (initial: T) => Promise<T>;
|
74
177
|
export {};
|
75
178
|
//# sourceMappingURL=kit-temp.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"kit-temp.d.ts","sourceRoot":"","sources":["../../src/lib/kit-temp.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"kit-temp.d.ts","sourceRoot":"","sources":["../../src/lib/kit-temp.ts"],"names":[],"mappings":"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"}
|
package/build/lib/kit-temp.js
CHANGED
@@ -12,7 +12,6 @@
|
|
12
12
|
//
|
13
13
|
//
|
14
14
|
import { Arr, Err, Fs, Http, Path, Undefined } from '@wollybeard/kit';
|
15
|
-
import { never } from '@wollybeard/kit/language';
|
16
15
|
export const arrayEquals = (a, b) => {
|
17
16
|
if (a.length !== b.length)
|
18
17
|
return false;
|
@@ -77,7 +76,7 @@ export const objPolicyFilter = (mode, obj, keys) => {
|
|
77
76
|
if (mode === 'allow') {
|
78
77
|
// For allow mode, only add specified keys
|
79
78
|
for (const key of keys) {
|
80
|
-
if (key
|
79
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
81
80
|
// @ts-expect-error
|
82
81
|
result[key] = obj[key];
|
83
82
|
}
|
@@ -159,4 +158,239 @@ export async function tryCatchMany(items, operation) {
|
|
159
158
|
})).then(Arr.partitionErrors);
|
160
159
|
return partitionedResults;
|
161
160
|
}
|
161
|
+
/**
|
162
|
+
* Split an array into chunks of specified size
|
163
|
+
*
|
164
|
+
* @param array - The array to chunk
|
165
|
+
* @param size - The size of each chunk
|
166
|
+
* @returns Array of chunks
|
167
|
+
*
|
168
|
+
* @example
|
169
|
+
* ```ts
|
170
|
+
* chunk([1, 2, 3, 4, 5], 2) // [[1, 2], [3, 4], [5]]
|
171
|
+
* chunk(['a', 'b', 'c'], 3) // [['a', 'b', 'c']]
|
172
|
+
* ```
|
173
|
+
*/
|
174
|
+
export const chunk = (array, size) => {
|
175
|
+
if (size <= 0)
|
176
|
+
throw new Error('Chunk size must be greater than 0');
|
177
|
+
if (array.length === 0)
|
178
|
+
return [];
|
179
|
+
const chunks = [];
|
180
|
+
for (let i = 0; i < array.length; i += size) {
|
181
|
+
chunks.push(array.slice(i, i + size));
|
182
|
+
}
|
183
|
+
return chunks;
|
184
|
+
};
|
185
|
+
/**
|
186
|
+
* Process items in parallel with configurable options
|
187
|
+
*
|
188
|
+
* @param items - Items to process
|
189
|
+
* @param operation - Async function to apply to each item (with optional index)
|
190
|
+
* @param options - Configuration options
|
191
|
+
* @returns Results and errors from processing
|
192
|
+
*
|
193
|
+
* @example
|
194
|
+
* ```ts
|
195
|
+
* const items = [1, 2, 3, 4, 5]
|
196
|
+
* const result = await asyncParallel(items, async (n, index) => n * 2, {
|
197
|
+
* concurrency: 2,
|
198
|
+
* batchSize: 3,
|
199
|
+
* failFast: false
|
200
|
+
* })
|
201
|
+
* // result.results: [2, 4, 6, 8, 10]
|
202
|
+
* // result.errors: []
|
203
|
+
* // result.success: true
|
204
|
+
* ```
|
205
|
+
*/
|
206
|
+
export const asyncParallel = async (items, operation, options = {}) => {
|
207
|
+
const { concurrency = 10, failFast = false, batchSize } = options;
|
208
|
+
if (items.length === 0) {
|
209
|
+
return { results: [], errors: [], success: true };
|
210
|
+
}
|
211
|
+
const allResults = [];
|
212
|
+
const allErrors = [];
|
213
|
+
// If batchSize is specified, process in batches
|
214
|
+
if (batchSize !== undefined) {
|
215
|
+
const batches = chunk(items, batchSize);
|
216
|
+
let globalIndex = 0;
|
217
|
+
for (const batch of batches) {
|
218
|
+
const batchResult = await processBatch(batch, operation, concurrency, failFast, globalIndex);
|
219
|
+
allResults.push(...batchResult.results);
|
220
|
+
allErrors.push(...batchResult.errors);
|
221
|
+
globalIndex += batch.length;
|
222
|
+
if (failFast && batchResult.errors.length > 0) {
|
223
|
+
break;
|
224
|
+
}
|
225
|
+
}
|
226
|
+
}
|
227
|
+
else {
|
228
|
+
// Process all items with specified concurrency
|
229
|
+
const result = await processBatch(items, operation, concurrency, failFast, 0);
|
230
|
+
allResults.push(...result.results);
|
231
|
+
allErrors.push(...result.errors);
|
232
|
+
}
|
233
|
+
return {
|
234
|
+
results: allResults,
|
235
|
+
errors: allErrors,
|
236
|
+
success: allErrors.length === 0,
|
237
|
+
};
|
238
|
+
};
|
239
|
+
/**
|
240
|
+
* Process a batch of items with limited concurrency
|
241
|
+
*/
|
242
|
+
const processBatch = async (items, operation, concurrency, failFast, startIndex = 0) => {
|
243
|
+
const results = [];
|
244
|
+
const errors = [];
|
245
|
+
// Process items in chunks based on concurrency limit
|
246
|
+
const chunks = chunk(items, concurrency);
|
247
|
+
let currentIndex = startIndex;
|
248
|
+
for (const chunkItems of chunks) {
|
249
|
+
const promises = chunkItems.map(async (item, chunkIndex) => {
|
250
|
+
const globalIndex = currentIndex + chunkIndex;
|
251
|
+
try {
|
252
|
+
const result = await operation(item, globalIndex);
|
253
|
+
return { success: true, result, item };
|
254
|
+
}
|
255
|
+
catch (error) {
|
256
|
+
const enhancedError = error instanceof Error ? error : new Error(String(error));
|
257
|
+
Object.assign(enhancedError, { item });
|
258
|
+
return { success: false, error: enhancedError, item };
|
259
|
+
}
|
260
|
+
});
|
261
|
+
currentIndex += chunkItems.length;
|
262
|
+
const chunkResults = await Promise.allSettled(promises);
|
263
|
+
for (const promiseResult of chunkResults) {
|
264
|
+
if (promiseResult.status === 'fulfilled') {
|
265
|
+
const { success, result, error, item } = promiseResult.value;
|
266
|
+
if (success) {
|
267
|
+
results.push(result);
|
268
|
+
}
|
269
|
+
else {
|
270
|
+
errors.push(error);
|
271
|
+
if (failFast) {
|
272
|
+
return { results, errors, success: false };
|
273
|
+
}
|
274
|
+
}
|
275
|
+
}
|
276
|
+
else {
|
277
|
+
// This shouldn't happen since we're catching errors above
|
278
|
+
// But handle it just in case
|
279
|
+
const error = new Error('Unexpected promise rejection');
|
280
|
+
errors.push(error);
|
281
|
+
if (failFast) {
|
282
|
+
return { results, errors, success: false };
|
283
|
+
}
|
284
|
+
}
|
285
|
+
}
|
286
|
+
}
|
287
|
+
return { results, errors, success: errors.length === 0 };
|
288
|
+
};
|
289
|
+
// /**
|
290
|
+
// * Reduce an array asynchronously, processing each item in sequence
|
291
|
+
// *
|
292
|
+
// * @param items - Array of items to process
|
293
|
+
// * @param reducer - Async function that takes accumulator and current item
|
294
|
+
// * @param initial - Initial value for the accumulator
|
295
|
+
// * @returns Final accumulated value
|
296
|
+
// *
|
297
|
+
// * @example
|
298
|
+
// * ```ts
|
299
|
+
// * const numbers = [1, 2, 3, 4]
|
300
|
+
// * const sum = await asyncReduce(numbers, async (acc, n) => acc + n, 0)
|
301
|
+
// * // sum: 10
|
302
|
+
// *
|
303
|
+
// * const transforms = [addHeader, addFooter, minify]
|
304
|
+
// * const html = await asyncReduce(transforms, async (html, transform) => transform(html), initialHtml)
|
305
|
+
// * ```
|
306
|
+
// */
|
307
|
+
// export const asyncReduce = async <T, R>(
|
308
|
+
// items: readonly T[],
|
309
|
+
// reducer: (accumulator: R, current: T, index: number) => Promise<R> | R,
|
310
|
+
// initial: R,
|
311
|
+
// ): Promise<R> => {
|
312
|
+
// let result = initial
|
313
|
+
// for (let i = 0; i < items.length; i++) {
|
314
|
+
// const item = items[i]!
|
315
|
+
// result = await reducer(result, item, i)
|
316
|
+
// }
|
317
|
+
// return result
|
318
|
+
// }
|
319
|
+
// /**
|
320
|
+
// * Curried version of asyncReduce for functions that transform a value
|
321
|
+
// *
|
322
|
+
// * @param transformers - Array of transformer functions
|
323
|
+
// * @returns A function that takes an initial value and applies all transformers
|
324
|
+
// *
|
325
|
+
// * @example
|
326
|
+
// * ```ts
|
327
|
+
// * const transformers = [addHeader, addFooter, minify]
|
328
|
+
// * const applyTransforms = asyncReduceWith(transformers)
|
329
|
+
// * const finalHtml = await applyTransforms(initialHtml)
|
330
|
+
// *
|
331
|
+
// * // For simple pipelines where each function transforms the same type
|
332
|
+
// * const htmlPipeline = asyncReduceWith([
|
333
|
+
// * (html) => html.replace('foo', 'bar'),
|
334
|
+
// * async (html) => await prettify(html),
|
335
|
+
// * (html) => html.trim()
|
336
|
+
// * ])
|
337
|
+
// * ```
|
338
|
+
// */
|
339
|
+
// export const asyncReduceWith = <T>(
|
340
|
+
// transformers: readonly ((value: T) => Promise<T> | T)[],
|
341
|
+
// ) => {
|
342
|
+
// return async (initial: T): Promise<T> => {
|
343
|
+
// return asyncReduce(transformers, (value, transform) => transform(value), initial)
|
344
|
+
// }
|
345
|
+
// }
|
346
|
+
/**
|
347
|
+
* Reduce an array asynchronously with context, processing each item in sequence
|
348
|
+
*
|
349
|
+
* @param items - Array of items to process
|
350
|
+
* @param reducer - Async function that takes accumulator, current item, and context
|
351
|
+
* @param initial - Initial value for the accumulator
|
352
|
+
* @param context - Context object passed to each reducer call
|
353
|
+
* @returns Final accumulated value
|
354
|
+
*
|
355
|
+
* @example
|
356
|
+
* ```ts
|
357
|
+
* const transformers = [transformer1, transformer2]
|
358
|
+
* const ctx = { request: req, response: res }
|
359
|
+
* const result = await asyncReduceWithContext(
|
360
|
+
* transformers,
|
361
|
+
* async (html, transformer) => transformer(html, ctx),
|
362
|
+
* initialHtml,
|
363
|
+
* ctx
|
364
|
+
* )
|
365
|
+
* ```
|
366
|
+
*/
|
367
|
+
export const asyncReduce = async (items, reducer, initial, context) => {
|
368
|
+
let result = initial;
|
369
|
+
for (let i = 0; i < items.length; i++) {
|
370
|
+
const item = items[i];
|
371
|
+
result = await reducer(result, item, context, i);
|
372
|
+
}
|
373
|
+
return result;
|
374
|
+
};
|
375
|
+
/**
|
376
|
+
* Curried version of asyncReduceWithContext for functions that transform a value with context
|
377
|
+
*
|
378
|
+
* @param transformers - Array of transformer functions that take value and context
|
379
|
+
* @returns A function that takes an initial value and context, and applies all transformers
|
380
|
+
*
|
381
|
+
* @example
|
382
|
+
* ```ts
|
383
|
+
* const transformers = [
|
384
|
+
* (html, ctx) => html.replace('{{url}}', ctx.req.url),
|
385
|
+
* async (html, ctx) => await ctx.minify(html),
|
386
|
+
* ]
|
387
|
+
* const applyTransforms = asyncReduceWithContextWith(transformers)
|
388
|
+
* const finalHtml = await applyTransforms(initialHtml, ctx)
|
389
|
+
* ```
|
390
|
+
*/
|
391
|
+
export const asyncReduceWith = (transformers, context) => {
|
392
|
+
return async (initial) => {
|
393
|
+
return asyncReduce(transformers, (value, transform, ctx) => transform(value, ctx), initial, context);
|
394
|
+
};
|
395
|
+
};
|
162
396
|
//# sourceMappingURL=kit-temp.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"kit-temp.js","sourceRoot":"","sources":["../../src/lib/kit-temp.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,2DAA2D;AAC3D,EAAE;AACF,mFAAmF;AACnF,EAAE;AACF,mEAAmE;AACnE,EAAE;AACF,EAAE;AACF,EAAE;AAEF,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,
|
1
|
+
{"version":3,"file":"kit-temp.js","sourceRoot":"","sources":["../../src/lib/kit-temp.ts"],"names":[],"mappings":"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"}
|
@@ -15,11 +15,9 @@ interface ReactiveDataOptions {
|
|
15
15
|
* - A reactive value directly
|
16
16
|
*/
|
17
17
|
data: ComputedRef<object | unknown[]> | (() => object | unknown[]) | object | unknown[];
|
18
|
-
/** Debounce updates (ms). If not set, uses process.nextTick for batching */
|
19
|
-
debounce?: number;
|
20
18
|
/**
|
21
19
|
* JSON codec to use (e.g., superjson)
|
22
|
-
* Default:
|
20
|
+
* Default: JSON
|
23
21
|
* Only used when includeJsonPlugin is true
|
24
22
|
*/
|
25
23
|
codec?: VitePluginJson.Codec;
|
@@ -28,11 +26,6 @@ interface ReactiveDataOptions {
|
|
28
26
|
@default 'reactive-data'
|
29
27
|
*/
|
30
28
|
name?: string;
|
31
|
-
/**
|
32
|
-
* Module type to return. Default: 'json'
|
33
|
-
* Use 'superjson' to avoid conflicts with built-in JSON plugin
|
34
|
-
*/
|
35
|
-
moduleType?: string;
|
36
29
|
}
|
37
30
|
export declare const create: (options: ReactiveDataOptions) => Plugin;
|
38
31
|
export {};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"vite-plugin-reactive-data.d.ts","sourceRoot":"","sources":["../../../src/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"vite-plugin-reactive-data.d.ts","sourceRoot":"","sources":["../../../src/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAE5D,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,iBAAiB,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAA;AAEjD,UAAU,mBAAmB;IAC3B;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;;;;;OAMG;IACH,IAAI,EAAE,WAAW,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC,GAAG,MAAM,GAAG,OAAO,EAAE,CAAA;IACvF;;;;OAIG;IACH,KAAK,CAAC,EAAE,cAAc,CAAC,KAAK,CAAA;IAC5B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAID,eAAO,MAAM,MAAM,GAAI,SAAS,mBAAmB,KAAG,MA0FrD,CAAA"}
|
@@ -1,43 +1,41 @@
|
|
1
|
-
import { ensureEnd } from '#lib/kit-temp';
|
2
1
|
import { VitePluginJson } from '#lib/vite-plugin-json/index';
|
3
|
-
import {
|
2
|
+
import { debugPolen } from '#singletons/debug';
|
4
3
|
import { effect, isRef } from '@vue/reactivity';
|
5
|
-
|
6
|
-
const debug = Debug.create('vite-plugin-reactive-data');
|
4
|
+
const pluginDebug = debugPolen.sub('vite-reactive-data');
|
7
5
|
export const create = (options) => {
|
8
|
-
const codec = options.codec ??
|
9
|
-
const
|
10
|
-
const moduleId = ensureEnd(options.moduleId, `.${moduleType}`);
|
6
|
+
const codec = options.codec ?? JSON;
|
7
|
+
const moduleId = options.moduleId;
|
11
8
|
const name = options.name ?? `reactive-data`;
|
12
|
-
|
13
|
-
|
14
|
-
let
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
if (
|
20
|
-
|
21
|
-
const moduleNode = server.moduleGraph.getModuleById(moduleId);
|
9
|
+
const debug = pluginDebug.sub(name);
|
10
|
+
debug('constructor', { moduleId });
|
11
|
+
let $server;
|
12
|
+
let $invalidationScheduled = false;
|
13
|
+
const tryInvalidate = () => {
|
14
|
+
$invalidationScheduled = false;
|
15
|
+
// updateTimer = undefined
|
16
|
+
if (!$server)
|
17
|
+
throw new Error('Server not available yet - this should be impossible');
|
18
|
+
const moduleNode = $server.moduleGraph.getModuleById(moduleId);
|
22
19
|
if (moduleNode) {
|
23
|
-
|
24
|
-
|
25
|
-
};
|
26
|
-
const scheduleUpdate = () => {
|
27
|
-
if (options.debounce) {
|
28
|
-
// User wants actual debouncing for rapid updates
|
29
|
-
if (updateTimer)
|
30
|
-
clearTimeout(updateTimer);
|
31
|
-
updateTimer = setTimeout(doUpdate, options.debounce);
|
20
|
+
debug('invalidate', { id: moduleNode.id });
|
21
|
+
$server.moduleGraph.invalidateModule(moduleNode);
|
32
22
|
}
|
33
23
|
else {
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
24
|
+
debug('cannot invalidate', {
|
25
|
+
reason: 'notInModuleGraph',
|
26
|
+
moduleId,
|
27
|
+
hint: 'maybe it was not loaded yet',
|
28
|
+
});
|
39
29
|
}
|
40
30
|
};
|
31
|
+
const scheduleInvalidate = () => {
|
32
|
+
if ($invalidationScheduled)
|
33
|
+
return; // already scheduled
|
34
|
+
$invalidationScheduled = true;
|
35
|
+
if (!$server)
|
36
|
+
return; // server will flush when ready
|
37
|
+
tryInvalidate();
|
38
|
+
};
|
41
39
|
// Helper to get the current data value
|
42
40
|
const getData = () => {
|
43
41
|
if (isRef(options.data)) {
|
@@ -54,38 +52,35 @@ export const create = (options) => {
|
|
54
52
|
effect(() => {
|
55
53
|
// Access data to track dependencies
|
56
54
|
const data = getData();
|
57
|
-
debug('
|
58
|
-
|
59
|
-
if (server) {
|
60
|
-
scheduleUpdate();
|
61
|
-
}
|
55
|
+
debug('effect triggered', { data });
|
56
|
+
scheduleInvalidate();
|
62
57
|
});
|
63
58
|
return {
|
64
59
|
name,
|
65
60
|
configureServer(_server) {
|
66
|
-
|
67
|
-
|
68
|
-
|
61
|
+
debug('hook configureServer');
|
62
|
+
$server = _server;
|
63
|
+
if ($invalidationScheduled) {
|
64
|
+
debug('try invalidate scheduled before server was ready');
|
65
|
+
tryInvalidate();
|
66
|
+
}
|
69
67
|
},
|
70
68
|
resolveId(id) {
|
71
69
|
if (id === moduleId) {
|
72
70
|
return moduleId;
|
73
71
|
}
|
74
72
|
},
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
// Return just the raw JSON string - let the JSON plugin handle the transformation
|
87
|
-
return codec.stringify(data);
|
88
|
-
},
|
73
|
+
// todo make use of Vite's builtin json plugin
|
74
|
+
// for example, call it here somehow
|
75
|
+
load(id) {
|
76
|
+
if (id !== moduleId)
|
77
|
+
return;
|
78
|
+
const data = getData();
|
79
|
+
debug('hook load', { data });
|
80
|
+
return {
|
81
|
+
code: codec.stringify(data),
|
82
|
+
map: null,
|
83
|
+
};
|
89
84
|
},
|
90
85
|
};
|
91
86
|
};
|