@absolutejs/absolute 0.19.0-beta.816 → 0.19.0-beta.817
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/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/build.js +17 -3
- package/dist/build.js.map +3 -3
- package/dist/index.js +17 -3
- package/dist/index.js.map +3 -3
- package/dist/src/vue/pageHandler.d.ts +5 -0
- package/dist/vue/index.js +25 -3
- package/dist/vue/index.js.map +3 -3
- package/dist/vue/server.js +25 -3
- package/dist/vue/server.js.map +3 -3
- package/package.json +9 -1
|
@@ -9,6 +9,11 @@ export type VuePageRequestInput<Component extends VueComponent> = VuePageRenderO
|
|
|
9
9
|
indexPath: string;
|
|
10
10
|
pagePath: string;
|
|
11
11
|
Page?: Component;
|
|
12
|
+
/** The incoming Elysia request. Forwarded into the page
|
|
13
|
+
* module's exported `setupApp(app, { url, isServer })` hook
|
|
14
|
+
* (see compileVue's index generation) so plugins like
|
|
15
|
+
* vue-router can navigate to the correct route before SSR. */
|
|
16
|
+
request?: Request;
|
|
12
17
|
} & (keyof VuePropsOf<Component> extends never ? {
|
|
13
18
|
props?: NoInfer<VuePropsOf<Component>>;
|
|
14
19
|
} : {
|
package/dist/vue/index.js
CHANGED
|
@@ -3868,6 +3868,12 @@ var readHasIslands = (value) => {
|
|
|
3868
3868
|
const hasIslands = value["__ABSOLUTE_PAGE_HAS_ISLANDS__"];
|
|
3869
3869
|
return typeof hasIslands === "boolean" ? hasIslands : false;
|
|
3870
3870
|
};
|
|
3871
|
+
var readSetupAppHook = (value) => {
|
|
3872
|
+
if (!isRecord2(value))
|
|
3873
|
+
return null;
|
|
3874
|
+
const setupApp = value["setupApp"];
|
|
3875
|
+
return typeof setupApp === "function" ? setupApp : null;
|
|
3876
|
+
};
|
|
3871
3877
|
var readDefaultExport = (value) => isRecord2(value) ? value.default : undefined;
|
|
3872
3878
|
var resolveCurrentGeneratedVueModulePath = async (pagePath) => {
|
|
3873
3879
|
const pageDirectory = dirname(pagePath);
|
|
@@ -3893,6 +3899,16 @@ var buildDirtyResponse = (headTag, indexPath, maybeProps) => {
|
|
|
3893
3899
|
headers: { "Content-Type": "text/html" }
|
|
3894
3900
|
});
|
|
3895
3901
|
};
|
|
3902
|
+
var resolveRequestRenderUrl = (request) => {
|
|
3903
|
+
if (!request)
|
|
3904
|
+
return "/";
|
|
3905
|
+
try {
|
|
3906
|
+
const parsed = new URL(request.url);
|
|
3907
|
+
return `${parsed.pathname}${parsed.search}`;
|
|
3908
|
+
} catch {
|
|
3909
|
+
return "/";
|
|
3910
|
+
}
|
|
3911
|
+
};
|
|
3896
3912
|
var primeVueStream = async (stream) => {
|
|
3897
3913
|
const reader = stream.getReader();
|
|
3898
3914
|
const firstChunk = await reader.read();
|
|
@@ -3915,7 +3931,8 @@ var handleVuePageRequest = async (input) => {
|
|
|
3915
3931
|
if (isGenericVueComponent(passedPageComponent)) {
|
|
3916
3932
|
return {
|
|
3917
3933
|
component: passedPageComponent,
|
|
3918
|
-
hasIslands: readHasIslands(passedPageComponent)
|
|
3934
|
+
hasIslands: readHasIslands(passedPageComponent),
|
|
3935
|
+
setupApp: null
|
|
3919
3936
|
};
|
|
3920
3937
|
}
|
|
3921
3938
|
const generatedPagePath = await resolveCurrentGeneratedVueModulePath(resolvedPagePath);
|
|
@@ -3926,7 +3943,8 @@ var handleVuePageRequest = async (input) => {
|
|
|
3926
3943
|
}
|
|
3927
3944
|
return {
|
|
3928
3945
|
component: importedPageComponent,
|
|
3929
|
-
hasIslands: readHasIslands(importedPageModule)
|
|
3946
|
+
hasIslands: readHasIslands(importedPageModule),
|
|
3947
|
+
setupApp: readSetupAppHook(importedPageModule)
|
|
3930
3948
|
};
|
|
3931
3949
|
};
|
|
3932
3950
|
const resolvedPage = await resolvePageComponent();
|
|
@@ -3935,6 +3953,10 @@ var handleVuePageRequest = async (input) => {
|
|
|
3935
3953
|
const app = createSSRApp({
|
|
3936
3954
|
render: () => h4(resolvedPage.component, maybeProps ?? null)
|
|
3937
3955
|
});
|
|
3956
|
+
if (resolvedPage.setupApp) {
|
|
3957
|
+
const url = resolveRequestRenderUrl(input.request);
|
|
3958
|
+
await resolvedPage.setupApp(app, { url, isServer: true });
|
|
3959
|
+
}
|
|
3938
3960
|
const bodyStream = renderToWebStream(app);
|
|
3939
3961
|
const { firstChunk, reader } = await primeVueStream(bodyStream);
|
|
3940
3962
|
const head = `<!DOCTYPE html><html>${resolvedHeadTag}<body><div id="root">`;
|
|
@@ -4292,5 +4314,5 @@ export {
|
|
|
4292
4314
|
Image
|
|
4293
4315
|
};
|
|
4294
4316
|
|
|
4295
|
-
//# debugId=
|
|
4317
|
+
//# debugId=0A901A1F8ECA285364756E2164756E21
|
|
4296
4318
|
//# sourceMappingURL=index.js.map
|