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 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
@@ -5,5 +5,5 @@
5
5
  "bridge": false
6
6
  },
7
7
  "configKey": "ogImage",
8
- "version": "0.0.2"
8
+ "version": "0.0.4"
9
9
  }
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 imageGenPromises = entries.map(async (entry, index) => {
168
- return new Promise((resolve2) => {
169
- const start = Date.now();
170
- screenshot(browser, `${host}${entry.screenshotPath}`, config).then((imgBuffer) => {
171
- writeFile(entry.outputPath, imgBuffer).then(() => {
172
- const generateTimeMS = Date.now() - start;
173
- nitro.logger.log(chalk.gray(
174
- ` ${index === entries.length - 1 ? "\u2514\u2500" : "\u251C\u2500"} /${config.outputDir}/${entry.fileName} (${generateTimeMS}ms)`
175
- ));
176
- resolve2();
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 htmlFiles = await fg(["**/*.html"], { cwd: nitro.options.output.dir });
193
- for (const htmlFile of htmlFiles) {
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}/${htmlFile}`, newHtml, { encoding: "utf-8" });
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 './types';
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
- import {
3
- HtmlRendererRoute,
4
- LinkPrerenderId,
5
- MetaOgImageContentPlaceholder,
6
- PayloadScriptId,
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
- import { HtmlRendererRoute, PayloadScriptId } from "../const.mjs";
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
- declare const _default: import("h3").EventHandler<any>;
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 { HtmlRendererRoute, RuntimeImageSuffix } from "../const.mjs";
3
- import { createBrowser, screenshot } from "../../browserService";
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
@@ -7,4 +7,4 @@ declare module '@nuxt/schema' {
7
7
  }
8
8
 
9
9
 
10
- export { ModuleOptions, default } from './module'
10
+ export { HtmlRendererRoute, LinkPrerenderId, MetaOgImageContentPlaceholder, ModuleOptions, PayloadScriptId, default } from './module'
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nuxt-og-image",
3
3
  "type": "module",
4
- "version": "0.0.2",
4
+ "version": "0.0.4",
5
5
  "packageManager": "pnpm@7.8.0",
6
6
  "license": "MIT",
7
7
  "funding": "https://github.com/sponsors/harlan-zw",
@@ -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";
@@ -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";