MCPcopy
hub / github.com/FredKSchott/snowpack / parseFileForInstallTargets

Function parseFileForInstallTargets

snowpack/src/scan-imports.ts:195–250  ·  view source on GitHub ↗
({
  locOnDisk,
  baseExt,
  contents,
  root,
}: SnowpackSourceFile<string>)

Source from the content-addressed store, hash-verified

193}
194
195function parseFileForInstallTargets({
196 locOnDisk,
197 baseExt,
198 contents,
199 root,
200}: SnowpackSourceFile<string>): InstallTarget[] {
201 const relativeLoc = path.relative(root, locOnDisk);
202
203 try {
204 switch (baseExt as ScannableExt) {
205 case '.css':
206 case '.less':
207 case '.sass':
208 case '.scss': {
209 logger.debug(`Scanning ${relativeLoc} for imports as CSS`);
210 return parseCssForInstallTargets(contents);
211 }
212 case '.html':
213 case '.svelte':
214 case '.interface':
215 case '.vue': {
216 logger.debug(`Scanning ${relativeLoc} for imports as HTML`);
217 return [
218 ...parseCssForInstallTargets(extractCssFromHtml(contents)),
219 ...parseJsForInstallTargets(extractJsFromHtml({contents, baseExt})),
220 ];
221 }
222 case '.astro': {
223 logger.debug(`Scanning ${relativeLoc} for imports as Astro`);
224 return [
225 ...parseCssForInstallTargets(extractCssFromHtml(contents)),
226 ...parseJsForInstallTargets(extractJsFromAstro(contents)),
227 ];
228 }
229 case '.cjs':
230 case '.js':
231 case '.jsx':
232 case '.mjs':
233 case '.ts':
234 case '.tsx': {
235 logger.debug(`Scanning ${relativeLoc} for imports as JS`);
236 return parseJsForInstallTargets(contents);
237 }
238 default: {
239 logger.debug(
240 `Skip scanning ${relativeLoc} for imports (unknown file extension ${baseExt})`,
241 );
242 return [];
243 }
244 }
245 } catch (err) {
246 // Another error! No hope left, just abort.
247 logger.error(`! ${locOnDisk}`);
248 throw err;
249 }
250}
251
252/** Extract only JS within <script type="module"> tags (works for .svelte and .vue files, too) */

Callers 1

scanImportsFromFilesFunction · 0.85

Calls 7

extractCssFromHtmlFunction · 0.85
parseJsForInstallTargetsFunction · 0.85
extractJsFromHtmlFunction · 0.85
extractJsFromAstroFunction · 0.85
debugMethod · 0.80
errorMethod · 0.80

Tested by

no test coverage detected