Socket
Socket
Sign inDemoInstall

@sveltejs/vite-plugin-svelte

Package Overview
Dependencies
Maintainers
4
Versions
107
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@sveltejs/vite-plugin-svelte - npm Package Compare versions

Comparing version 1.0.0-next.34 to 1.0.0-next.35

70

dist/index.js

@@ -29,3 +29,3 @@ var __defProp = Object.defineProperty;

// src/index.ts
import fs8 from "fs";
import fs7 from "fs";

@@ -1241,2 +1241,3 @@ // src/utils/log.ts

this._dependants = /* @__PURE__ */ new Map();
this._resolvedSvelteFields = /* @__PURE__ */ new Map();
}

@@ -1307,2 +1308,11 @@ update(compileData) {

}
getResolvedSvelteField(name, importer) {
return this._resolvedSvelteFields.get(this._getResolvedSvelteFieldKey(name, importer));
}
setResolvedSvelteField(importee, importer = void 0, resolvedSvelte) {
this._resolvedSvelteFields.set(this._getResolvedSvelteFieldKey(importee, importer), resolvedSvelte);
}
_getResolvedSvelteFieldKey(importee, importer) {
return importer ? `${importer} > ${importee}` : importee;
}
};

@@ -1387,11 +1397,21 @@

import path5 from "path";
import fs6 from "fs";
import relative from "require-relative";
function resolveViaPackageJsonSvelte(importee, importer) {
if (importer && isBareImport(importee)) {
const importeePkgFile = relative.resolve(`${importee}/package.json`, path5.dirname(importer));
const importeePkg = JSON.parse(fs6.readFileSync(importeePkgFile, { encoding: "utf-8" }));
if (importeePkg.svelte) {
return path5.resolve(path5.dirname(importeePkgFile), importeePkg.svelte);
import { createRequire as createRequire4 } from "module";
function resolveViaPackageJsonSvelte(importee, importer, cache) {
if (importer && isBareImport(importee) && !is_common_without_svelte_field(importee)) {
const cached = cache.getResolvedSvelteField(importee, importer);
if (cached) {
return cached;
}
const localRequire = createRequire4(importer);
const pkgData = resolveDependencyData(importee, localRequire);
if (pkgData) {
const { pkg, dir } = pkgData;
if (pkg.svelte) {
const result = path5.resolve(dir, pkg.svelte);
cache.setResolvedSvelteField(importee, importer, result);
return result;
}
} else {
throw new Error(`failed to resolve package.json of ${importee} imported by ${importer}`);
}
}

@@ -1415,3 +1435,3 @@ }

// src/utils/optimizer.ts
import fs7 from "fs";
import fs6 from "fs";
import path6 from "path";

@@ -1431,3 +1451,3 @@ import { optimizeDeps } from "vite";

const viteMetadataPath = path6.resolve(viteConfig.cacheDir, "_metadata.json");
if (!fs7.existsSync(viteMetadataPath))
if (!fs6.existsSync(viteMetadataPath))
return;

@@ -1438,4 +1458,4 @@ const svelteMetadataPath = path6.resolve(viteConfig.cacheDir, "_svelte_metadata.json");

});
if (fs7.existsSync(svelteMetadataPath)) {
const existingSvelteMetadata = fs7.readFileSync(svelteMetadataPath, "utf8");
if (fs6.existsSync(svelteMetadataPath)) {
const existingSvelteMetadata = fs6.readFileSync(svelteMetadataPath, "utf8");
if (existingSvelteMetadata === currentSvelteMetadata)

@@ -1445,3 +1465,3 @@ return;

await optimizeDeps(viteConfig, true);
fs7.writeFileSync(svelteMetadataPath, currentSvelteMetadata);
fs6.writeFileSync(svelteMetadataPath, currentSvelteMetadata);
}

@@ -1463,3 +1483,3 @@ function generateSvelteMetadata(options) {

const cache = new VitePluginSvelteCache();
const pkg_export_errors = /* @__PURE__ */ new Set();
const pkg_resolve_errors = /* @__PURE__ */ new Set();
let requestParser;

@@ -1513,3 +1533,3 @@ let options;

log.debug(`load returns raw content for ${filename}`);
return fs8.readFileSync(filename, "utf-8");
return fs7.readFileSync(filename, "utf-8");
}

@@ -1542,3 +1562,3 @@ }

try {
const resolved = resolveViaPackageJsonSvelte(importee, importer);
const resolved = resolveViaPackageJsonSvelte(importee, importer, cache);
if (resolved) {

@@ -1549,11 +1569,3 @@ log.debug(`resolveId resolved ${resolved} via package.json svelte field of ${importee}`);

} catch (err) {
switch (err.code) {
case "ERR_PACKAGE_PATH_NOT_EXPORTED":
pkg_export_errors.add(importee);
return null;
case "MODULE_NOT_FOUND":
return null;
default:
throw err;
}
pkg_resolve_errors.add(importee);
}

@@ -1606,4 +1618,6 @@ },

buildEnd() {
if (pkg_export_errors.size > 0) {
log.warn(`The following packages did not export their \`package.json\` file so we could not check the "svelte" field. If you had difficulties importing svelte components from a package, then please contact the author and ask them to export the package.json file.`, Array.from(pkg_export_errors, (s) => `- ${s}`).join("\n"));
if (pkg_resolve_errors.size > 0) {
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.
If you had difficulties importing svelte components from a package, then please contact the author and ask them to export the package.json file.
${Array.from(pkg_resolve_errors, (s) => `- ${s}`).join("\n")}`.replace(/\t/g, ""));
}

@@ -1610,0 +1624,0 @@ }

13

package.json
{
"name": "@sveltejs/vite-plugin-svelte",
"version": "1.0.0-next.34",
"version": "1.0.0-next.35",
"license": "MIT",

@@ -47,3 +47,2 @@ "author": "dominikg",

"magic-string": "^0.25.7",
"require-relative": "^0.8.7",
"svelte-hmr": "^0.14.9"

@@ -65,7 +64,7 @@ },

"diff-match-patch": "^1.0.5",
"esbuild": "^0.14.10",
"rollup": "^2.62.0",
"svelte": "^3.44.3",
"tsup": "^5.11.10",
"vite": "^2.7.10"
"esbuild": "^0.14.11",
"rollup": "^2.64.0",
"svelte": "^3.46.2",
"tsup": "^5.11.11",
"vite": "^2.7.13"
},

@@ -72,0 +71,0 @@ "scripts": {

@@ -30,3 +30,3 @@ import fs from 'fs';

const cache = new VitePluginSvelteCache();
const pkg_export_errors = new Set();
const pkg_resolve_errors = new Set();
// updated in configResolved hook

@@ -141,3 +141,3 @@ let requestParser: IdParser;

try {
const resolved = resolveViaPackageJsonSvelte(importee, importer);
const resolved = resolveViaPackageJsonSvelte(importee, importer, cache);
if (resolved) {

@@ -148,11 +148,3 @@ log.debug(`resolveId resolved ${resolved} via package.json svelte field of ${importee}`);

} catch (err) {
switch (err.code) {
case 'ERR_PACKAGE_PATH_NOT_EXPORTED':
pkg_export_errors.add(importee);
return null;
case 'MODULE_NOT_FOUND':
return null;
default:
throw err;
}
pkg_resolve_errors.add(importee);
}

@@ -212,6 +204,7 @@ },

buildEnd() {
if (pkg_export_errors.size > 0) {
if (pkg_resolve_errors.size > 0) {
log.warn(
`The following packages did not export their \`package.json\` file so we could not check the "svelte" field. If you had difficulties importing svelte components from a package, then please contact the author and ask them to export the package.json file.`,
Array.from(pkg_export_errors, (s) => `- ${s}`).join('\n')
`vite-plugin-svelte was unable to find package.json of the following packages and wasn't able to resolve via their "svelte" field.
If you had difficulties importing svelte components from a package, then please contact the author and ask them to export the package.json file.
${Array.from(pkg_resolve_errors, (s) => `- ${s}`).join('\n')}`.replace(/\t/g, '')
);

@@ -218,0 +211,0 @@ }

@@ -69,3 +69,6 @@ import { log } from './log';

function resolveDependencyData(dep: string, localRequire: NodeRequire): DependencyData | void {
export function resolveDependencyData(
dep: string,
localRequire: NodeRequire
): DependencyData | void {
try {

@@ -170,3 +173,3 @@ const pkgJson = `${dep}/package.json`;

*/
function is_common_without_svelte_field(dependency: string): boolean {
export function is_common_without_svelte_field(dependency: string): boolean {
return (

@@ -173,0 +176,0 @@ COMMON_DEPENDENCIES_WITHOUT_SVELTE_FIELD.includes(dependency) ||

import path from 'path';
import fs from 'fs';
// @ts-ignore
import relative from 'require-relative';
import { createRequire } from 'module';
import { is_common_without_svelte_field, resolveDependencyData } from './dependencies';
import { VitePluginSvelteCache } from './vite-plugin-svelte-cache';
export function resolveViaPackageJsonSvelte(importee: string, importer?: string): string | void {
if (importer && isBareImport(importee)) {
const importeePkgFile = relative.resolve(`${importee}/package.json`, path.dirname(importer));
const importeePkg = JSON.parse(fs.readFileSync(importeePkgFile, { encoding: 'utf-8' }));
if (importeePkg.svelte) {
return path.resolve(path.dirname(importeePkgFile), importeePkg.svelte);
export function resolveViaPackageJsonSvelte(
importee: string,
importer: string | undefined,
cache: VitePluginSvelteCache
): string | void {
if (importer && isBareImport(importee) && !is_common_without_svelte_field(importee)) {
const cached = cache.getResolvedSvelteField(importee, importer);
if (cached) {
return cached;
}
const localRequire = createRequire(importer);
const pkgData = resolveDependencyData(importee, localRequire);
if (pkgData) {
const { pkg, dir } = pkgData;
if (pkg.svelte) {
const result = path.resolve(dir, pkg.svelte);
cache.setResolvedSvelteField(importee, importer, result);
return result;
}
} else {
throw new Error(`failed to resolve package.json of ${importee} imported by ${importer}`);
}
}

@@ -14,0 +29,0 @@ }

@@ -9,2 +9,3 @@ import { SvelteRequest } from './id';

private _dependants = new Map<string, Set<string>>();
private _resolvedSvelteFields = new Map<string, string>();

@@ -84,2 +85,21 @@ public update(compileData: CompileData) {

}
public getResolvedSvelteField(name: string, importer?: string): string | void {
return this._resolvedSvelteFields.get(this._getResolvedSvelteFieldKey(name, importer));
}
public setResolvedSvelteField(
importee: string,
importer: string | undefined = undefined,
resolvedSvelte: string
) {
this._resolvedSvelteFields.set(
this._getResolvedSvelteFieldKey(importee, importer),
resolvedSvelte
);
}
private _getResolvedSvelteFieldKey(importee: string, importer?: string): string {
return importer ? `${importer} > ${importee}` : importee;
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc