@jay-framework/fullstack-component 0.5.0
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 +382 -0
- package/dist/index.cjs +79 -0
- package/dist/index.d.ts +211 -0
- package/dist/index.js +79 -0
- package/package.json +48 -0
package/README.md
ADDED
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
# Jay Full-Stack Component
|
|
2
|
+
|
|
3
|
+
The Jay API for building full-stack components that seamlessly integrate server-side rendering with client-side interactivity in the Jay framework.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
The `@jay-framework/fullstack-component` package provides a fluent builder API for creating components that can:
|
|
8
|
+
|
|
9
|
+
- **Slow Changing Server-side render** with semi-static data
|
|
10
|
+
- **Fast Changing Server-side render** with dynamic data on the server
|
|
11
|
+
- **Client-side interactivity** with reactive state management
|
|
12
|
+
- **Type-safe** component contracts using Jay HTML and Jay Contracts
|
|
13
|
+
- **Context-aware** rendering with server and client contexts
|
|
14
|
+
|
|
15
|
+
## Features
|
|
16
|
+
|
|
17
|
+
- 🔄 **Dual Rendering**: Support for both slow (semi-static) and fast (dynamic) server-side rendering
|
|
18
|
+
- ⚡ **Interactive Client**: Seamless client-side interactivity with reactive signals
|
|
19
|
+
- 🎯 **Type Safety**: Full TypeScript support with generated contracts from Jay HTML
|
|
20
|
+
- 🔧 **Fluent Builder API**: Intuitive chainable API for component configuration
|
|
21
|
+
- 🌐 **Context Support**: Server and client context injection
|
|
22
|
+
- 📦 **URL Parameter Loading**: Built-in support for dynamic URL parameter handling
|
|
23
|
+
- 🚀 **Performance Optimized**: Efficient rendering with partial state updates
|
|
24
|
+
|
|
25
|
+
## Rendering Phases
|
|
26
|
+
|
|
27
|
+
- **Slow Rendering**: Use for static data that doesn't change often
|
|
28
|
+
- **Fast Rendering**: Use for dynamic data that can be cached
|
|
29
|
+
- **Partial Renders**: Only update the parts of the view state that change
|
|
30
|
+
- **Carry Forward**: Pass data between render phases to avoid recomputation
|
|
31
|
+
|
|
32
|
+
| Rendering Phase | Rendered Where | When Rendered | Carry Forward |
|
|
33
|
+
| ---------------------- | -------------- | ------------------------------ | ------------------ |
|
|
34
|
+
| Slowly Changing Render | SSR | Build time or data change time | Slowly → Fast |
|
|
35
|
+
| Fast Changing Render | SSR | Page serving | Fast → Interactive |
|
|
36
|
+
| Interactive Render | CSR | User interaction | - |
|
|
37
|
+
|
|
38
|
+
## Installation
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
npm install @jay-framework/fullstack-component
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Quick Start
|
|
45
|
+
|
|
46
|
+
### 1. Define Your Component Contract
|
|
47
|
+
|
|
48
|
+
For headfull components, create a Jay HTML file (`my-component.jay-html`).
|
|
49
|
+
For headless components, create a Jay Contract file (`my-contract.jay-contract`).
|
|
50
|
+
|
|
51
|
+
#### Headfull Jay-HTML Component
|
|
52
|
+
|
|
53
|
+
```html
|
|
54
|
+
<html>
|
|
55
|
+
<head>
|
|
56
|
+
<script type="application/yaml-jay">
|
|
57
|
+
data:
|
|
58
|
+
id: string
|
|
59
|
+
name: string
|
|
60
|
+
age: number
|
|
61
|
+
address: string
|
|
62
|
+
stars: number
|
|
63
|
+
rating: number
|
|
64
|
+
</script>
|
|
65
|
+
</head>
|
|
66
|
+
<body>
|
|
67
|
+
<div>
|
|
68
|
+
<h1>{name}</h1>
|
|
69
|
+
<p>Age: {age}</p>
|
|
70
|
+
<p>Address: {address}</p>
|
|
71
|
+
<div>
|
|
72
|
+
<span>Stars: {stars}</span>
|
|
73
|
+
<span>Rating: {rating}</span>
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
</body>
|
|
77
|
+
</html>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
#### Headless Jay-Contract
|
|
81
|
+
|
|
82
|
+
```yaml
|
|
83
|
+
name: my-contract
|
|
84
|
+
tags:
|
|
85
|
+
- tag: id
|
|
86
|
+
dataType: string
|
|
87
|
+
- tag: name
|
|
88
|
+
dataType: string
|
|
89
|
+
- tag: age
|
|
90
|
+
dataType: number
|
|
91
|
+
- tag: address
|
|
92
|
+
dataType: string
|
|
93
|
+
- tag: stars
|
|
94
|
+
dataType: number
|
|
95
|
+
- tag: rating
|
|
96
|
+
dataType: number
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 2. Generate Definition Files
|
|
100
|
+
|
|
101
|
+
Run the Jay CLI to generate TypeScript definition files from your Jay HTML or contract files:
|
|
102
|
+
|
|
103
|
+
```shell
|
|
104
|
+
jay-cli definitions <path to your sources>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### 3. Build Your Full-Stack Component
|
|
108
|
+
|
|
109
|
+
```typescript
|
|
110
|
+
import { MyComponentContract } from './my-component.jay-html';
|
|
111
|
+
// or import { MyComponentContract } from './my-component.jay-contract';
|
|
112
|
+
import { makeJayStackComponent, partialRender } from '@jay-framework/fullstack-component';
|
|
113
|
+
import { createJayContext } from '@jay-framework/runtime';
|
|
114
|
+
|
|
115
|
+
// Define your props and contexts
|
|
116
|
+
interface MyComponentProps {}
|
|
117
|
+
|
|
118
|
+
interface MyContext {
|
|
119
|
+
userId: string;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const MyContextMarker = createJayContext<MyContext>();
|
|
123
|
+
|
|
124
|
+
// Create the full-stack component
|
|
125
|
+
export const myComponent = makeJayStackComponent<MyComponentContract>()
|
|
126
|
+
.withProps<MyComponentProps>()
|
|
127
|
+
.withServerContext(MyContextMarker)
|
|
128
|
+
.withSlowlyRender(async (props, myContext) => {
|
|
129
|
+
// Slow rendering - static data that doesn't change often
|
|
130
|
+
return partialRender(
|
|
131
|
+
{
|
|
132
|
+
id: '1',
|
|
133
|
+
name: 'John Doe',
|
|
134
|
+
age: 30,
|
|
135
|
+
address: '123 Main St, City, State',
|
|
136
|
+
},
|
|
137
|
+
{ id: '1' }, // Carry forward data to fast render
|
|
138
|
+
);
|
|
139
|
+
})
|
|
140
|
+
.withFastRender(async (props, myContext) => {
|
|
141
|
+
// Fast rendering - dynamic data that can change
|
|
142
|
+
return partialRender(
|
|
143
|
+
{
|
|
144
|
+
stars: 4.5,
|
|
145
|
+
rating: 92,
|
|
146
|
+
},
|
|
147
|
+
{ id: '1' }, // Carry forward data to interactive
|
|
148
|
+
);
|
|
149
|
+
})
|
|
150
|
+
.withInteractive((props, refs) => {
|
|
151
|
+
// Client-side interactivity
|
|
152
|
+
return {
|
|
153
|
+
render: () => ({
|
|
154
|
+
stars: 4.5,
|
|
155
|
+
rating: 92,
|
|
156
|
+
}),
|
|
157
|
+
};
|
|
158
|
+
});
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## API Reference
|
|
162
|
+
|
|
163
|
+
### Core Functions
|
|
164
|
+
|
|
165
|
+
#### `makeJayStackComponent<Contract>()`
|
|
166
|
+
|
|
167
|
+
Creates a new full-stack component builder with the specified contract type.
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
const component = makeJayStackComponent<MyComponentContract>();
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Full-Stack Component Builder Methods
|
|
174
|
+
|
|
175
|
+
#### `.withProps<PropsType>()`
|
|
176
|
+
|
|
177
|
+
Defines the component's props type.
|
|
178
|
+
Full-stack components that are Jay Stack pages use `PageProps` as the props.
|
|
179
|
+
|
|
180
|
+
```typescript
|
|
181
|
+
makeJayStackComponent<MyComponentContract>().withProps<{ userId: string }>();
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
#### `.withServerContext(...contextMarkers)`
|
|
185
|
+
|
|
186
|
+
Adds server-side context markers for dependency injection.
|
|
187
|
+
|
|
188
|
+
```typescript
|
|
189
|
+
makeJayStackComponent<MyComponentContract>().withServerContext(DatabaseContext, AuthContext);
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
#### `.withClientContext(...contextMarkers)`
|
|
193
|
+
|
|
194
|
+
Adds client-side context markers for dependency injection.
|
|
195
|
+
|
|
196
|
+
```typescript
|
|
197
|
+
makeJayStackComponent<MyComponentContract>().withClientContext(ThemeContext, UserContext);
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
#### `.withLoadParams(loadParams)`
|
|
201
|
+
|
|
202
|
+
Defines how URL parameters are loaded and converted to additional props,
|
|
203
|
+
on top of the props defined in `withProps`.
|
|
204
|
+
|
|
205
|
+
The function receives the server contexts declared using `withServerContext`.
|
|
206
|
+
|
|
207
|
+
The function should return a generator that yields arrays of a subtype of `UrlParams`.
|
|
208
|
+
|
|
209
|
+
```typescript
|
|
210
|
+
interface IdParams extends UrlParams {
|
|
211
|
+
id: string;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
makeJayStackComponent<MyComponentContract>().withLoadParams(
|
|
215
|
+
async function* (contexts): AsyncIterable<IdParams[]> {
|
|
216
|
+
yield [{ id: '1' }, { id: '2' }];
|
|
217
|
+
},
|
|
218
|
+
);
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
#### `.withSlowlyRender(slowlyRender)`
|
|
222
|
+
|
|
223
|
+
Defines the slow rendering function for semi-static data.
|
|
224
|
+
|
|
225
|
+
The function's `props` parameter is a composition of the props from `.withProps`,
|
|
226
|
+
with the subtype of `UrlParams` if using `.withLoadParams`.
|
|
227
|
+
|
|
228
|
+
The function should return one of:
|
|
229
|
+
|
|
230
|
+
- `PartialRender<ViewState, CarryForward>` - for partial rendering
|
|
231
|
+
- `ServerError5xx` - for server errors
|
|
232
|
+
- `Redirect3xx` - for semi-static redirects
|
|
233
|
+
|
|
234
|
+
```typescript
|
|
235
|
+
makeJayStackComponent<MyComponentContract>().withSlowlyRender(async (props, ...contexts) => {
|
|
236
|
+
return partialRender({ someKey: 'value' }, { carryForwardKey: 'data' });
|
|
237
|
+
});
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
#### `.withFastRender(fastRender)`
|
|
241
|
+
|
|
242
|
+
Defines the fast rendering function for dynamic data.
|
|
243
|
+
|
|
244
|
+
The function's `props` parameter is a composition of the props from `.withProps`,
|
|
245
|
+
with the subtype of `UrlParams` if using `.withLoadParams`,
|
|
246
|
+
with the `carryForward` from `.withSlowlyRender` if used.
|
|
247
|
+
|
|
248
|
+
The function should return one of:
|
|
249
|
+
|
|
250
|
+
- `PartialRender<ViewState, CarryForward>` - for partial rendering
|
|
251
|
+
- `ServerError5xx` - for server errors
|
|
252
|
+
- `ClientError4xx` - for client errors
|
|
253
|
+
- `Redirect3xx` - for dynamic redirects
|
|
254
|
+
|
|
255
|
+
```typescript
|
|
256
|
+
makeJayStackComponent<MyComponentContract>().withFastRender(async (props, ...contexts) => {
|
|
257
|
+
return partialRender({ anotherKey: 'value' }, { carryForwardKey: 'data' });
|
|
258
|
+
});
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
#### `.withInteractive(componentConstructor)`
|
|
262
|
+
|
|
263
|
+
Defines the client-side interactive component.
|
|
264
|
+
The callback is a Jay component constructor function with `props` and `refs`.
|
|
265
|
+
|
|
266
|
+
The function's `props` parameter is a composition of the props from `.withProps`,
|
|
267
|
+
with the subtype of `UrlParams` if using `.withLoadParams`,
|
|
268
|
+
with the `carryForward` from `.withFastRender` if used.
|
|
269
|
+
|
|
270
|
+
The function is expected to return an object with a reactive `render` function as well as the client component API.
|
|
271
|
+
|
|
272
|
+
```typescript
|
|
273
|
+
makeJayStackComponent<MyComponentContract>().withInteractive((props, refs) => {
|
|
274
|
+
return {
|
|
275
|
+
render: () => ({ interactiveData: 'value' }),
|
|
276
|
+
};
|
|
277
|
+
});
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
## Render Response Builders
|
|
281
|
+
|
|
282
|
+
### `partialRender<ViewState, CarryForward>`
|
|
283
|
+
|
|
284
|
+
Creates a successful partial render result with data to carry forward.
|
|
285
|
+
|
|
286
|
+
```typescript
|
|
287
|
+
return partialRender({ anotherKey: 'value' }, { carryForwardKey: 'data' });
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### `serverError5xx(status)`
|
|
291
|
+
|
|
292
|
+
Creates a server error response (5xx status codes).
|
|
293
|
+
|
|
294
|
+
```typescript
|
|
295
|
+
return serverError5xx(503);
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### `clientError4xx(status)`
|
|
299
|
+
|
|
300
|
+
Creates a client error response (4xx status codes).
|
|
301
|
+
|
|
302
|
+
```typescript
|
|
303
|
+
return clientError4xx(403);
|
|
304
|
+
// or
|
|
305
|
+
return notFound();
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### `redirect3xx(status, location)`
|
|
309
|
+
|
|
310
|
+
Creates a redirect response.
|
|
311
|
+
|
|
312
|
+
```typescript
|
|
313
|
+
return redirect3xx(301, 'http://some.domain.com');
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
## Advanced Examples
|
|
317
|
+
|
|
318
|
+
### A Product Page with URL Parameters
|
|
319
|
+
|
|
320
|
+
```typescript
|
|
321
|
+
import {
|
|
322
|
+
makeJayStackComponent,
|
|
323
|
+
PageProps,
|
|
324
|
+
partialRender,
|
|
325
|
+
UrlParams,
|
|
326
|
+
} from '@jay-framework/fullstack-component';
|
|
327
|
+
import { render, PageElementRefs } from './page.jay-html';
|
|
328
|
+
import { Props } from '@jay-framework/component';
|
|
329
|
+
import { getProductBySlug, getProducts } from '../../../products-database';
|
|
330
|
+
import { getAvailableUnits } from '../../../inventory-service';
|
|
331
|
+
|
|
332
|
+
interface ProductPageParams extends UrlParams {
|
|
333
|
+
slug: string;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
interface ProductsCarryForward {
|
|
337
|
+
productId: string;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
interface ProductAndInventoryCarryForward {
|
|
341
|
+
productId: string;
|
|
342
|
+
inStock: boolean;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
async function* urlLoader(): AsyncIterable<ProductPageParams[]> {
|
|
346
|
+
const products = await getProducts();
|
|
347
|
+
yield products.map(({ slug }) => ({ slug }));
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
async function renderSlowlyChanging(props: PageProps & ProductPageParams) {
|
|
351
|
+
const { name, sku, price, id } = await getProductBySlug(props.slug);
|
|
352
|
+
return partialRender({ name, sku, price, id }, { productId: id });
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
async function renderFastChanging(props: PageProps & ProductPageParams & ProductsCarryForward) {
|
|
356
|
+
const availableProducts = await getAvailableUnits(props.productId);
|
|
357
|
+
const inStock = availableProducts > 0;
|
|
358
|
+
return partialRender(
|
|
359
|
+
{ inStock },
|
|
360
|
+
{
|
|
361
|
+
productId: props.productId,
|
|
362
|
+
inStock,
|
|
363
|
+
},
|
|
364
|
+
);
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
function ProductsPageConstructor(
|
|
368
|
+
props: Props<PageProps & ProductPageParams & ProductAndInventoryCarryForward>,
|
|
369
|
+
refs: PageElementRefs,
|
|
370
|
+
) {
|
|
371
|
+
return {
|
|
372
|
+
render: () => ({}),
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
export const page = makeJayStackComponent<typeof render>()
|
|
377
|
+
.withProps<PageProps>()
|
|
378
|
+
.withLoadParams(urlLoader)
|
|
379
|
+
.withSlowlyRender(renderSlowlyChanging)
|
|
380
|
+
.withFastRender(renderFastChanging)
|
|
381
|
+
.withInteractive(ProductsPageConstructor);
|
|
382
|
+
```
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4
|
+
var __publicField = (obj, key, value) => {
|
|
5
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
6
|
+
return value;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
9
|
+
function serverError5xx(status) {
|
|
10
|
+
return {
|
|
11
|
+
kind: "ServerError",
|
|
12
|
+
status
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function clientError4xx(status) {
|
|
16
|
+
return {
|
|
17
|
+
kind: "ClientError",
|
|
18
|
+
status
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function notFound() {
|
|
22
|
+
return clientError4xx(404);
|
|
23
|
+
}
|
|
24
|
+
function redirect3xx(status, location) {
|
|
25
|
+
return {
|
|
26
|
+
kind: "redirect",
|
|
27
|
+
status,
|
|
28
|
+
location
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function partialRender(rendered, carryForward) {
|
|
32
|
+
return { kind: "PartialRender", rendered, carryForward };
|
|
33
|
+
}
|
|
34
|
+
class BuilderImplementation {
|
|
35
|
+
constructor() {
|
|
36
|
+
__publicField(this, "serverContexts", []);
|
|
37
|
+
__publicField(this, "clientContexts", []);
|
|
38
|
+
__publicField(this, "loadParams");
|
|
39
|
+
__publicField(this, "slowlyRender");
|
|
40
|
+
__publicField(this, "fastRender");
|
|
41
|
+
__publicField(this, "comp");
|
|
42
|
+
}
|
|
43
|
+
withProps() {
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
withServerContext(...contextMarkers) {
|
|
47
|
+
this.serverContexts = contextMarkers;
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
withClientContext(...contextMarkers) {
|
|
51
|
+
this.clientContexts = contextMarkers;
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
withLoadParams(loadParams) {
|
|
55
|
+
this.loadParams = loadParams;
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
withSlowlyRender(slowlyRender) {
|
|
59
|
+
this.slowlyRender = slowlyRender;
|
|
60
|
+
return this;
|
|
61
|
+
}
|
|
62
|
+
withFastRender(fastRender) {
|
|
63
|
+
this.fastRender = fastRender;
|
|
64
|
+
return this;
|
|
65
|
+
}
|
|
66
|
+
withInteractive(comp) {
|
|
67
|
+
this.comp = comp;
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function makeJayStackComponent() {
|
|
72
|
+
return new BuilderImplementation();
|
|
73
|
+
}
|
|
74
|
+
exports.clientError4xx = clientError4xx;
|
|
75
|
+
exports.makeJayStackComponent = makeJayStackComponent;
|
|
76
|
+
exports.notFound = notFound;
|
|
77
|
+
exports.partialRender = partialRender;
|
|
78
|
+
exports.redirect3xx = redirect3xx;
|
|
79
|
+
exports.serverError5xx = serverError5xx;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { JayComponentCore, ContextMarkers, ComponentConstructor } from '@jay-framework/component';
|
|
2
|
+
import { JayContract, ExtractViewState, ExtractRefs } from '@jay-framework/runtime';
|
|
3
|
+
import { Getter, Setter } from '@jay-framework/reactive';
|
|
4
|
+
|
|
5
|
+
interface PageProps {
|
|
6
|
+
language: string;
|
|
7
|
+
url: string;
|
|
8
|
+
}
|
|
9
|
+
type UrlParams = Record<string, string>;
|
|
10
|
+
interface ServerError5xx {
|
|
11
|
+
kind: 'ServerError';
|
|
12
|
+
status: number;
|
|
13
|
+
}
|
|
14
|
+
interface ClientError4xx {
|
|
15
|
+
kind: 'ClientError';
|
|
16
|
+
status: number;
|
|
17
|
+
}
|
|
18
|
+
interface Redirect3xx {
|
|
19
|
+
kind: 'redirect';
|
|
20
|
+
status: number;
|
|
21
|
+
location: string;
|
|
22
|
+
}
|
|
23
|
+
interface PartialRender<ViewState extends object, CarryForward> {
|
|
24
|
+
kind: 'PartialRender';
|
|
25
|
+
rendered: Partial<ViewState>;
|
|
26
|
+
carryForward: CarryForward;
|
|
27
|
+
}
|
|
28
|
+
type SlowlyRenderResult<ViewState extends object, CarryForward> = PartialRender<ViewState, CarryForward> | ServerError5xx | ClientError4xx | Redirect3xx;
|
|
29
|
+
type AnySlowlyRenderResult = SlowlyRenderResult<object, object>;
|
|
30
|
+
type FastRenderResult<ViewState extends object, CarryForward> = PartialRender<ViewState, CarryForward> | ServerError5xx | ClientError4xx | Redirect3xx;
|
|
31
|
+
type AnyFastRenderResult = FastRenderResult<object, object>;
|
|
32
|
+
type LoadParams<ServerContexts, Params extends UrlParams> = (contexts: ServerContexts) => AsyncIterable<Params[]>;
|
|
33
|
+
type RenderSlowly<ServerContexts extends Array<object>, PropsT extends object, StaticViewState extends object, SlowlyCarryForward> = (props: PropsT, ...contexts: ServerContexts) => Promise<SlowlyRenderResult<StaticViewState, SlowlyCarryForward>>;
|
|
34
|
+
type RenderFast<ServerContexts extends Array<object>, PropsT extends object, DynamicViewState extends object, FastCarryForward> = (props: PropsT, ...contexts: ServerContexts) => Promise<FastRenderResult<DynamicViewState, FastCarryForward>>;
|
|
35
|
+
interface JayStackComponentDefinition<StaticViewState extends object, ViewState extends object, Refs extends object, ServerContexts extends Array<any>, ClientContexts extends Array<any>, PropsT extends object, Params extends UrlParams, CompCore extends JayComponentCore<PropsT, ViewState>> {
|
|
36
|
+
serverContexts: ContextMarkers<ServerContexts>;
|
|
37
|
+
clientContexts: ContextMarkers<ClientContexts>;
|
|
38
|
+
loadParams: LoadParams<ServerContexts, Params>;
|
|
39
|
+
slowlyRender: RenderSlowly<ServerContexts, PropsT, StaticViewState, any>;
|
|
40
|
+
fastRender: RenderFast<ServerContexts, PropsT, ViewState, any>;
|
|
41
|
+
comp: ComponentConstructor<PropsT, Refs, ViewState, ClientContexts, CompCore>;
|
|
42
|
+
}
|
|
43
|
+
type AnyJayStackComponentDefinition = JayStackComponentDefinition<object, object, object, object[], object[], object, UrlParams, any>;
|
|
44
|
+
|
|
45
|
+
declare function serverError5xx(status: number): ServerError5xx;
|
|
46
|
+
declare function clientError4xx(status: number): ClientError4xx;
|
|
47
|
+
declare function notFound(): ClientError4xx;
|
|
48
|
+
declare function redirect3xx(status: number, location: string): Redirect3xx;
|
|
49
|
+
declare function partialRender<ViewState extends object, CarryForward>(rendered: Partial<ViewState>, carryForward: CarryForward): PartialRender<ViewState, CarryForward>;
|
|
50
|
+
|
|
51
|
+
type BuilderStates = 'Props' | 'ServerContexts' | 'ClientContexts' | 'UrlLoader' | 'SlowlyRender' | 'FastRender' | 'InteractiveRender' | 'Done';
|
|
52
|
+
type Signals<T extends object> = {
|
|
53
|
+
[K in keyof T]: K extends string ? [Getter<T[K]>, Setter<T[K]>] : T[K];
|
|
54
|
+
};
|
|
55
|
+
type Builder<State extends BuilderStates, StaticViewState extends object, ViewState extends object, Refs extends object, ServerContexts extends Array<any>, ClientContexts extends Array<any>, PropsT extends object, Params extends UrlParams, CompCore extends JayComponentCore<PropsT, ViewState>> = State extends 'Props' ? JayStackComponentDefinition<StaticViewState, ViewState, Refs, ServerContexts, ClientContexts, PropsT, Params, CompCore> & {
|
|
56
|
+
withProps<NewPropsT extends object>(): Builder<'ServerContexts', StaticViewState, ViewState, Refs, ServerContexts, ClientContexts, NewPropsT, Params, JayComponentCore<NewPropsT, ViewState>>;
|
|
57
|
+
} : State extends 'ServerContexts' ? JayStackComponentDefinition<StaticViewState, ViewState, Refs, ServerContexts, ClientContexts, PropsT, Params, CompCore> & {
|
|
58
|
+
withServerContext<NewServerContexts extends Array<any>>(...contextMarkers: ContextMarkers<NewServerContexts>): Builder<'ClientContexts', StaticViewState, ViewState, Refs, NewServerContexts, ClientContexts, PropsT, Params, CompCore>;
|
|
59
|
+
withClientContext<NewClientContexts extends Array<any>>(...contextMarkers: ContextMarkers<NewClientContexts>): Builder<'UrlLoader', StaticViewState, ViewState, Refs, ServerContexts, NewClientContexts, PropsT, Params, CompCore>;
|
|
60
|
+
withLoadParams<NewParams extends UrlParams>(loadParams: LoadParams<ServerContexts, NewParams>): Builder<'SlowlyRender', StaticViewState, ViewState, Refs, ServerContexts, ClientContexts, PropsT & NewParams, NewParams, CompCore>;
|
|
61
|
+
withSlowlyRender<NewStaticViewState extends Partial<ViewState>, NewCarryForward extends object>(slowlyRender: RenderSlowly<ServerContexts, PropsT, NewStaticViewState, NewCarryForward>): Builder<'FastRender', NewStaticViewState, Partial<ViewState> & Omit<ViewState, keyof NewStaticViewState>, Refs, [
|
|
62
|
+
NewCarryForward,
|
|
63
|
+
...ServerContexts
|
|
64
|
+
], ClientContexts, PropsT, Params, JayComponentCore<PropsT, Partial<ViewState> & Omit<ViewState, keyof NewStaticViewState>>>;
|
|
65
|
+
withFastRender<NewCarryForward extends object>(fastRender: RenderFast<ServerContexts, PropsT, ViewState, NewCarryForward>): Builder<'InteractiveRender', StaticViewState, Partial<ViewState>, Refs, ServerContexts, [
|
|
66
|
+
Signals<NewCarryForward>,
|
|
67
|
+
...ClientContexts
|
|
68
|
+
], PropsT, Params, JayComponentCore<PropsT, Partial<ViewState>>>;
|
|
69
|
+
withInteractive(comp: ComponentConstructor<PropsT, Refs, ViewState, ClientContexts, CompCore>): Builder<'Done', StaticViewState, ViewState, Refs, ServerContexts, ClientContexts, PropsT, Params, CompCore>;
|
|
70
|
+
} : State extends 'ClientContexts' ? JayStackComponentDefinition<StaticViewState, ViewState, Refs, ServerContexts, ClientContexts, PropsT, Params, CompCore> & {
|
|
71
|
+
withClientContext<NewClientContexts extends Array<any>>(...contextMarkers: ContextMarkers<NewClientContexts>): Builder<'UrlLoader', StaticViewState, ViewState, Refs, ServerContexts, NewClientContexts, PropsT, Params, CompCore>;
|
|
72
|
+
withLoadParams<NewParams extends UrlParams>(loadParams: LoadParams<ServerContexts, NewParams>): Builder<'SlowlyRender', StaticViewState, ViewState, Refs, ServerContexts, ClientContexts, PropsT & NewParams, NewParams, CompCore>;
|
|
73
|
+
withSlowlyRender<NewStaticViewState extends Partial<ViewState>, NewCarryForward extends object>(slowlyRender: RenderSlowly<ServerContexts, PropsT, NewStaticViewState, NewCarryForward>): Builder<'FastRender', NewStaticViewState, Partial<ViewState> & Omit<ViewState, keyof NewStaticViewState>, Refs, [
|
|
74
|
+
NewCarryForward,
|
|
75
|
+
...ServerContexts
|
|
76
|
+
], ClientContexts, PropsT, Params, JayComponentCore<PropsT, Partial<ViewState> & Omit<ViewState, keyof NewStaticViewState>>>;
|
|
77
|
+
withFastRender<NewCarryForward extends object>(fastRender: RenderFast<ServerContexts, PropsT, ViewState, NewCarryForward>): Builder<'InteractiveRender', StaticViewState, Partial<ViewState>, Refs, ServerContexts, [
|
|
78
|
+
Signals<NewCarryForward>,
|
|
79
|
+
...ClientContexts
|
|
80
|
+
], PropsT, Params, JayComponentCore<PropsT, Partial<ViewState>>>;
|
|
81
|
+
withInteractive(comp: ComponentConstructor<PropsT, Refs, ViewState, ClientContexts, CompCore>): Builder<'Done', StaticViewState, ViewState, Refs, ServerContexts, ClientContexts, PropsT, Params, CompCore>;
|
|
82
|
+
} : State extends 'UrlLoader' ? JayStackComponentDefinition<StaticViewState, ViewState, Refs, ServerContexts, ClientContexts, PropsT, Params, CompCore> & {
|
|
83
|
+
withLoadParams<NewParams extends UrlParams>(loadParams: LoadParams<ServerContexts, NewParams>): Builder<'SlowlyRender', StaticViewState, ViewState, Refs, ServerContexts, ClientContexts, PropsT & NewParams, NewParams, CompCore>;
|
|
84
|
+
withSlowlyRender<NewStaticViewState extends Partial<ViewState>, NewCarryForward extends object>(slowlyRender: RenderSlowly<ServerContexts, PropsT, NewStaticViewState, NewCarryForward>): Builder<'FastRender', NewStaticViewState, Partial<ViewState> & Omit<ViewState, keyof NewStaticViewState>, Refs, [
|
|
85
|
+
NewCarryForward,
|
|
86
|
+
...ServerContexts
|
|
87
|
+
], ClientContexts, PropsT, Params, JayComponentCore<PropsT, Partial<ViewState> & Omit<ViewState, keyof NewStaticViewState>>>;
|
|
88
|
+
withFastRender<NewCarryForward extends object>(fastRender: RenderFast<ServerContexts, PropsT, ViewState, NewCarryForward>): Builder<'InteractiveRender', StaticViewState, Partial<ViewState>, Refs, ServerContexts, [
|
|
89
|
+
Signals<NewCarryForward>,
|
|
90
|
+
...ClientContexts
|
|
91
|
+
], PropsT, Params, JayComponentCore<PropsT, Partial<ViewState>>>;
|
|
92
|
+
withInteractive(comp: ComponentConstructor<PropsT, Refs, ViewState, ClientContexts, CompCore>): Builder<'Done', StaticViewState, ViewState, Refs, ServerContexts, ClientContexts, PropsT, Params, CompCore>;
|
|
93
|
+
} : State extends 'SlowlyRender' ? JayStackComponentDefinition<StaticViewState, ViewState, Refs, ServerContexts, ClientContexts, PropsT, Params, CompCore> & {
|
|
94
|
+
withSlowlyRender<NewStaticViewState extends Partial<ViewState>, NewCarryForward extends object>(slowlyRender: RenderSlowly<ServerContexts, PropsT, NewStaticViewState, NewCarryForward>): Builder<'FastRender', NewStaticViewState, Partial<ViewState> & Omit<ViewState, keyof NewStaticViewState>, Refs, [
|
|
95
|
+
NewCarryForward,
|
|
96
|
+
...ServerContexts
|
|
97
|
+
], ClientContexts, PropsT, Params, JayComponentCore<PropsT, Partial<ViewState> & Omit<ViewState, keyof NewStaticViewState>>>;
|
|
98
|
+
withFastRender<NewCarryForward extends object>(fastRender: RenderFast<ServerContexts, PropsT, ViewState, NewCarryForward>): Builder<'InteractiveRender', StaticViewState, Partial<ViewState>, Refs, ServerContexts, [
|
|
99
|
+
Signals<NewCarryForward>,
|
|
100
|
+
...ClientContexts
|
|
101
|
+
], PropsT, Params, JayComponentCore<PropsT, Partial<ViewState>>>;
|
|
102
|
+
withInteractive(comp: ComponentConstructor<PropsT, Refs, ViewState, ClientContexts, CompCore>): Builder<'Done', StaticViewState, ViewState, Refs, ServerContexts, ClientContexts, PropsT, Params, CompCore>;
|
|
103
|
+
} : State extends 'FastRender' ? JayStackComponentDefinition<StaticViewState, ViewState, Refs, ServerContexts, ClientContexts, PropsT, Params, CompCore> & {
|
|
104
|
+
withFastRender<NewCarryForward extends object>(fastRender: RenderFast<ServerContexts, PropsT, ViewState, NewCarryForward>): Builder<'InteractiveRender', StaticViewState, Partial<ViewState>, Refs, ServerContexts, [
|
|
105
|
+
Signals<NewCarryForward>,
|
|
106
|
+
...ClientContexts
|
|
107
|
+
], PropsT, Params, JayComponentCore<PropsT, Partial<ViewState>>>;
|
|
108
|
+
withInteractive(comp: ComponentConstructor<PropsT, Refs, ViewState, ClientContexts, CompCore>): Builder<'Done', StaticViewState, ViewState, Refs, ServerContexts, ClientContexts, PropsT, Params, CompCore>;
|
|
109
|
+
} : State extends 'InteractiveRender' ? JayStackComponentDefinition<StaticViewState, ViewState, Refs, ServerContexts, ClientContexts, PropsT, Params, CompCore> & {
|
|
110
|
+
withInteractive(comp: ComponentConstructor<PropsT, Refs, ViewState, ClientContexts, CompCore>): Builder<'Done', StaticViewState, ViewState, Refs, ServerContexts, ClientContexts, PropsT, Params, CompCore>;
|
|
111
|
+
} : JayStackComponentDefinition<StaticViewState, ViewState, Refs, ServerContexts, ClientContexts, PropsT, Params, CompCore>;
|
|
112
|
+
declare function makeJayStackComponent<Render extends JayContract<any, any>>(): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, [], [], {}, {}, JayComponentCore<object, ExtractViewState<Render>>> & {
|
|
113
|
+
withProps<NewPropsT extends object>(): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, [], [], NewPropsT, {}, JayComponentCore<NewPropsT, ExtractViewState<Render>>> & {
|
|
114
|
+
withServerContext<NewServerContexts extends any[]>(...contextMarkers: ContextMarkers<NewServerContexts>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, NewServerContexts, [], NewPropsT, {}, JayComponentCore<NewPropsT, ExtractViewState<Render>>> & {
|
|
115
|
+
withClientContext<NewClientContexts extends any[]>(...contextMarkers: ContextMarkers<NewClientContexts>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, NewServerContexts, NewClientContexts, NewPropsT, {}, JayComponentCore<NewPropsT, ExtractViewState<Render>>> & {
|
|
116
|
+
withLoadParams<NewParams extends UrlParams>(loadParams: LoadParams<NewServerContexts, NewParams>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, NewServerContexts, NewClientContexts, NewPropsT & NewParams, NewParams, JayComponentCore<NewPropsT, ExtractViewState<Render>>> & {
|
|
117
|
+
withSlowlyRender<NewStaticViewState extends Partial<ExtractViewState<Render>>, NewCarryForward extends object>(slowlyRender: RenderSlowly<NewServerContexts, NewPropsT & NewParams, NewStaticViewState, NewCarryForward>): JayStackComponentDefinition<NewStaticViewState, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>, ExtractRefs<Render>, [NewCarryForward, ...NewServerContexts], NewClientContexts, NewPropsT & NewParams, NewParams, JayComponentCore<NewPropsT & NewParams, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>>> & {
|
|
118
|
+
withFastRender<NewCarryForward_1 extends object>(fastRender: RenderFast<[NewCarryForward, ...NewServerContexts], NewPropsT & NewParams, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>, NewCarryForward_1>): JayStackComponentDefinition<NewStaticViewState, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>>, ExtractRefs<Render>, [NewCarryForward, ...NewServerContexts], [Signals<NewCarryForward_1>, ...NewClientContexts], NewPropsT & NewParams, NewParams, JayComponentCore<NewPropsT & NewParams, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>>>> & {
|
|
119
|
+
withInteractive(comp: ComponentConstructor<NewPropsT & NewParams, ExtractRefs<Render>, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>>, [Signals<NewCarryForward_1>, ...NewClientContexts], JayComponentCore<NewPropsT & NewParams, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>>>>): JayStackComponentDefinition<NewStaticViewState, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>>, ExtractRefs<Render>, [NewCarryForward, ...NewServerContexts], [Signals<NewCarryForward_1>, ...NewClientContexts], NewPropsT & NewParams, NewParams, JayComponentCore<NewPropsT & NewParams, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>>>>;
|
|
120
|
+
};
|
|
121
|
+
withInteractive(comp: ComponentConstructor<NewPropsT & NewParams, ExtractRefs<Render>, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>, NewClientContexts, JayComponentCore<NewPropsT & NewParams, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>>>): JayStackComponentDefinition<NewStaticViewState, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>, ExtractRefs<Render>, [NewCarryForward, ...NewServerContexts], NewClientContexts, NewPropsT & NewParams, NewParams, JayComponentCore<NewPropsT & NewParams, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>>>;
|
|
122
|
+
};
|
|
123
|
+
withFastRender<NewCarryForward_2 extends object>(fastRender: RenderFast<NewServerContexts, NewPropsT & NewParams, ExtractViewState<Render>, NewCarryForward_2>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, NewServerContexts, [Signals<NewCarryForward_2>, ...NewClientContexts], NewPropsT & NewParams, NewParams, JayComponentCore<NewPropsT & NewParams, Partial<ExtractViewState<Render>>>> & {
|
|
124
|
+
withInteractive(comp: ComponentConstructor<NewPropsT & NewParams, ExtractRefs<Render>, Partial<ExtractViewState<Render>>, [Signals<NewCarryForward_2>, ...NewClientContexts], JayComponentCore<NewPropsT & NewParams, Partial<ExtractViewState<Render>>>>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, NewServerContexts, [Signals<NewCarryForward_2>, ...NewClientContexts], NewPropsT & NewParams, NewParams, JayComponentCore<NewPropsT & NewParams, Partial<ExtractViewState<Render>>>>;
|
|
125
|
+
};
|
|
126
|
+
withInteractive(comp: ComponentConstructor<NewPropsT & NewParams, ExtractRefs<Render>, ExtractViewState<Render>, NewClientContexts, JayComponentCore<NewPropsT, ExtractViewState<Render>>>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, NewServerContexts, NewClientContexts, NewPropsT & NewParams, NewParams, JayComponentCore<NewPropsT, ExtractViewState<Render>>>;
|
|
127
|
+
};
|
|
128
|
+
withSlowlyRender<NewStaticViewState_1 extends Partial<ExtractViewState<Render>>, NewCarryForward_3 extends object>(slowlyRender: RenderSlowly<NewServerContexts, NewPropsT, NewStaticViewState_1, NewCarryForward_3>): JayStackComponentDefinition<NewStaticViewState_1, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>, ExtractRefs<Render>, [NewCarryForward_3, ...NewServerContexts], NewClientContexts, NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>>> & {
|
|
129
|
+
withFastRender<NewCarryForward_4 extends object>(fastRender: RenderFast<[NewCarryForward_3, ...NewServerContexts], NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>, NewCarryForward_4>): JayStackComponentDefinition<NewStaticViewState_1, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>>, ExtractRefs<Render>, [NewCarryForward_3, ...NewServerContexts], [Signals<NewCarryForward_4>, ...NewClientContexts], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>>>> & {
|
|
130
|
+
withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>>, [Signals<NewCarryForward_4>, ...NewClientContexts], JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>>>>): JayStackComponentDefinition<NewStaticViewState_1, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>>, ExtractRefs<Render>, [NewCarryForward_3, ...NewServerContexts], [Signals<NewCarryForward_4>, ...NewClientContexts], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>>>>;
|
|
131
|
+
};
|
|
132
|
+
withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>, NewClientContexts, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>>>): JayStackComponentDefinition<NewStaticViewState_1, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>, ExtractRefs<Render>, [NewCarryForward_3, ...NewServerContexts], NewClientContexts, NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>>>;
|
|
133
|
+
};
|
|
134
|
+
withFastRender<NewCarryForward_5 extends object>(fastRender: RenderFast<NewServerContexts, NewPropsT, ExtractViewState<Render>, NewCarryForward_5>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, NewServerContexts, [Signals<NewCarryForward_5>, ...NewClientContexts], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>> & {
|
|
135
|
+
withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<ExtractViewState<Render>>, [Signals<NewCarryForward_5>, ...NewClientContexts], JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, NewServerContexts, [Signals<NewCarryForward_5>, ...NewClientContexts], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>>;
|
|
136
|
+
};
|
|
137
|
+
withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, ExtractViewState<Render>, NewClientContexts, JayComponentCore<NewPropsT, ExtractViewState<Render>>>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, NewServerContexts, NewClientContexts, NewPropsT, {}, JayComponentCore<NewPropsT, ExtractViewState<Render>>>;
|
|
138
|
+
};
|
|
139
|
+
withLoadParams<NewParams_1 extends UrlParams>(loadParams: LoadParams<NewServerContexts, NewParams_1>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, NewServerContexts, [], NewPropsT & NewParams_1, NewParams_1, JayComponentCore<NewPropsT, ExtractViewState<Render>>> & {
|
|
140
|
+
withSlowlyRender<NewStaticViewState_2 extends Partial<ExtractViewState<Render>>, NewCarryForward_6 extends object>(slowlyRender: RenderSlowly<NewServerContexts, NewPropsT & NewParams_1, NewStaticViewState_2, NewCarryForward_6>): JayStackComponentDefinition<NewStaticViewState_2, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>, ExtractRefs<Render>, [NewCarryForward_6, ...NewServerContexts], [], NewPropsT & NewParams_1, NewParams_1, JayComponentCore<NewPropsT & NewParams_1, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>>> & {
|
|
141
|
+
withFastRender<NewCarryForward_7 extends object>(fastRender: RenderFast<[NewCarryForward_6, ...NewServerContexts], NewPropsT & NewParams_1, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>, NewCarryForward_7>): JayStackComponentDefinition<NewStaticViewState_2, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>>, ExtractRefs<Render>, [NewCarryForward_6, ...NewServerContexts], [Signals<NewCarryForward_7>], NewPropsT & NewParams_1, NewParams_1, JayComponentCore<NewPropsT & NewParams_1, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>>>> & {
|
|
142
|
+
withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_1, ExtractRefs<Render>, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>>, [Signals<NewCarryForward_7>], JayComponentCore<NewPropsT & NewParams_1, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>>>>): JayStackComponentDefinition<NewStaticViewState_2, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>>, ExtractRefs<Render>, [NewCarryForward_6, ...NewServerContexts], [Signals<NewCarryForward_7>], NewPropsT & NewParams_1, NewParams_1, JayComponentCore<NewPropsT & NewParams_1, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>>>>;
|
|
143
|
+
};
|
|
144
|
+
withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_1, ExtractRefs<Render>, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>, [], JayComponentCore<NewPropsT & NewParams_1, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>>>): JayStackComponentDefinition<NewStaticViewState_2, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>, ExtractRefs<Render>, [NewCarryForward_6, ...NewServerContexts], [], NewPropsT & NewParams_1, NewParams_1, JayComponentCore<NewPropsT & NewParams_1, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>>>;
|
|
145
|
+
};
|
|
146
|
+
withFastRender<NewCarryForward_8 extends object>(fastRender: RenderFast<NewServerContexts, NewPropsT & NewParams_1, ExtractViewState<Render>, NewCarryForward_8>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, NewServerContexts, [Signals<NewCarryForward_8>], NewPropsT & NewParams_1, NewParams_1, JayComponentCore<NewPropsT & NewParams_1, Partial<ExtractViewState<Render>>>> & {
|
|
147
|
+
withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_1, ExtractRefs<Render>, Partial<ExtractViewState<Render>>, [Signals<NewCarryForward_8>], JayComponentCore<NewPropsT & NewParams_1, Partial<ExtractViewState<Render>>>>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, NewServerContexts, [Signals<NewCarryForward_8>], NewPropsT & NewParams_1, NewParams_1, JayComponentCore<NewPropsT & NewParams_1, Partial<ExtractViewState<Render>>>>;
|
|
148
|
+
};
|
|
149
|
+
withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_1, ExtractRefs<Render>, ExtractViewState<Render>, [], JayComponentCore<NewPropsT, ExtractViewState<Render>>>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, NewServerContexts, [], NewPropsT & NewParams_1, NewParams_1, JayComponentCore<NewPropsT, ExtractViewState<Render>>>;
|
|
150
|
+
};
|
|
151
|
+
withSlowlyRender<NewStaticViewState_3 extends Partial<ExtractViewState<Render>>, NewCarryForward_9 extends object>(slowlyRender: RenderSlowly<NewServerContexts, NewPropsT, NewStaticViewState_3, NewCarryForward_9>): JayStackComponentDefinition<NewStaticViewState_3, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>, ExtractRefs<Render>, [NewCarryForward_9, ...NewServerContexts], [], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>>> & {
|
|
152
|
+
withFastRender<NewCarryForward_10 extends object>(fastRender: RenderFast<[NewCarryForward_9, ...NewServerContexts], NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>, NewCarryForward_10>): JayStackComponentDefinition<NewStaticViewState_3, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>>, ExtractRefs<Render>, [NewCarryForward_9, ...NewServerContexts], [Signals<NewCarryForward_10>], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>>>> & {
|
|
153
|
+
withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>>, [Signals<NewCarryForward_10>], JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>>>>): JayStackComponentDefinition<NewStaticViewState_3, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>>, ExtractRefs<Render>, [NewCarryForward_9, ...NewServerContexts], [Signals<NewCarryForward_10>], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>>>>;
|
|
154
|
+
};
|
|
155
|
+
withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>, [], JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>>>): JayStackComponentDefinition<NewStaticViewState_3, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>, ExtractRefs<Render>, [NewCarryForward_9, ...NewServerContexts], [], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>>>;
|
|
156
|
+
};
|
|
157
|
+
withFastRender<NewCarryForward_11 extends object>(fastRender: RenderFast<NewServerContexts, NewPropsT, ExtractViewState<Render>, NewCarryForward_11>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, NewServerContexts, [Signals<NewCarryForward_11>], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>> & {
|
|
158
|
+
withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<ExtractViewState<Render>>, [Signals<NewCarryForward_11>], JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, NewServerContexts, [Signals<NewCarryForward_11>], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>>;
|
|
159
|
+
};
|
|
160
|
+
withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, ExtractViewState<Render>, [], JayComponentCore<NewPropsT, ExtractViewState<Render>>>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, NewServerContexts, [], NewPropsT, {}, JayComponentCore<NewPropsT, ExtractViewState<Render>>>;
|
|
161
|
+
};
|
|
162
|
+
withClientContext<NewClientContexts_1 extends any[]>(...contextMarkers: ContextMarkers<NewClientContexts_1>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, [], NewClientContexts_1, NewPropsT, {}, JayComponentCore<NewPropsT, ExtractViewState<Render>>> & {
|
|
163
|
+
withLoadParams<NewParams_2 extends UrlParams>(loadParams: LoadParams<[], NewParams_2>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, [], NewClientContexts_1, NewPropsT & NewParams_2, NewParams_2, JayComponentCore<NewPropsT, ExtractViewState<Render>>> & {
|
|
164
|
+
withSlowlyRender<NewStaticViewState_4 extends Partial<ExtractViewState<Render>>, NewCarryForward_12 extends object>(slowlyRender: RenderSlowly<[], NewPropsT & NewParams_2, NewStaticViewState_4, NewCarryForward_12>): JayStackComponentDefinition<NewStaticViewState_4, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>, ExtractRefs<Render>, [NewCarryForward_12], NewClientContexts_1, NewPropsT & NewParams_2, NewParams_2, JayComponentCore<NewPropsT & NewParams_2, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>>> & {
|
|
165
|
+
withFastRender<NewCarryForward_13 extends object>(fastRender: RenderFast<[NewCarryForward_12], NewPropsT & NewParams_2, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>, NewCarryForward_13>): JayStackComponentDefinition<NewStaticViewState_4, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>>, ExtractRefs<Render>, [NewCarryForward_12], [Signals<NewCarryForward_13>, ...NewClientContexts_1], NewPropsT & NewParams_2, NewParams_2, JayComponentCore<NewPropsT & NewParams_2, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>>>> & {
|
|
166
|
+
withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_2, ExtractRefs<Render>, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>>, [Signals<NewCarryForward_13>, ...NewClientContexts_1], JayComponentCore<NewPropsT & NewParams_2, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>>>>): JayStackComponentDefinition<NewStaticViewState_4, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>>, ExtractRefs<Render>, [NewCarryForward_12], [Signals<NewCarryForward_13>, ...NewClientContexts_1], NewPropsT & NewParams_2, NewParams_2, JayComponentCore<NewPropsT & NewParams_2, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>>>>;
|
|
167
|
+
};
|
|
168
|
+
withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_2, ExtractRefs<Render>, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>, NewClientContexts_1, JayComponentCore<NewPropsT & NewParams_2, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>>>): JayStackComponentDefinition<NewStaticViewState_4, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>, ExtractRefs<Render>, [NewCarryForward_12], NewClientContexts_1, NewPropsT & NewParams_2, NewParams_2, JayComponentCore<NewPropsT & NewParams_2, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>>>;
|
|
169
|
+
};
|
|
170
|
+
withFastRender<NewCarryForward_14 extends object>(fastRender: RenderFast<[], NewPropsT & NewParams_2, ExtractViewState<Render>, NewCarryForward_14>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, [], [Signals<NewCarryForward_14>, ...NewClientContexts_1], NewPropsT & NewParams_2, NewParams_2, JayComponentCore<NewPropsT & NewParams_2, Partial<ExtractViewState<Render>>>> & {
|
|
171
|
+
withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_2, ExtractRefs<Render>, Partial<ExtractViewState<Render>>, [Signals<NewCarryForward_14>, ...NewClientContexts_1], JayComponentCore<NewPropsT & NewParams_2, Partial<ExtractViewState<Render>>>>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, [], [Signals<NewCarryForward_14>, ...NewClientContexts_1], NewPropsT & NewParams_2, NewParams_2, JayComponentCore<NewPropsT & NewParams_2, Partial<ExtractViewState<Render>>>>;
|
|
172
|
+
};
|
|
173
|
+
withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_2, ExtractRefs<Render>, ExtractViewState<Render>, NewClientContexts_1, JayComponentCore<NewPropsT, ExtractViewState<Render>>>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, [], NewClientContexts_1, NewPropsT & NewParams_2, NewParams_2, JayComponentCore<NewPropsT, ExtractViewState<Render>>>;
|
|
174
|
+
};
|
|
175
|
+
withSlowlyRender<NewStaticViewState_5 extends Partial<ExtractViewState<Render>>, NewCarryForward_15 extends object>(slowlyRender: RenderSlowly<[], NewPropsT, NewStaticViewState_5, NewCarryForward_15>): JayStackComponentDefinition<NewStaticViewState_5, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>, ExtractRefs<Render>, [NewCarryForward_15], NewClientContexts_1, NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>>> & {
|
|
176
|
+
withFastRender<NewCarryForward_16 extends object>(fastRender: RenderFast<[NewCarryForward_15], NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>, NewCarryForward_16>): JayStackComponentDefinition<NewStaticViewState_5, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>>, ExtractRefs<Render>, [NewCarryForward_15], [Signals<NewCarryForward_16>, ...NewClientContexts_1], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>>>> & {
|
|
177
|
+
withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>>, [Signals<NewCarryForward_16>, ...NewClientContexts_1], JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>>>>): JayStackComponentDefinition<NewStaticViewState_5, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>>, ExtractRefs<Render>, [NewCarryForward_15], [Signals<NewCarryForward_16>, ...NewClientContexts_1], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>>>>;
|
|
178
|
+
};
|
|
179
|
+
withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>, NewClientContexts_1, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>>>): JayStackComponentDefinition<NewStaticViewState_5, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>, ExtractRefs<Render>, [NewCarryForward_15], NewClientContexts_1, NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>>>;
|
|
180
|
+
};
|
|
181
|
+
withFastRender<NewCarryForward_17 extends object>(fastRender: RenderFast<[], NewPropsT, ExtractViewState<Render>, NewCarryForward_17>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, [], [Signals<NewCarryForward_17>, ...NewClientContexts_1], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>> & {
|
|
182
|
+
withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<ExtractViewState<Render>>, [Signals<NewCarryForward_17>, ...NewClientContexts_1], JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, [], [Signals<NewCarryForward_17>, ...NewClientContexts_1], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>>;
|
|
183
|
+
};
|
|
184
|
+
withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, ExtractViewState<Render>, NewClientContexts_1, JayComponentCore<NewPropsT, ExtractViewState<Render>>>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, [], NewClientContexts_1, NewPropsT, {}, JayComponentCore<NewPropsT, ExtractViewState<Render>>>;
|
|
185
|
+
};
|
|
186
|
+
withLoadParams<NewParams_3 extends UrlParams>(loadParams: LoadParams<[], NewParams_3>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, [], [], NewPropsT & NewParams_3, NewParams_3, JayComponentCore<NewPropsT, ExtractViewState<Render>>> & {
|
|
187
|
+
withSlowlyRender<NewStaticViewState_6 extends Partial<ExtractViewState<Render>>, NewCarryForward_18 extends object>(slowlyRender: RenderSlowly<[], NewPropsT & NewParams_3, NewStaticViewState_6, NewCarryForward_18>): JayStackComponentDefinition<NewStaticViewState_6, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>, ExtractRefs<Render>, [NewCarryForward_18], [], NewPropsT & NewParams_3, NewParams_3, JayComponentCore<NewPropsT & NewParams_3, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>>> & {
|
|
188
|
+
withFastRender<NewCarryForward_19 extends object>(fastRender: RenderFast<[NewCarryForward_18], NewPropsT & NewParams_3, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>, NewCarryForward_19>): JayStackComponentDefinition<NewStaticViewState_6, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>>, ExtractRefs<Render>, [NewCarryForward_18], [Signals<NewCarryForward_19>], NewPropsT & NewParams_3, NewParams_3, JayComponentCore<NewPropsT & NewParams_3, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>>>> & {
|
|
189
|
+
withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_3, ExtractRefs<Render>, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>>, [Signals<NewCarryForward_19>], JayComponentCore<NewPropsT & NewParams_3, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>>>>): JayStackComponentDefinition<NewStaticViewState_6, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>>, ExtractRefs<Render>, [NewCarryForward_18], [Signals<NewCarryForward_19>], NewPropsT & NewParams_3, NewParams_3, JayComponentCore<NewPropsT & NewParams_3, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>>>>;
|
|
190
|
+
};
|
|
191
|
+
withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_3, ExtractRefs<Render>, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>, [], JayComponentCore<NewPropsT & NewParams_3, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>>>): JayStackComponentDefinition<NewStaticViewState_6, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>, ExtractRefs<Render>, [NewCarryForward_18], [], NewPropsT & NewParams_3, NewParams_3, JayComponentCore<NewPropsT & NewParams_3, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>>>;
|
|
192
|
+
};
|
|
193
|
+
withFastRender<NewCarryForward_20 extends object>(fastRender: RenderFast<[], NewPropsT & NewParams_3, ExtractViewState<Render>, NewCarryForward_20>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, [], [Signals<NewCarryForward_20>], NewPropsT & NewParams_3, NewParams_3, JayComponentCore<NewPropsT & NewParams_3, Partial<ExtractViewState<Render>>>> & {
|
|
194
|
+
withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_3, ExtractRefs<Render>, Partial<ExtractViewState<Render>>, [Signals<NewCarryForward_20>], JayComponentCore<NewPropsT & NewParams_3, Partial<ExtractViewState<Render>>>>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, [], [Signals<NewCarryForward_20>], NewPropsT & NewParams_3, NewParams_3, JayComponentCore<NewPropsT & NewParams_3, Partial<ExtractViewState<Render>>>>;
|
|
195
|
+
};
|
|
196
|
+
withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_3, ExtractRefs<Render>, ExtractViewState<Render>, [], JayComponentCore<NewPropsT, ExtractViewState<Render>>>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, [], [], NewPropsT & NewParams_3, NewParams_3, JayComponentCore<NewPropsT, ExtractViewState<Render>>>;
|
|
197
|
+
};
|
|
198
|
+
withSlowlyRender<NewStaticViewState_7 extends Partial<ExtractViewState<Render>>, NewCarryForward_21 extends object>(slowlyRender: RenderSlowly<[], NewPropsT, NewStaticViewState_7, NewCarryForward_21>): JayStackComponentDefinition<NewStaticViewState_7, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>, ExtractRefs<Render>, [NewCarryForward_21], [], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>>> & {
|
|
199
|
+
withFastRender<NewCarryForward_22 extends object>(fastRender: RenderFast<[NewCarryForward_21], NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>, NewCarryForward_22>): JayStackComponentDefinition<NewStaticViewState_7, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>>, ExtractRefs<Render>, [NewCarryForward_21], [Signals<NewCarryForward_22>], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>>>> & {
|
|
200
|
+
withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>>, [Signals<NewCarryForward_22>], JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>>>>): JayStackComponentDefinition<NewStaticViewState_7, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>>, ExtractRefs<Render>, [NewCarryForward_21], [Signals<NewCarryForward_22>], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>>>>;
|
|
201
|
+
};
|
|
202
|
+
withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>, [], JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>>>): JayStackComponentDefinition<NewStaticViewState_7, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>, ExtractRefs<Render>, [NewCarryForward_21], [], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>>>;
|
|
203
|
+
};
|
|
204
|
+
withFastRender<NewCarryForward_23 extends object>(fastRender: RenderFast<[], NewPropsT, ExtractViewState<Render>, NewCarryForward_23>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, [], [Signals<NewCarryForward_23>], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>> & {
|
|
205
|
+
withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<ExtractViewState<Render>>, [Signals<NewCarryForward_23>], JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, [], [Signals<NewCarryForward_23>], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>>;
|
|
206
|
+
};
|
|
207
|
+
withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, ExtractViewState<Render>, [], JayComponentCore<NewPropsT, ExtractViewState<Render>>>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, [], [], NewPropsT, {}, JayComponentCore<NewPropsT, ExtractViewState<Render>>>;
|
|
208
|
+
};
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
export { type AnyFastRenderResult, type AnyJayStackComponentDefinition, type AnySlowlyRenderResult, type Builder, type ClientError4xx, type FastRenderResult, type JayStackComponentDefinition, type LoadParams, type PageProps, type PartialRender, type Redirect3xx, type RenderFast, type RenderSlowly, type ServerError5xx, type Signals, type SlowlyRenderResult, type UrlParams, clientError4xx, makeJayStackComponent, notFound, partialRender, redirect3xx, serverError5xx };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => {
|
|
4
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
+
return value;
|
|
6
|
+
};
|
|
7
|
+
function serverError5xx(status) {
|
|
8
|
+
return {
|
|
9
|
+
kind: "ServerError",
|
|
10
|
+
status
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function clientError4xx(status) {
|
|
14
|
+
return {
|
|
15
|
+
kind: "ClientError",
|
|
16
|
+
status
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function notFound() {
|
|
20
|
+
return clientError4xx(404);
|
|
21
|
+
}
|
|
22
|
+
function redirect3xx(status, location) {
|
|
23
|
+
return {
|
|
24
|
+
kind: "redirect",
|
|
25
|
+
status,
|
|
26
|
+
location
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function partialRender(rendered, carryForward) {
|
|
30
|
+
return { kind: "PartialRender", rendered, carryForward };
|
|
31
|
+
}
|
|
32
|
+
class BuilderImplementation {
|
|
33
|
+
constructor() {
|
|
34
|
+
__publicField(this, "serverContexts", []);
|
|
35
|
+
__publicField(this, "clientContexts", []);
|
|
36
|
+
__publicField(this, "loadParams");
|
|
37
|
+
__publicField(this, "slowlyRender");
|
|
38
|
+
__publicField(this, "fastRender");
|
|
39
|
+
__publicField(this, "comp");
|
|
40
|
+
}
|
|
41
|
+
withProps() {
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
withServerContext(...contextMarkers) {
|
|
45
|
+
this.serverContexts = contextMarkers;
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
withClientContext(...contextMarkers) {
|
|
49
|
+
this.clientContexts = contextMarkers;
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
withLoadParams(loadParams) {
|
|
53
|
+
this.loadParams = loadParams;
|
|
54
|
+
return this;
|
|
55
|
+
}
|
|
56
|
+
withSlowlyRender(slowlyRender) {
|
|
57
|
+
this.slowlyRender = slowlyRender;
|
|
58
|
+
return this;
|
|
59
|
+
}
|
|
60
|
+
withFastRender(fastRender) {
|
|
61
|
+
this.fastRender = fastRender;
|
|
62
|
+
return this;
|
|
63
|
+
}
|
|
64
|
+
withInteractive(comp) {
|
|
65
|
+
this.comp = comp;
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function makeJayStackComponent() {
|
|
70
|
+
return new BuilderImplementation();
|
|
71
|
+
}
|
|
72
|
+
export {
|
|
73
|
+
clientError4xx,
|
|
74
|
+
makeJayStackComponent,
|
|
75
|
+
notFound,
|
|
76
|
+
partialRender,
|
|
77
|
+
redirect3xx,
|
|
78
|
+
serverError5xx
|
|
79
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@jay-framework/fullstack-component",
|
|
3
|
+
"version": "0.5.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"require": "./dist/index.cjs"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist",
|
|
16
|
+
"readme.md"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "npm run build:js && npm run build:types",
|
|
20
|
+
"build:watch": "npm run build:js -- --watch & npm run build:types -- --watch",
|
|
21
|
+
"build:js": "vite build",
|
|
22
|
+
"build:types": "tsup lib/index.ts --dts-only --format esm",
|
|
23
|
+
"build:check-types": "tsc",
|
|
24
|
+
"test-definitions": "jay-cli definitions test",
|
|
25
|
+
"test-runtime": "jay-cli runtime test",
|
|
26
|
+
"clean": "rimraf dist",
|
|
27
|
+
"confirm": "npm run clean && npm run build && npm run build:check-types && npm run test",
|
|
28
|
+
"test": "vitest run",
|
|
29
|
+
"test:watch": "vitest"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@jay-framework/component": "workspace:^",
|
|
33
|
+
"@jay-framework/runtime": "workspace:^"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@jay-framework/dev-environment": "workspace:^",
|
|
37
|
+
"@jay-framework/jay-cli": "workspace:^",
|
|
38
|
+
"@types/express": "^5.0.2",
|
|
39
|
+
"@types/node": "^22.15.21",
|
|
40
|
+
"nodemon": "^3.0.3",
|
|
41
|
+
"replace-in-file": "^7.1.0",
|
|
42
|
+
"rimraf": "^5.0.5",
|
|
43
|
+
"tsup": "^8.0.1",
|
|
44
|
+
"typescript": "^5.3.3",
|
|
45
|
+
"vite": "^5.0.11",
|
|
46
|
+
"vitest": "^1.2.1"
|
|
47
|
+
}
|
|
48
|
+
}
|