summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/astro/src/vite-plugin-load-fallback/index.ts61
-rw-r--r--packages/astro/test/units/dev/dev.test.js16
-rw-r--r--packages/astro/test/units/test-utils.js12
3 files changed, 47 insertions, 42 deletions
diff --git a/packages/astro/src/vite-plugin-load-fallback/index.ts b/packages/astro/src/vite-plugin-load-fallback/index.ts
index f77f35152..372ca2d9d 100644
--- a/packages/astro/src/vite-plugin-load-fallback/index.ts
+++ b/packages/astro/src/vite-plugin-load-fallback/index.ts
@@ -1,8 +1,7 @@
-import type { AstroSettings } from '../@types/astro';
-import type * as vite from 'vite';
import nodeFs from 'fs';
import npath from 'path';
-
+import type * as vite from 'vite';
+import type { AstroSettings } from '../@types/astro';
type NodeFileSystemModule = typeof nodeFs;
@@ -11,7 +10,10 @@ export interface LoadFallbackPluginParams {
settings: AstroSettings;
}
-export default function loadFallbackPlugin({ fs, settings }: LoadFallbackPluginParams): vite.Plugin[] | false {
+export default function loadFallbackPlugin({
+ fs,
+ settings,
+}: LoadFallbackPluginParams): vite.Plugin[] | false {
// Only add this plugin if a custom fs implementation is provided.
if (!fs || fs === nodeFs) {
return false;
@@ -35,31 +37,34 @@ export default function loadFallbackPlugin({ fs, settings }: LoadFallbackPluginP
}
};
- return [{
- name: 'astro:load-fallback',
- enforce: 'post',
- resolveId(id, parent) {
- if(id.startsWith('.') && parent && fs.existsSync(parent)) {
- return npath.posix.join(npath.posix.dirname(parent), id);
- }
+ return [
+ {
+ name: 'astro:load-fallback',
+ enforce: 'post',
+ resolveId(id, parent) {
+ if (id.startsWith('.') && parent && fs.existsSync(parent)) {
+ return npath.posix.join(npath.posix.dirname(parent), id);
+ }
+ },
+ async load(id) {
+ const source = await tryLoadModule(id);
+ return source;
+ },
},
- async load(id) {
- const source = await tryLoadModule(id);
- return source;
- }
- }, {
- name: 'astro:load-fallback-hmr',
- enforce: 'pre',
- handleHotUpdate(context) {
- // Wrap context.read so it checks our filesystem first.
- const read = context.read;
- context.read = async () => {
- const source = await tryLoadModule(context.file);
- if(source) return source;
- return read.call(context);
- };
- }
- }];
+ {
+ name: 'astro:load-fallback-hmr',
+ enforce: 'pre',
+ handleHotUpdate(context) {
+ // Wrap context.read so it checks our filesystem first.
+ const read = context.read;
+ context.read = async () => {
+ const source = await tryLoadModule(context.file);
+ if (source) return source;
+ return read.call(context);
+ };
+ },
+ },
+ ];
}
const queryRE = /\?.*$/s;
diff --git a/packages/astro/test/units/dev/dev.test.js b/packages/astro/test/units/dev/dev.test.js
index 2d45eb354..b8159e5b7 100644
--- a/packages/astro/test/units/dev/dev.test.js
+++ b/packages/astro/test/units/dev/dev.test.js
@@ -70,12 +70,17 @@ describe('dev container', () => {
let $ = cheerio.load(html);
expect($('body.one')).to.have.a.lengthOf(1);
- fs.writeFileFromRootSync('/src/components/Header.astro', `
+ fs.writeFileFromRootSync(
+ '/src/components/Header.astro',
+ `
<h1>{Astro.props.title}</h1>
- `);
+ `
+ );
triggerFSEvent(container, fs, '/src/components/Header.astro', 'change');
-
- fs.writeFileFromRootSync('/src/pages/index.astro', `
+
+ fs.writeFileFromRootSync(
+ '/src/pages/index.astro',
+ `
---
import Header from '../components/Header.astro';
const name = 'Testing';
@@ -86,7 +91,8 @@ describe('dev container', () => {
<Header title={name} />
</body>
</html>
- `);
+ `
+ );
triggerFSEvent(container, fs, '/src/pages/index.astro', 'change');
r = createRequestAndResponse({
diff --git a/packages/astro/test/units/test-utils.js b/packages/astro/test/units/test-utils.js
index 80e2c150b..abf4486e3 100644
--- a/packages/astro/test/units/test-utils.js
+++ b/packages/astro/test/units/test-utils.js
@@ -60,17 +60,11 @@ export function createFs(json, root) {
* @param {'change'} eventType
*/
export function triggerFSEvent(container, fs, shortPath, eventType) {
- container.viteServer.watcher.emit(
- eventType,
- fs.getFullyResolvedPath(shortPath)
- );
+ container.viteServer.watcher.emit(eventType, fs.getFullyResolvedPath(shortPath));
- if(!fileURLToPath(container.settings.config.root).startsWith('/')) {
+ if (!fileURLToPath(container.settings.config.root).startsWith('/')) {
const drive = fileURLToPath(container.settings.config.root).slice(0, 2);
- container.viteServer.watcher.emit(
- eventType,
- drive + fs.getFullyResolvedPath(shortPath)
- );
+ container.viteServer.watcher.emit(eventType, drive + fs.getFullyResolvedPath(shortPath));
}
}