nuxt-og-image 0.0.2 → 0.0.4
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/module.d.ts +5 -1
- package/dist/module.json +1 -1
- package/dist/module.mjs +17 -22
- package/dist/runtime/browserService.d.ts +1 -1
- package/dist/runtime/composables/defineOgImage.d.ts +5 -0
- package/dist/runtime/composables/defineOgImage.mjs +5 -7
- package/dist/runtime/nitro/html.d.ts +2 -0
- package/dist/runtime/nitro/html.mjs +2 -1
- package/dist/runtime/nitro/image.d.ts +4 -1
- package/dist/runtime/nitro/image.mjs +3 -2
- package/dist/types.d.ts +1 -1
- package/package.json +1 -1
- package/dist/runtime/const.d.ts +0 -5
- package/dist/runtime/const.mjs +0 -5
package/dist/module.d.ts
CHANGED
|
@@ -41,6 +41,10 @@ interface ModuleOptions extends ScreenshotOptions {
|
|
|
41
41
|
*/
|
|
42
42
|
runtimeImages: boolean;
|
|
43
43
|
}
|
|
44
|
+
declare const HtmlRendererRoute = "__og_image";
|
|
45
|
+
declare const PayloadScriptId = "nuxt-og-image-payload";
|
|
46
|
+
declare const MetaOgImageContentPlaceholder = "__NUXT_OG_IMAGE_PLACEHOLDER__";
|
|
47
|
+
declare const LinkPrerenderId = "nuxt-og-image-screenshot-path";
|
|
44
48
|
declare const _default: _nuxt_schema.NuxtModule<ModuleOptions>;
|
|
45
49
|
|
|
46
|
-
export { ModuleOptions, _default as default };
|
|
50
|
+
export { HtmlRendererRoute, LinkPrerenderId, MetaOgImageContentPlaceholder, ModuleOptions, PayloadScriptId, _default as default };
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -57,7 +57,6 @@ const HtmlRendererRoute = "__og_image";
|
|
|
57
57
|
const PayloadScriptId = "nuxt-og-image-payload";
|
|
58
58
|
const MetaOgImageContentPlaceholder = "__NUXT_OG_IMAGE_PLACEHOLDER__";
|
|
59
59
|
const LinkPrerenderId = "nuxt-og-image-screenshot-path";
|
|
60
|
-
|
|
61
60
|
const module = defineNuxtModule({
|
|
62
61
|
meta: {
|
|
63
62
|
name: "nuxt-og-image",
|
|
@@ -107,7 +106,7 @@ declare module 'nitropack' {
|
|
|
107
106
|
name: "defineOgImage",
|
|
108
107
|
from: resolve("./runtime/composables/defineOgImage")
|
|
109
108
|
});
|
|
110
|
-
addComponent({
|
|
109
|
+
await addComponent({
|
|
111
110
|
name: "OgImage",
|
|
112
111
|
filePath: resolve("./runtime/components/OgImage.vue"),
|
|
113
112
|
island: true
|
|
@@ -134,7 +133,9 @@ declare module 'nitropack' {
|
|
|
134
133
|
fileName,
|
|
135
134
|
absoluteUrl,
|
|
136
135
|
outputPath: `${nitro.options.output.dir}/public/${config.outputDir}/${fileName}`,
|
|
136
|
+
linkingHtml: ctx.fileName,
|
|
137
137
|
route: ctx.route,
|
|
138
|
+
hasPayload: screenshotPath,
|
|
138
139
|
routeRules: routeRules.ogImage || "",
|
|
139
140
|
screenshotPath: screenshotPath || ctx.route
|
|
140
141
|
};
|
|
@@ -164,21 +165,16 @@ declare module 'nitropack' {
|
|
|
164
165
|
const browser = await createBrowser();
|
|
165
166
|
nitro.logger.info(`Generating ${entries.length} og:image screenshots`);
|
|
166
167
|
try {
|
|
167
|
-
const
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
});
|
|
178
|
-
});
|
|
179
|
-
});
|
|
180
|
-
});
|
|
181
|
-
await Promise.all(imageGenPromises);
|
|
168
|
+
for (const k in entries) {
|
|
169
|
+
const entry = entries[k];
|
|
170
|
+
const start = Date.now();
|
|
171
|
+
const imgBuffer = await screenshot(browser, `${host}${entry.screenshotPath}`, config);
|
|
172
|
+
await writeFile(entry.outputPath, imgBuffer);
|
|
173
|
+
const generateTimeMS = Date.now() - start;
|
|
174
|
+
nitro.logger.log(chalk.gray(
|
|
175
|
+
` ${Number(k) === entries.length - 1 ? "\u2514\u2500" : "\u251C\u2500"} /${config.outputDir}/${entry.fileName} (${generateTimeMS}ms)`
|
|
176
|
+
));
|
|
177
|
+
}
|
|
182
178
|
} catch (e) {
|
|
183
179
|
console.error(e);
|
|
184
180
|
} finally {
|
|
@@ -189,12 +185,11 @@ declare module 'nitropack' {
|
|
|
189
185
|
} finally {
|
|
190
186
|
previewProcess.kill();
|
|
191
187
|
}
|
|
192
|
-
const
|
|
193
|
-
|
|
194
|
-
const html = await readFile(`${nitro.options.output.dir}/${htmlFile}`, "utf-8");
|
|
188
|
+
for (const entry of entries.filter((e) => e.hasPayload)) {
|
|
189
|
+
const html = await readFile(`${nitro.options.output.dir}/public${entry.linkingHtml}`, "utf-8");
|
|
195
190
|
const newHtml = html.replace(new RegExp(`<link id="${LinkPrerenderId}" rel="prerender" href="(.*?)">`), "").replace(new RegExp(`<script id="${PayloadScriptId}" type="application/json">(.*?)<\/script>`), "").replace("\n\n", "\n");
|
|
196
191
|
if (html !== newHtml) {
|
|
197
|
-
await writeFile(`${nitro.options.output.dir}
|
|
192
|
+
await writeFile(`${nitro.options.output.dir}/public${entry.linkingHtml}`, newHtml, { encoding: "utf-8" });
|
|
198
193
|
}
|
|
199
194
|
}
|
|
200
195
|
const ogImageFolders = await fg([`**/${HtmlRendererRoute}`], { cwd: nitro.options.output.dir, onlyDirectories: true });
|
|
@@ -211,4 +206,4 @@ declare module 'nitropack' {
|
|
|
211
206
|
}
|
|
212
207
|
});
|
|
213
208
|
|
|
214
|
-
export { module as default };
|
|
209
|
+
export { HtmlRendererRoute, LinkPrerenderId, MetaOgImageContentPlaceholder, PayloadScriptId, module as default };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import type { Browser } from 'playwright';
|
|
3
|
-
import type { ScreenshotOptions } from '
|
|
3
|
+
import type { ScreenshotOptions } from '../types';
|
|
4
4
|
export declare function createBrowser(): Promise<Browser>;
|
|
5
5
|
export declare function screenshot(browser: Browser, url: string, options: ScreenshotOptions): Promise<Buffer>;
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
export declare const HtmlRendererRoute = "__og_image";
|
|
2
|
+
export declare const RuntimeImageSuffix = "og-image.png";
|
|
3
|
+
export declare const PayloadScriptId = "nuxt-og-image-payload";
|
|
4
|
+
export declare const MetaOgImageContentPlaceholder = "__NUXT_OG_IMAGE_PLACEHOLDER__";
|
|
5
|
+
export declare const LinkPrerenderId = "nuxt-og-image-screenshot-path";
|
|
1
6
|
export interface OgImagePayload {
|
|
2
7
|
runtime: boolean;
|
|
3
8
|
title: string;
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { useServerHead } from "@vueuse/head";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
RuntimeImageSuffix
|
|
8
|
-
} from "../const";
|
|
2
|
+
export const HtmlRendererRoute = "__og_image";
|
|
3
|
+
export const RuntimeImageSuffix = "og-image.png";
|
|
4
|
+
export const PayloadScriptId = "nuxt-og-image-payload";
|
|
5
|
+
export const MetaOgImageContentPlaceholder = "__NUXT_OG_IMAGE_PLACEHOLDER__";
|
|
6
|
+
export const LinkPrerenderId = "nuxt-og-image-screenshot-path";
|
|
9
7
|
export function defineOgImage(options) {
|
|
10
8
|
if (process.server) {
|
|
11
9
|
const router = useRouter();
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export declare const HtmlRendererRoute = "__og_image";
|
|
2
|
+
export declare const PayloadScriptId = "nuxt-og-image-payload";
|
|
1
3
|
export declare const extractOgPayload: (html: string) => any;
|
|
2
4
|
export declare const inferOgPayload: (html: string) => Record<string, any>;
|
|
3
5
|
declare const _default: import("h3").EventHandler<string | undefined>;
|
|
@@ -2,7 +2,8 @@ import { withQuery } from "ufo";
|
|
|
2
2
|
import { renderSSRHead } from "@unhead/ssr";
|
|
3
3
|
import { createHeadCore } from "@unhead/vue";
|
|
4
4
|
import { defineEventHandler, getQuery } from "h3";
|
|
5
|
-
|
|
5
|
+
export const HtmlRendererRoute = "__og_image";
|
|
6
|
+
export const PayloadScriptId = "nuxt-og-image-payload";
|
|
6
7
|
export const extractOgPayload = (html) => {
|
|
7
8
|
const payload = html.match(new RegExp(`<script id="${PayloadScriptId}" type="application/json">(.+?)<\/script>`))?.[1];
|
|
8
9
|
if (payload) {
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
export declare const HtmlRendererRoute = "__og_image";
|
|
3
|
+
export declare const RuntimeImageSuffix = "og-image.png";
|
|
4
|
+
declare const _default: import("h3").EventHandler<Buffer | undefined>;
|
|
2
5
|
export default _default;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { defineEventHandler, getRequestHeader, setHeader } from "h3";
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { createBrowser, screenshot } from "../browserService.mjs";
|
|
3
|
+
export const HtmlRendererRoute = "__og_image";
|
|
4
|
+
export const RuntimeImageSuffix = "og-image.png";
|
|
4
5
|
export default defineEventHandler(async (e) => {
|
|
5
6
|
if (!e.path?.endsWith(RuntimeImageSuffix))
|
|
6
7
|
return;
|
package/dist/types.d.ts
CHANGED
package/package.json
CHANGED
package/dist/runtime/const.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare const HtmlRendererRoute = "__og_image";
|
|
2
|
-
export declare const RuntimeImageSuffix = "og-image.png";
|
|
3
|
-
export declare const PayloadScriptId = "nuxt-og-image-payload";
|
|
4
|
-
export declare const MetaOgImageContentPlaceholder = "__NUXT_OG_IMAGE_PLACEHOLDER__";
|
|
5
|
-
export declare const LinkPrerenderId = "nuxt-og-image-screenshot-path";
|
package/dist/runtime/const.mjs
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export const HtmlRendererRoute = "__og_image";
|
|
2
|
-
export const RuntimeImageSuffix = "og-image.png";
|
|
3
|
-
export const PayloadScriptId = "nuxt-og-image-payload";
|
|
4
|
-
export const MetaOgImageContentPlaceholder = "__NUXT_OG_IMAGE_PLACEHOLDER__";
|
|
5
|
-
export const LinkPrerenderId = "nuxt-og-image-screenshot-path";
|