Skip to content

Commit c7f3a88

Browse files
Merge pull request #327 from ruby/katei/restructure-npm-pkg
Update npm package structure
2 parents e79a70c + 06a03b0 commit c7f3a88

20 files changed

+157
-199
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,17 +62,17 @@ See the `README.md` of each package for more detail and its usage.
6262
<tr>
6363
<td><a href="/packages/npm-packages/ruby-3.2-wasm-wasi">@ruby/3.2-wasm-wasi</a></td>
6464
<td>CRuby 3.2 built on WASI with JS interop support</td>
65-
<td><a href="https://badge.fury.io/js/@ruby/3.2-wasm-wasi" rel="nofollow"><img src="https://badge.fury.io/js/@ruby/3.2-wasm-wasi.svg" alt="npm version" style="max-width: 100%;"></a></td>
65+
<td><a href="https://www.npmjs.com/package/@ruby/3.2-wasm-wasi" rel="nofollow"><img src="https://badge.fury.io/js/@ruby%2F3.2-wasm-wasi.svg" alt="npm version" style="max-width: 100%;"></a></td>
6666
</tr>
6767
<tr>
6868
<td><a href="/packages/npm-packages/ruby-head-wasm-wasi">@ruby/head-wasm-wasi</a></td>
6969
<td>HEAD CRuby built on WASI with JS interop support</td>
70-
<td><a href="https://badge.fury.io/js/@ruby/head-wasm-wasi" rel="nofollow"><img src="https://badge.fury.io/js/@ruby/head-wasm-wasi.svg" alt="npm version" style="max-width: 100%;"></a></td>
70+
<td><a href="https://www.npmjs.com/package/@ruby/head-wasm-wasi" rel="nofollow"><img src="https://badge.fury.io/js/@ruby%2Fhead-wasm-wasi.svg" alt="npm version" style="max-width: 100%;"></a></td>
7171
</tr>
7272
<tr>
7373
<td><a href="/packages/npm-packages/ruby-head-wasm-emscripten">@ruby/head-wasm-emscripten</a></td>
7474
<td>HEAD CRuby built on Emscripten (not well tested)</td>
75-
<td><a href="https://badge.fury.io/js/@ruby/head-wasm-emscripten" rel="nofollow"><img src="https://badge.fury.io/js/@ruby/head-wasm-emscripten.svg" alt="npm version" style="max-width: 100%;"></a></td>
75+
<td><a href="https://www.npmjs.com/package/@ruby/head-wasm-emscripten" rel="nofollow"><img src="https://badge.fury.io/js/@ruby%2Fhead-wasm-emscripten.svg" alt="npm version" style="max-width: 100%;"></a></td>
7676
</tr>
7777
</tbody>
7878
</table>

packages/npm-packages/ruby-3.2-wasm-wasi/package.json

Lines changed: 12 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,20 @@
22
"name": "@ruby/3.2-wasm-wasi",
33
"version": "2.3.0",
44
"description": "Ruby 3.2 built on WASI",
5-
"main": "./dist/index.cjs.js",
6-
"umd:main": "./dist/index.umd.js",
7-
"module": "./dist/index.esm.js",
8-
"typings": "./dist/index.d.ts",
5+
"main": "./dist/cjs/index.js",
6+
"module": "./dist/esm/index.js",
97
"exports": {
108
".": {
11-
"browser": "./dist/index.esm.js",
12-
"umd": "./dist/index.umd.js",
13-
"import": "./dist/index.esm.js",
14-
"require": "./dist/index.cjs.js",
15-
"types": "./dist/browser.d.ts"
9+
"browser": "./dist/esm/index.js",
10+
"umd": "./dist/umd/index.js",
11+
"import": "./dist/esm/index.js",
12+
"require": "./dist/cjs/index.js"
1613
},
17-
"./dist/browser": {
18-
"browser": "./dist/browser.esm.js",
19-
"umd": "./dist/browser.umd.js",
20-
"import": "./dist/browser.esm.js",
21-
"require": "./dist/browser.cjs.js",
22-
"types": "./dist/browser.d.ts"
23-
},
24-
"./dist/browser.script": {
25-
"browser": "./dist/browser.script.esm.js",
26-
"umd": "./dist/browser.script.umd.js",
27-
"import": "./dist/browser.script.esm.js",
28-
"types": "./dist/browser.script.d.ts"
29-
},
30-
"./dist/node": {
31-
"import": "./dist/node.esm.js",
32-
"require": "./dist/node.cjs.js",
33-
"types": "./dist/node.d.ts"
14+
"./dist/*": {
15+
"browser": "./dist/esm/*.js",
16+
"umd": "./dist/umd/*.js",
17+
"import": "./dist/esm/*.js",
18+
"require": "./dist/cjs/*.js"
3419
}
3520
},
3621
"files": [
@@ -45,7 +30,7 @@
4530
"build:static": "npm run build:static:files && npm run build:static:compat",
4631
"build:wasm": "../ruby-wasm-wasi/tools/pack-ruby-wasm.sh ../../../rubies/3.2-wasm32-unknown-wasi-full-js-debug ./dist",
4732
"build:rollup": "rollup -c rollup.config.mjs",
48-
"build": "npm run build:deps && npm run build:static && npm run build:wasm && npm run build:rollup"
33+
"build": "npm run build:deps && npm run build:static && npm run build:wasm && npm run build:rollup && ../ruby-wasm-wasi/tools/post-build.sh ./dist"
4934
},
5035
"repository": "https://github.com/ruby/ruby.wasm",
5136
"homepage": "https://github.com/ruby/ruby.wasm/tree/main/packages/npm-packages/ruby-3.2-wasm-wasi",

packages/npm-packages/ruby-3.2-wasm-wasi/rollup.config.mjs

Lines changed: 0 additions & 19 deletions
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../ruby-head-wasm-wasi/rollup.config.mjs

packages/npm-packages/ruby-head-wasm-wasi/package.json

Lines changed: 12 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,20 @@
22
"name": "@ruby/head-wasm-wasi",
33
"version": "2.3.0",
44
"description": "Ruby head built on WASI",
5-
"main": "./dist/index.cjs.js",
6-
"umd:main": "./dist/index.umd.js",
7-
"module": "./dist/index.esm.js",
8-
"typings": "./dist/index.d.ts",
5+
"main": "./dist/cjs/index.js",
6+
"module": "./dist/esm/index.js",
97
"exports": {
108
".": {
11-
"browser": "./dist/index.esm.js",
12-
"umd": "./dist/index.umd.js",
13-
"import": "./dist/index.esm.js",
14-
"require": "./dist/index.cjs.js",
15-
"types": "./dist/browser.d.ts"
9+
"browser": "./dist/esm/index.js",
10+
"umd": "./dist/umd/index.js",
11+
"import": "./dist/esm/index.js",
12+
"require": "./dist/cjs/index.js"
1613
},
17-
"./dist/browser": {
18-
"browser": "./dist/browser.esm.js",
19-
"umd": "./dist/browser.umd.js",
20-
"import": "./dist/browser.esm.js",
21-
"require": "./dist/browser.cjs.js",
22-
"types": "./dist/browser.d.ts"
23-
},
24-
"./dist/browser.script": {
25-
"browser": "./dist/browser.script.esm.js",
26-
"umd": "./dist/browser.script.umd.js",
27-
"import": "./dist/browser.script.esm.js",
28-
"types": "./dist/browser.script.d.ts"
29-
},
30-
"./dist/node": {
31-
"import": "./dist/node.esm.js",
32-
"require": "./dist/node.cjs.js",
33-
"types": "./dist/node.d.ts"
14+
"./dist/*": {
15+
"browser": "./dist/esm/*.js",
16+
"umd": "./dist/umd/*.js",
17+
"import": "./dist/esm/*.js",
18+
"require": "./dist/cjs/*.js"
3419
}
3520
},
3621
"files": [
@@ -45,7 +30,7 @@
4530
"build:static": "npm run build:static:files && npm run build:static:compat",
4631
"build:wasm": "../ruby-wasm-wasi/tools/pack-ruby-wasm.sh ../../../rubies/head-wasm32-unknown-wasi-full-js-debug ./dist",
4732
"build:rollup": "rollup -c rollup.config.mjs",
48-
"build": "npm run build:deps && npm run build:static && npm run build:wasm && npm run build:rollup"
33+
"build": "npm run build:deps && npm run build:static && npm run build:wasm && npm run build:rollup && ../ruby-wasm-wasi/tools/post-build.sh ./dist"
4934
},
5035
"repository": "https://github.com/ruby/ruby.wasm",
5136
"homepage": "https://github.com/ruby/ruby.wasm/tree/main/packages/npm-packages/ruby-head-wasm-wasi",

packages/npm-packages/ruby-head-wasm-wasi/rollup.config.mjs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import json from "@rollup/plugin-json";
2+
import inject from "@rollup/plugin-inject";
23
import { nodeResolve } from "@rollup/plugin-node-resolve";
4+
import nodePolyfills from "rollup-plugin-polyfill-node";
35
import fs from "fs";
46
import path from "path";
57

@@ -14,6 +16,10 @@ export default [
1416
banner: "/* " + fs.readFileSync(path.resolve("../../../NOTICE"), "utf8") + "*/",
1517
}
1618
],
17-
plugins: [json(), nodeResolve()],
19+
plugins: [
20+
nodePolyfills(),
21+
inject({ Buffer: ["buffer", "Buffer"] }),
22+
json(), nodeResolve()
23+
],
1824
},
1925
];

packages/npm-packages/ruby-wasm-wasi/package.json

Lines changed: 18 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,24 @@
22
"name": "@ruby/wasm-wasi",
33
"version": "2.3.0",
44
"description": "WebAssembly port of CRuby with WASI",
5-
"main": "./dist/index.cjs.js",
6-
"umd:main": "./dist/index.umd.js",
7-
"module": "./dist/index.esm.js",
8-
"typings": "./dist/index.d.ts",
5+
"main": "./dist/cjs/index.js",
6+
"module": "./dist/esm/index.js",
7+
"browser": "./dist/index.umd.js",
8+
"typings": "./dist/esm/index.d.ts",
99
"exports": {
1010
".": {
11-
"browser": "./dist/index.esm.js",
12-
"umd": "./dist/index.umd.js",
13-
"import": "./dist/index.esm.js",
14-
"require": "./dist/index.cjs.js",
15-
"types": "./dist/browser.d.ts"
11+
"browser": "./dist/esm/index.js",
12+
"umd": "./dist/umd/index.js",
13+
"import": "./dist/esm/index.js",
14+
"require": "./dist/cjs/index.js",
15+
"types": "./dist/esm/browser.d.ts"
1616
},
17-
"./dist/browser": {
18-
"browser": "./dist/browser.esm.js",
19-
"umd": "./dist/browser.umd.js",
20-
"import": "./dist/browser.esm.js",
21-
"require": "./dist/browser.cjs.js",
22-
"types": "./dist/browser.d.ts"
23-
},
24-
"./dist/browser.script": {
25-
"browser": "./dist/browser.script.esm.js",
26-
"umd": "./dist/browser.script.umd.js",
27-
"import": "./dist/browser.script.esm.js",
28-
"types": "./dist/browser.script.d.ts"
29-
},
30-
"./dist/node": {
31-
"import": "./dist/node.esm.js",
32-
"require": "./dist/node.cjs.js",
33-
"types": "./dist/node.d.ts"
17+
"./dist/*": {
18+
"browser": "./dist/esm/*.js",
19+
"umd": "./dist/umd/*.js",
20+
"import": "./dist/esm/*.js",
21+
"require": "./dist/cjs/*.js",
22+
"types": "./dist/esm/*.d.ts"
3423
}
3524
},
3625
"files": [
@@ -61,8 +50,9 @@
6150
"serve:example": "bundle exec ruby -run -e httpd ./example -p 8085",
6251
"format": "prettier --write .",
6352
"build:static": "./tools/pack-bindgen-src.sh ./dist",
64-
"build:rollup": "rollup -c rollup.config.mjs && tsc --build",
65-
"build": "npm run build:static && npm run build:rollup"
53+
"build:rollup": "rollup -c rollup.config.mjs",
54+
"build:tsc": "tsc -p tsconfig.json && tsc -p tsconfig.cjs.json",
55+
"build": "npm run build:rollup && npm run build:tsc && npm run build:static && ./tools/post-build.sh ./dist"
6656
},
6757
"devDependencies": {
6858
"@babel/core": "^7.19.3",

packages/npm-packages/ruby-wasm-wasi/rollup.config.mjs

Lines changed: 14 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -5,56 +5,26 @@ import nodePolyfills from "rollup-plugin-polyfill-node";
55

66
const typescriptOptions = { tsconfig: "./tsconfig.json", declaration: false };
77

8-
function variant(basename, { browser = false } = {}) {
8+
function config({ basename }) {
99
return {
1010
input: `src/${basename}.ts`,
11-
output: [
12-
{
13-
file: `dist/${basename}.umd.js`,
14-
format: "umd",
15-
name: "ruby-wasm-wasi",
16-
},
17-
{
18-
file: `dist/${basename}.esm.js`,
19-
format: "es",
20-
name: "ruby-wasm-wasi",
21-
},
22-
{
23-
file: `dist/${basename}.cjs.js`,
24-
format: "cjs",
25-
exports: "named",
26-
},
27-
],
11+
output: {
12+
file: `dist/${basename}.umd.js`,
13+
format: "umd",
14+
name: "ruby-wasm-wasi",
15+
},
2816
plugins: [
29-
...(browser
30-
? [nodePolyfills(), inject({ Buffer: ["buffer", "Buffer"] })]
31-
: []),
17+
nodePolyfills(),
18+
inject({ Buffer: ["buffer", "Buffer"] }),
3219
typescript(typescriptOptions),
33-
nodeResolve(),
34-
],
20+
nodeResolve({ resolveOnly: ["@wasmer/wasi"] })
21+
]
3522
};
3623
}
3724

3825
/** @type {import('rollup').RollupOptions[]} */
3926
export default [
40-
variant("index"),
41-
variant("browser", { browser: true }),
42-
variant("browser.script", { browser: true }),
43-
{
44-
input: `src/node.ts`,
45-
output: [
46-
{
47-
file: `dist/node.esm.js`,
48-
format: "es",
49-
name: "ruby-wasm-wasi",
50-
},
51-
{
52-
file: `dist/node.cjs.js`,
53-
format: "cjs",
54-
exports: "named",
55-
},
56-
],
57-
plugins: [typescript(typescriptOptions), nodeResolve()],
58-
external: ["wasi"],
59-
},
60-
];
27+
{ basename: "browser.script" },
28+
{ basename: "browser" },
29+
{ basename: "index" },
30+
].map(config);

packages/npm-packages/ruby-wasm-wasi/src/browser.script.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { DefaultRubyVM } from "./browser";
1+
import { DefaultRubyVM } from "./browser.js";
22

33
export const main = async (
44
pkg: { name: string; version: string },

packages/npm-packages/ruby-wasm-wasi/src/browser.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { init, WASI } from "@wasmer/wasi";
2-
import { RubyVM } from "./index";
2+
import { RubyVM } from "./index.js";
33

44
const consolePrinter = () => {
55
let memory: WebAssembly.Memory | undefined = undefined;

0 commit comments

Comments
 (0)