diff --git a/deno/deno.json b/deno/deno.json index 669d46f8..1cdf6964 100644 --- a/deno/deno.json +++ b/deno/deno.json @@ -1,6 +1,6 @@ { "name": "@flatpak-contrib/flatpak-deno-generator", - "version": "1.3.1", + "version": "1.3.2", "exports": "./src/main.ts", "license": "MIT" } diff --git a/deno/src/main.ts b/deno/src/main.ts index f0b353e0..4c167907 100644 --- a/deno/src/main.ts +++ b/deno/src/main.ts @@ -221,17 +221,12 @@ export async function main( ) => (val.os === undefined || val.os?.at(0) === "linux")) // deno-lint-ignore no-explicit-any .map(([key, val]: [string, any]) => { - let r = splitOnce(key, "@", "right"); - // hande peer deps - if (/_.+$/.test(r[0])) { - const actualModule = splitOnce(r[0], "_", "right")[0]; - r = splitOnce(actualModule, "@", "right"); - } - const name = r[0].includes("/") ? r[0].split("/")[1] : r[0]; + const r = key.match(/(^@?.+?)@([^_]+?)(?=_|$)/)!; + const name = r[1].includes("/") ? r[1].split("/")[1] : r[1]; const cpu = val.cpu?.at(0); return { - module: r[0], - version: r[1], + module: r[1], + version: r[2], name, cpu: cpu === "x64" ? "x86_64" : cpu === "arm64" ? "aarch64" : cpu, }; diff --git a/deno/tests/main_function.test.ts b/deno/tests/main_function.test.ts index a1e386e9..ec352531 100644 --- a/deno/tests/main_function.test.ts +++ b/deno/tests/main_function.test.ts @@ -40,6 +40,18 @@ Deno.test("main function: generates deno-sources.json from lockfile", async () = ], "bin": true, }, + // peer deps can have multiple peers + "@sveltejs/vite-plugin-svelte-inspector@4.0.1_@sveltejs+vite-plugin-svelte@5.0.3__svelte@5.25.3___acorn@8.14.1__vite@6.2.3_svelte@5.25.3__acorn@8.14.1_vite@6.2.3": + { + "integrity": + "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==", + "dependencies": [ + "@sveltejs/vite-plugin-svelte", + "debug", + "svelte", + "vite", + ], + }, }, remote: { "https://deno.land/std@0.203.0/uuid/v1.ts":