Skip to content

Commit

Permalink
Replace use of isCSSRequest
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewp committed Feb 7, 2023
1 parent 83f18f8 commit b429a8a
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 31 deletions.
4 changes: 2 additions & 2 deletions packages/astro/src/core/build/plugins/plugin-css.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import * as crypto from 'node:crypto';
import * as npath from 'node:path';
import type { GetModuleInfo } from 'rollup';
import { Plugin as VitePlugin, ResolvedConfig, transformWithEsbuild } from 'vite';
import { isCSSRequest } from '../../render/util.js';
import { isBuildableCSSRequest } from '../../render/dev/util.js';
import type { BuildInternals } from '../internal';
import type { AstroBuildPlugin } from '../plugin';
import type { PageBuildData, StaticBuildOptions } from '../types';
Expand Down Expand Up @@ -66,7 +66,7 @@ export function rollupPluginAstroBuildCSS(options: PluginOptions): VitePlugin[]
after(id, meta) {
// For CSS, create a hash of all of the pages that use it.
// This causes CSS to be built into shared chunks when used by multiple pages.
if (isCSSRequest(id)) {
if (isBuildableCSSRequest(id)) {
for (const [pageInfo] of walkParentInfos(id, {
getModuleInfo: meta.getModuleInfo,
})) {
Expand Down
5 changes: 2 additions & 3 deletions packages/astro/src/core/render/dev/css.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import type { ModuleLoader } from '../../module-loader/index';
import path from 'path';
import { RuntimeMode } from '../../../@types/astro.js';
import { viteID } from '../../util.js';
import { STYLE_EXTENSIONS } from '../util.js';
import { isCSSRequest } from './util.js';
import { crawlGraph } from './vite.js';

/** Given a filePath URL, crawl Vite’s module graph to find all style imports. */
Expand All @@ -16,8 +16,7 @@ export async function getStylesForURL(
const importedStylesMap = new Map<string, string>();

for await (const importedModule of crawlGraph(loader, viteID(filePath), true)) {
const ext = path.extname(importedModule.url).toLowerCase();
if (STYLE_EXTENSIONS.has(ext)) {
if (isCSSRequest(importedModule.url)) {
let ssrModule: Record<string, any>;
try {
// The SSR module is possibly not loaded. Load it if it's null.
Expand Down
9 changes: 9 additions & 0 deletions packages/astro/src/core/render/dev/util.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { isCSSRequest } from 'vite';

const rawRE = /(?:\?|&)raw(?:&|$)/;
const inlineRE = /(?:\?|&)inline\b/;

export { isCSSRequest };

export const isBuildableCSSRequest = (request: string): boolean => isCSSRequest(request) &&
!rawRE.test(request) && !inlineRE.test(request);
6 changes: 3 additions & 3 deletions packages/astro/src/core/render/dev/vite.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import npath from 'path';
import { PROPAGATED_ASSET_FLAG } from '../../../content/consts.js';
import { SUPPORTED_MARKDOWN_FILE_EXTENSIONS } from '../../constants.js';
import { unwrapId } from '../../util.js';
import { STYLE_EXTENSIONS } from '../util.js';
import { isCSSRequest } from './util.js';

/**
* List of file extensions signalling we can (and should) SSR ahead-of-time
Expand Down Expand Up @@ -43,7 +43,7 @@ export async function* crawlGraph(
}
if (id === entry.id) {
scanned.add(id);
const entryIsStyle = STYLE_EXTENSIONS.has(npath.extname(id));
const entryIsStyle = isCSSRequest(id);
for (const importedModule of entry.importedModules) {
// some dynamically imported modules are *not* server rendered in time
// to only SSR modules that we can safely transform, we check against
Expand All @@ -57,7 +57,7 @@ export async function* crawlGraph(
// Tools like Tailwind might add HMR dependencies as `importedModules`
// but we should skip them--they aren't really imported. Without this,
// every hoisted script in the project is added to every page!
if (entryIsStyle && !STYLE_EXTENSIONS.has(npath.extname(importedModulePathname))) {
if (entryIsStyle && !isCSSRequest(importedModulePathname)) {
continue;
}
if (fileExtensionsToSSR.has(npath.extname(importedModulePathname))) {
Expand Down
23 changes: 0 additions & 23 deletions packages/astro/src/core/render/util.ts

This file was deleted.

0 comments on commit b429a8a

Please sign in to comment.