@golar/svelte 0.0.9 → 0.0.11

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.
Files changed (2) hide show
  1. package/dist/bin.js +31 -13
  2. package/package.json +3 -3
package/dist/bin.js CHANGED
@@ -1,39 +1,57 @@
1
1
  import { createRequire } from "node:module";
2
- import { internalHelpers, svelte2tsx } from "svelte2tsx";
3
2
  import { createPlugin } from "@golar/plugin";
4
3
  import path from "node:path";
5
4
  import process from "node:process";
6
5
  import util from "node:util";
7
6
  import { sourceMapToMappings } from "@golar/sourcemap";
7
+ import { pathToFileURL } from "node:url";
8
8
 
9
9
  //#region src/bin.ts
10
10
  const require = createRequire(process.cwd());
11
11
  const svelteTsxFilesByProject = /* @__PURE__ */ new Map();
12
- async function importSvelteTsxFiles(cwd, configFileName) {
12
+ let packages = null;
13
+ async function importPackages(cwd, configFileName) {
14
+ if (packages != null) return packages;
13
15
  const resolvePaths = [];
14
16
  if (configFileName != null) resolvePaths.push(path.dirname(configFileName));
15
17
  resolvePaths.push(cwd);
16
18
  const sveltePackageJsonPath = require.resolve("svelte/package.json", { paths: resolvePaths });
17
- const { default: svelteCompilerPackageJson } = await import(sveltePackageJsonPath, { with: { type: "json" } });
19
+ const { default: svelteCompilerPackageJson } = await import(pathToFileURL(sveltePackageJsonPath).toString(), { with: { type: "json" } });
18
20
  const majorVersion = Number.parseInt(svelteCompilerPackageJson.version.split(".")[0]);
19
- const ts = await import("typescript");
20
- return internalHelpers.get_global_types(ts.sys, majorVersion === 3, path.dirname(sveltePackageJsonPath), path.dirname(require.resolve("svelte2tsx", { paths: [...resolvePaths, import.meta.dirname] })), configFileName ?? cwd);
21
+ const svelte2tsxPath = require.resolve("svelte2tsx", { paths: [...resolvePaths, import.meta.dirname] });
22
+ const [svelteCompiler, svelte2tsx, ts] = await Promise.all([
23
+ majorVersion >= 4 ? import(pathToFileURL(require.resolve("svelte/compiler", { paths: [...resolvePaths, import.meta.dirname] })).toString()) : void 0,
24
+ import(pathToFileURL(svelte2tsxPath).toString()),
25
+ import("typescript")
26
+ ]);
27
+ return packages = {
28
+ svelte2tsx,
29
+ svelte2tsxPath: path.dirname(svelte2tsxPath),
30
+ svelteMajorVersion: majorVersion,
31
+ sveltePath: path.dirname(sveltePackageJsonPath),
32
+ svelteCompiler,
33
+ ts
34
+ };
21
35
  }
22
36
  createPlugin({
23
37
  filename: import.meta.filename,
24
38
  extraExtensions: [".svelte"],
25
39
  async createServiceCode(cwd, configFileName, fileName, sourceText) {
40
+ const imported = await importPackages(cwd, configFileName).catch((e) => util.inspect(e));
41
+ if (typeof imported === "string") return { errors: [{
42
+ start: 0,
43
+ end: 0,
44
+ message: imported
45
+ }] };
46
+ const { svelte2tsx, svelte2tsxPath, svelteMajorVersion, sveltePath, svelteCompiler, ts } = imported;
26
47
  const project = `${cwd}::${configFileName}`;
27
- let svelteTsxFiles;
28
- {
29
- let files = svelteTsxFilesByProject.get(project);
30
- if (files == null) svelteTsxFilesByProject.set(project, files = importSvelteTsxFiles(cwd, configFileName));
31
- svelteTsxFiles = await files;
32
- }
48
+ let svelteTsxFiles = svelteTsxFilesByProject.get(project);
49
+ if (svelteTsxFiles == null) svelteTsxFilesByProject.set(project, svelteTsxFiles = svelte2tsx.internalHelpers.get_global_types(ts.sys, svelteMajorVersion === 3, sveltePath, svelte2tsxPath, configFileName ?? cwd));
33
50
  try {
34
- const tsx = svelte2tsx(sourceText, {
51
+ const tsx = svelte2tsx.svelte2tsx(sourceText, {
35
52
  isTsFile: true,
36
- mode: "ts"
53
+ mode: "ts",
54
+ parse: svelteCompiler.parse
37
55
  });
38
56
  return {
39
57
  serviceText: tsx.code + "\n\n" + svelteTsxFiles.map((p) => `import ${JSON.stringify(p)}`).join("\n"),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golar/svelte",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./golar-entry": "./dist/golar-entry.js"
@@ -22,8 +22,8 @@
22
22
  },
23
23
  "dependencies": {
24
24
  "svelte2tsx": "^0.7.46",
25
- "@golar/plugin": "0.0.9",
26
- "@golar/sourcemap": "0.0.9"
25
+ "@golar/sourcemap": "0.0.11",
26
+ "@golar/plugin": "0.0.11"
27
27
  },
28
28
  "peerDependencies": {
29
29
  "svelte": "^4.0.0 || ^5.0.0",