diff --git a/.gitignore b/.gitignore index 9a6fbeb..1c00a77 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ tmp dist/* !dist/index.d.ts !dist/asm.d.ts +!dist/auto.d.ts diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..0466624 --- /dev/null +++ b/browser.js @@ -0,0 +1,10 @@ +import initYoga from "./index.js"; + +const Yoga = await initYoga( + await fetch(new URL("./yoga.wasm", import.meta.url)).then((res) => + res.arrayBuffer() + ) +); + +export * from "./yoga/javascript/src_js/generated/YGEnums.js"; +export default Yoga; diff --git a/dist/auto.d.ts b/dist/auto.d.ts new file mode 100644 index 0000000..d77dead --- /dev/null +++ b/dist/auto.d.ts @@ -0,0 +1,7 @@ +import type { Yoga } from "./wrapAsm.js"; + +export * from "./generated/YGEnums.js"; +export * from "./wrapAsm.js"; + +declare const yogaInstance: Yoga; +export default yogaInstance; diff --git a/node.js b/node.js new file mode 100644 index 0000000..c9822d6 --- /dev/null +++ b/node.js @@ -0,0 +1,10 @@ +import { readFile } from "node:fs/promises"; +import { createRequire } from "node:module"; +import initYoga from "./index.js"; + +const Yoga = await initYoga( + await readFile(createRequire(import.meta.url).resolve("./yoga.wasm")) +); + +export * from "./yoga/javascript/src_js/generated/YGEnums.js"; +export default Yoga; diff --git a/package.json b/package.json index 61c0327..acaed5d 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,9 @@ "*": { "asm": [ "dist/asm.d.ts" + ], + "auto": [ + "dist/auto.d.ts" ] } }, @@ -20,6 +23,11 @@ "./asm": { "types": "./dist/asm.d.ts", "default": "./dist/asm.js" + }, + "./auto": { + "types": "./dist/auto.d.ts", + "browser": "./dist/browser.js", + "default": "./dist/node.js" } }, "scripts": { diff --git a/rollup.config.js b/rollup.config.js index b7a0d87..d25019c 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -9,8 +9,10 @@ await copyFile("./tmp/yoga.wasm", "./dist/yoga.wasm"); // copy d.ts files let wrapAsm = await readFile("./yoga/javascript/src_js/wrapAsm.d.ts"); -wrapAsm = wrapAsm.toString().replace(/\.\/generated\/YGEnums/g, './generated/YGEnums.js') -await writeFile("./dist/wrapAsm.d.ts", wrapAsm) +wrapAsm = wrapAsm + .toString() + .replace(/\.\/generated\/YGEnums/g, "./generated/YGEnums.js"); +await writeFile("./dist/wrapAsm.d.ts", wrapAsm); await copyFile( "./yoga/javascript/src_js/generated/YGEnums.d.ts", @@ -19,7 +21,7 @@ await copyFile( export default [ { - input: ["asm.js", "index.js"], + input: ["asm.js", "index.js", "node.js", "browser.js"], output: { dir: "dist", format: "esm", @@ -29,9 +31,11 @@ export default [ commonjs({ esmExternals: true, }), - minify(defineRollupSwcMinifyOption({ - compress: { passes: 2 } - })) + minify( + defineRollupSwcMinifyOption({ + compress: { passes: 2 }, + }) + ), ], }, ];