From 7991180080366f9eb0d43fe95d25b53cf7af652c Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Mon, 9 Oct 2023 07:49:30 +0530 Subject: [PATCH] fix(build): handle .mjs/.mts files as data / path loaders (#3058) --- .../{basic.data.ts => basic.data.mts} | 0 __tests__/e2e/data-loading/data.md | 2 +- src/node/plugins/dynamicRoutesPlugin.ts | 26 ++++++++++--------- src/node/plugins/staticDataPlugin.ts | 2 +- 4 files changed, 16 insertions(+), 14 deletions(-) rename __tests__/e2e/data-loading/{basic.data.ts => basic.data.mts} (100%) diff --git a/__tests__/e2e/data-loading/basic.data.ts b/__tests__/e2e/data-loading/basic.data.mts similarity index 100% rename from __tests__/e2e/data-loading/basic.data.ts rename to __tests__/e2e/data-loading/basic.data.mts diff --git a/__tests__/e2e/data-loading/data.md b/__tests__/e2e/data-loading/data.md index 69ded9df..e78a1aca 100644 --- a/__tests__/e2e/data-loading/data.md +++ b/__tests__/e2e/data-loading/data.md @@ -1,7 +1,7 @@ # Static Data diff --git a/src/node/plugins/dynamicRoutesPlugin.ts b/src/node/plugins/dynamicRoutesPlugin.ts index 62fac771..2807d3ff 100644 --- a/src/node/plugins/dynamicRoutesPlugin.ts +++ b/src/node/plugins/dynamicRoutesPlugin.ts @@ -162,19 +162,21 @@ export async function resolveDynamicRoutes( for (const route of routes) { // locate corresponding route paths file const fullPath = normalizePath(path.resolve(srcDir, route)) - const jsPathsFile = fullPath.replace(/\.md$/, '.paths.js') - let pathsFile = jsPathsFile - if (!fs.existsSync(jsPathsFile)) { - pathsFile = fullPath.replace(/\.md$/, '.paths.ts') - if (!fs.existsSync(pathsFile)) { - console.warn( - c.yellow( - `Missing paths file for dynamic route ${route}: ` + - `a corresponding ${jsPathsFile} or ${pathsFile} is needed.` - ) + + const paths = ['js', 'ts', 'mjs', 'mts'].map((ext) => + fullPath.replace(/\.md$/, `.paths.${ext}`) + ) + + const pathsFile = paths.find((p) => fs.existsSync(p)) + + if (pathsFile == null) { + console.warn( + c.yellow( + `Missing paths file for dynamic route ${route}: ` + + `a corresponding ${paths[0]} (or .ts/.mjs/.mts) file is needed.` ) - continue - } + ) + continue } // load the paths loader module diff --git a/src/node/plugins/staticDataPlugin.ts b/src/node/plugins/staticDataPlugin.ts index efa6fe47..283a5138 100644 --- a/src/node/plugins/staticDataPlugin.ts +++ b/src/node/plugins/staticDataPlugin.ts @@ -8,7 +8,7 @@ import path, { dirname, resolve } from 'path' import { isMatch } from 'micromatch' import glob from 'fast-glob' -const loaderMatch = /\.data\.(j|t)s($|\?)/ +const loaderMatch = /\.data\.m?(j|t)s($|\?)/ let server: ViteDevServer