@sveltejs/vite-plugin-svelte 1.0.0-next.37 → 1.0.0-next.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -710,11 +710,20 @@ function needsOptimization(dep, localRequire) {
710
710
  if (!depData)
711
711
  return false;
712
712
  const pkg = depData.pkg;
713
- const isCjs = pkg.main && !pkg.module && !pkg.exports;
714
- if (!isCjs)
713
+ const hasEsmFields = pkg.module || pkg.exports;
714
+ if (hasEsmFields)
715
715
  return false;
716
- const entryExt = import_path2.default.extname(pkg.main);
717
- return !entryExt || entryExt === ".js" || entryExt === ".cjs";
716
+ if (pkg.main) {
717
+ const entryExt = import_path2.default.extname(pkg.main);
718
+ return !entryExt || entryExt === ".js" || entryExt === ".cjs";
719
+ } else {
720
+ try {
721
+ localRequire.resolve(`${dep}/index.js`);
722
+ return true;
723
+ } catch {
724
+ return false;
725
+ }
726
+ }
718
727
  }
719
728
 
720
729
  // src/utils/options.ts
@@ -1448,8 +1457,6 @@ function resolveViaPackageJsonSvelte(importee, importer, cache) {
1448
1457
  cache.setResolvedSvelteField(importee, importer, result);
1449
1458
  return result;
1450
1459
  }
1451
- } else {
1452
- throw new Error(`failed to resolve package.json of ${importee} imported by ${importer}`);
1453
1460
  }
1454
1461
  }
1455
1462
  }
@@ -1486,10 +1493,10 @@ var PREBUNDLE_SENSITIVE_OPTIONS = [
1486
1493
  async function handleOptimizeDeps(options, viteConfig) {
1487
1494
  if (!options.experimental.prebundleSvelteLibraries || !viteConfig.cacheDir)
1488
1495
  return;
1489
- const viteMetadataPath = import_path6.default.resolve(viteConfig.cacheDir, "_metadata.json");
1490
- if (!import_fs5.default.existsSync(viteMetadataPath))
1496
+ const viteMetadataPath = findViteMetadataPath(viteConfig.cacheDir);
1497
+ if (!viteMetadataPath)
1491
1498
  return;
1492
- const svelteMetadataPath = import_path6.default.resolve(viteConfig.cacheDir, "_svelte_metadata.json");
1499
+ const svelteMetadataPath = import_path6.default.resolve(viteMetadataPath, "../_svelte_metadata.json");
1493
1500
  const currentSvelteMetadata = JSON.stringify(generateSvelteMetadata(options), (_, value) => {
1494
1501
  return typeof value === "function" ? value.toString() : value;
1495
1502
  });
@@ -1508,6 +1515,14 @@ function generateSvelteMetadata(options) {
1508
1515
  }
1509
1516
  return metadata;
1510
1517
  }
1518
+ function findViteMetadataPath(cacheDir) {
1519
+ const metadataPaths = ["_metadata.json", "deps/_metadata.json"];
1520
+ for (const metadataPath of metadataPaths) {
1521
+ const viteMetadataPath = import_path6.default.resolve(cacheDir, metadataPath);
1522
+ if (import_fs5.default.existsSync(viteMetadataPath))
1523
+ return viteMetadataPath;
1524
+ }
1525
+ }
1511
1526
 
1512
1527
  // src/index.ts
1513
1528
  function svelte(inlineOptions) {
@@ -1516,7 +1531,6 @@ function svelte(inlineOptions) {
1516
1531
  }
1517
1532
  validateInlineOptions(inlineOptions);
1518
1533
  const cache = new VitePluginSvelteCache();
1519
- const pkg_resolve_errors = /* @__PURE__ */ new Set();
1520
1534
  let requestParser;
1521
1535
  let options;
1522
1536
  let viteConfig;
@@ -1592,35 +1606,19 @@ function svelte(inlineOptions) {
1592
1606
  }
1593
1607
  return resolvedSvelteSSR;
1594
1608
  }
1595
- try {
1596
- const resolved = resolveViaPackageJsonSvelte(importee, importer, cache);
1597
- if (resolved) {
1598
- log.debug(`resolveId resolved ${resolved} via package.json svelte field of ${importee}`);
1599
- return resolved;
1600
- }
1601
- } catch (err) {
1602
- pkg_resolve_errors.add(importee);
1609
+ const resolved = resolveViaPackageJsonSvelte(importee, importer, cache);
1610
+ if (resolved) {
1611
+ log.debug(`resolveId resolved ${resolved} via package.json svelte field of ${importee}`);
1612
+ return resolved;
1603
1613
  }
1604
1614
  },
1605
1615
  async transform(code, id, opts) {
1606
1616
  var _a;
1607
1617
  const ssr = !!(opts == null ? void 0 : opts.ssr);
1608
1618
  const svelteRequest = requestParser(id, ssr);
1609
- if (!svelteRequest) {
1619
+ if (!svelteRequest || svelteRequest.query.svelte) {
1610
1620
  return;
1611
1621
  }
1612
- const { filename, query } = svelteRequest;
1613
- if (query.svelte) {
1614
- if (query.type === "style") {
1615
- const css = cache.getCSS(svelteRequest);
1616
- if (css) {
1617
- log.debug(`transform returns css for ${filename}`);
1618
- return css;
1619
- }
1620
- }
1621
- log.error("failed to transform tagged svelte request", svelteRequest);
1622
- throw new Error(`failed to transform tagged svelte request for id ${id}`);
1623
- }
1624
1622
  let compileData;
1625
1623
  try {
1626
1624
  compileData = await compileSvelte2(svelteRequest, code, options);
@@ -1634,7 +1632,7 @@ function svelte(inlineOptions) {
1634
1632
  ensureWatchedFile(options.server.watcher, d, options.root);
1635
1633
  });
1636
1634
  }
1637
- log.debug(`transform returns compiled js for ${filename}`);
1635
+ log.debug(`transform returns compiled js for ${svelteRequest.filename}`);
1638
1636
  return compileData.compiled.js;
1639
1637
  },
1640
1638
  handleHotUpdate(ctx) {
@@ -1645,13 +1643,6 @@ function svelte(inlineOptions) {
1645
1643
  if (svelteRequest) {
1646
1644
  return handleHotUpdate(compileSvelte2, ctx, svelteRequest, cache, options);
1647
1645
  }
1648
- },
1649
- buildEnd() {
1650
- if (pkg_resolve_errors.size > 0) {
1651
- log.warn(`vite-plugin-svelte was unable to find package.json of the following packages and wasn't able to resolve via their "svelte" field.
1652
- If you had difficulties importing svelte components from a package, then please contact the author and ask them to export the package.json file.
1653
- ${Array.from(pkg_resolve_errors, (s) => `- ${s}`).join("\n")}`.replace(/\t/g, ""));
1654
- }
1655
1646
  }
1656
1647
  };
1657
1648
  }