From dda4b0e635a3ba31e713e5dd41c471743658af6e Mon Sep 17 00:00:00 2001 From: Marvin Hagemeister Date: Sat, 19 Jun 2021 00:44:31 +0200 Subject: [PATCH] Upgrade to WMR 3.0.1 --- package-lock.json | 44 +++++++++++++++++---------------- package.json | 6 ++--- plugins/content.js | 4 +-- plugins/markdown.js | 12 ++++----- public/components/Home/index.js | 2 +- public/index.js | 11 ++++++++- 6 files changed, 45 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index 49e5cac..1b97712 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,10 +6,10 @@ "": { "dependencies": { "preact": "^10.5.12", - "preact-iso": "^2.0.0" + "preact-iso": "^2.0.3" }, "devDependencies": { - "@wmr-plugins/directory-import": "^0.1.1", + "@wmr-plugins/directory-import": "^0.1.2", "eslint": "^7.22.0", "eslint-config-preact": "^1.1.3", "eslint-config-prettier": "^8.1.0", @@ -18,7 +18,7 @@ "marked": "^2.0.1", "prettier": "^2.2.1", "sass": "^1.32.12", - "wmr": "^1.7.0", + "wmr": "^3.0.1", "yaml": "^1.10.2" } }, @@ -355,9 +355,10 @@ } }, "node_modules/@wmr-plugins/directory-import": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@wmr-plugins/directory-import/-/directory-import-0.1.1.tgz", - "integrity": "sha512-js/nZrC0Y+fItAYicRTvv6oflk1toPY0FdFS+uiXQ44bd1C1swbR2/dyV713dgBXnFZK2RX6sMq2k3fv/LKgqw==", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@wmr-plugins/directory-import/-/directory-import-0.1.2.tgz", + "integrity": "sha512-/7Ox60OLG4tuG5qbHVLgDm7XD/lJ+mNVZAODGXfJ10vlR+FMxGbM17jNd64BSePQuDoU+iGZim2IPXUem7BOGQ==", + "deprecated": "@wmr-plugins/directory-import has moved to @wmrjs/directory-import", "dev": true, "engines": { "node": ">=12" @@ -2394,9 +2395,10 @@ } }, "node_modules/preact-iso": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/preact-iso/-/preact-iso-2.0.0.tgz", - "integrity": "sha512-tAQ+uSGJmh8VPqRD9AUd8xGAj/d9NTB0vMxPX1NimzvQ8EzBdf2pxl23cYav0SJmUs9c1PXnoH973GKwVO2upQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/preact-iso/-/preact-iso-2.0.3.tgz", + "integrity": "sha512-YQ+HTVDDFVuTvxL8xUMy+1QlrEuIFSXC5Np4WO1UEVDWXy51n56H2jd05bjMFeTEiKLxQmr86SqhSmgo5PzCLw==", + "license": "MIT", "peerDependencies": { "preact": ">=10", "preact-render-to-string": ">=5" @@ -3104,9 +3106,9 @@ } }, "node_modules/wmr": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/wmr/-/wmr-1.7.0.tgz", - "integrity": "sha512-o3j0ycWXoTczrI15YSJ8aEDZhTOoiBUDnwiUhs6bk7ZvrpVTVtdKRomHfWWGQQPk1De8bSGGnCIlhSpAFxLS7Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wmr/-/wmr-3.0.1.tgz", + "integrity": "sha512-wQ7DkppqxjJU30umAU4Uvr+ZAgjaVfINar2exQ/IxTS51QXle8sGv5buHJ36MoBkPW6SpilkwuMRyx5+D2P7QA==", "dev": true, "bin": { "wmr": "wmr.cjs" @@ -3432,9 +3434,9 @@ } }, "@wmr-plugins/directory-import": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@wmr-plugins/directory-import/-/directory-import-0.1.1.tgz", - "integrity": "sha512-js/nZrC0Y+fItAYicRTvv6oflk1toPY0FdFS+uiXQ44bd1C1swbR2/dyV713dgBXnFZK2RX6sMq2k3fv/LKgqw==", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@wmr-plugins/directory-import/-/directory-import-0.1.2.tgz", + "integrity": "sha512-/7Ox60OLG4tuG5qbHVLgDm7XD/lJ+mNVZAODGXfJ10vlR+FMxGbM17jNd64BSePQuDoU+iGZim2IPXUem7BOGQ==", "dev": true, "requires": {} }, @@ -4953,9 +4955,9 @@ "integrity": "sha512-q/vlKIGNwzTLu+jCcvywgGrt+H/1P/oIRSD6mV4ln3hmlC+Aa34C7yfPI4+5bzW8pONyVXYS7SvXosy2dKKtWQ==" }, "preact-iso": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/preact-iso/-/preact-iso-2.0.0.tgz", - "integrity": "sha512-tAQ+uSGJmh8VPqRD9AUd8xGAj/d9NTB0vMxPX1NimzvQ8EzBdf2pxl23cYav0SJmUs9c1PXnoH973GKwVO2upQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/preact-iso/-/preact-iso-2.0.3.tgz", + "integrity": "sha512-YQ+HTVDDFVuTvxL8xUMy+1QlrEuIFSXC5Np4WO1UEVDWXy51n56H2jd05bjMFeTEiKLxQmr86SqhSmgo5PzCLw==", "requires": {} }, "preact-render-to-string": { @@ -5488,9 +5490,9 @@ } }, "wmr": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/wmr/-/wmr-1.7.0.tgz", - "integrity": "sha512-o3j0ycWXoTczrI15YSJ8aEDZhTOoiBUDnwiUhs6bk7ZvrpVTVtdKRomHfWWGQQPk1De8bSGGnCIlhSpAFxLS7Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wmr/-/wmr-3.0.1.tgz", + "integrity": "sha512-wQ7DkppqxjJU30umAU4Uvr+ZAgjaVfINar2exQ/IxTS51QXle8sGv5buHJ36MoBkPW6SpilkwuMRyx5+D2P7QA==", "dev": true, "requires": { "fsevents": "^2.1.3" diff --git a/package.json b/package.json index 329f45a..f8b7b00 100644 --- a/package.json +++ b/package.json @@ -46,10 +46,10 @@ }, "dependencies": { "preact": "^10.5.12", - "preact-iso": "^2.0.0" + "preact-iso": "^2.0.3" }, "devDependencies": { - "@wmr-plugins/directory-import": "^0.1.1", + "@wmr-plugins/directory-import": "^0.1.2", "eslint": "^7.22.0", "eslint-config-preact": "^1.1.3", "eslint-config-prettier": "^8.1.0", @@ -58,7 +58,7 @@ "marked": "^2.0.1", "prettier": "^2.2.1", "sass": "^1.32.12", - "wmr": "^1.7.0", + "wmr": "^3.0.1", "yaml": "^1.10.2" } } diff --git a/plugins/content.js b/plugins/content.js index 44e71ca..f8b93bd 100644 --- a/plugins/content.js +++ b/plugins/content.js @@ -69,7 +69,7 @@ async function getMeta(filename) { /** * markdown blog/content plugin for Rollup / WMR */ -function contentRollupPlugin({ cwd, prod, ...opts }) { +function contentRollupPlugin({ root, prod, ...opts }) { return { name: 'content', async resolveId(id, importer) { @@ -98,7 +98,7 @@ function contentRollupPlugin({ cwd, prod, ...opts }) { }, async load(id) { if (!id.startsWith('\0content:')) return; - id = path.resolve(cwd || '.', id.slice(9)); + id = path.resolve(root || '.', id.slice(9)); // const base = path.relative(cwd || '.', id); const files = await tree(id); diff --git a/plugins/markdown.js b/plugins/markdown.js index c07b907..f3a133a 100644 --- a/plugins/markdown.js +++ b/plugins/markdown.js @@ -3,8 +3,8 @@ import yaml from 'yaml'; import { promises as fs } from 'fs'; import path from 'path'; -export default function markdownPlugin({ plugins, cwd, prod }, opts) { - plugins.push(markdownRollupPlugin({ cwd, prod, ...opts })); +export default function markdownPlugin({ plugins, root, prod }, opts) { + plugins.push(markdownRollupPlugin({ root, prod, ...opts })); } markdownPlugin.rollup = markdownRollupPlugin; @@ -39,7 +39,7 @@ async function processMarkdown(filename, opts) { * @example * import html from 'markdown:./pages'; */ -function markdownRollupPlugin({ cwd, prod, ...opts }) { +function markdownRollupPlugin({ root, prod, ...opts }) { return { name: 'markdown', async resolveId(id, importer) { @@ -75,7 +75,7 @@ function markdownRollupPlugin({ cwd, prod, ...opts }) { // return `export default ${JSON.stringify(html)}`; if (!id.startsWith('\0markdown:')) return; - id = path.resolve(cwd || '.', id.slice(10)); + id = path.resolve(root || '.', id.slice(10)); this.addWatchFile(id); const html = await processMarkdown(id, opts); @@ -87,8 +87,8 @@ function markdownRollupPlugin({ cwd, prod, ...opts }) { // console.log(path.relative(cwd || '.', id)); const fileId = this.emitFile({ type: 'asset', - name: path.relative(cwd || '.', id), - fileName: path.relative(cwd || '.', id), + name: path.relative(root || '.', id), + fileName: path.relative(root || '.', id), source: html }); return `export default import.meta.ROLLUP_FILE_URL_${fileId}`; diff --git a/public/components/Home/index.js b/public/components/Home/index.js index ede5ed2..fc38c70 100644 --- a/public/components/Home/index.js +++ b/public/components/Home/index.js @@ -4,7 +4,7 @@ import styles from './style.module.scss'; export default function Home() { if (typeof window === 'undefined') { - document.head.insertAdjacentHTML('beforeend', ``); + wmrHead.elements.push(``); } return (
diff --git a/public/index.js b/public/index.js index 111e475..2894b58 100644 --- a/public/index.js +++ b/public/index.js @@ -47,6 +47,15 @@ export async function prerender(data) { const text = () => fs.readFile('dist/' + String(url).replace(/^\//, ''), 'utf-8'); return { text, json: () => text().then(JSON.parse) }; }; + global.wmrHead = { + title: undefined, + lang: undefined, + elements: [] + }; const { default: prerender } = await import('preact-iso/prerender'); - return await prerender(); + const res = await prerender(); + return { + ...res, + head: global.wmrHead + }; }