@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.
- package/dist/bin.js +31 -13
- 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
|
-
|
|
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
|
|
20
|
-
|
|
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.
|
|
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/
|
|
26
|
-
"@golar/
|
|
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",
|