Skip to content

Commit 3d00a87

Browse files
committed
feat(client): isomorphic pinorama client
1 parent 2703f50 commit 3d00a87

File tree

25 files changed

+978
-516
lines changed

25 files changed

+978
-516
lines changed

examples/create-server-example/package.json

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,16 @@
44
"type": "module",
55
"private": true,
66
"scripts": {
7-
"start": "node index.mjs"
7+
"start": "node index.mjs",
8+
"clean": "rimraf node_modules"
89
},
910
"dependencies": {
1011
"@fastify/one-line-logger": "^1.3.0",
1112
"fastify": "^4.26.2",
12-
"pinorama-transport": "workspace:*",
13-
"pinorama-server": "workspace:*"
13+
"pinorama-server": "workspace:*",
14+
"pinorama-transport": "workspace:*"
15+
},
16+
"devDependencies": {
17+
"rimraf": "^5.0.7"
1418
}
1519
}

examples/fastify-example/package.json

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,16 @@
44
"type": "module",
55
"private": true,
66
"scripts": {
7-
"start": "node index.mjs"
7+
"start": "node index.mjs",
8+
"clean": "rimraf node_modules"
89
},
910
"dependencies": {
1011
"@fastify/one-line-logger": "^1.3.0",
1112
"fastify": "^4.26.2",
12-
"pinorama-transport": "workspace:*",
13-
"pinorama-server": "workspace:*"
13+
"pinorama-server": "workspace:*",
14+
"pinorama-transport": "workspace:*"
15+
},
16+
"devDependencies": {
17+
"rimraf": "^5.0.7"
1418
}
1519
}

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
},
1212
"scripts": {
1313
"test": "turbo test",
14-
"clean": "turbo clean",
14+
"clean": "turbo clean && rimraf node_modules .turbo",
1515
"build": "turbo build",
1616
"dev": "turbo dev",
1717
"biome": "biome check --write --no-errors-on-unmatched",
@@ -26,6 +26,7 @@
2626
"@commitlint/cli": "^19.3.0",
2727
"@commitlint/config-conventional": "^19.2.2",
2828
"husky": "^9.0.11",
29+
"rimraf": "^5.0.7",
2930
"turbo": "^2.0.3"
3031
},
3132
"packageManager": "pnpm@9.2.0",

packages/pinorama-client/package.json

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,47 @@
22
"name": "pinorama-client",
33
"version": "0.1.0",
44
"license": "MIT",
5-
"type": "module",
6-
"types": "./dist/index.d.mts",
7-
"exports": "./dist/index.mjs",
8-
"files": ["dist"],
9-
"scripts": {
10-
"clean": "rimraf ./dist",
11-
"build": "pnpm clean && tsc"
5+
"main": "./dist/node/pinorama-client.cjs",
6+
"module": "./dist/node/pinorama-client.mjs",
7+
"exports": {
8+
".": {
9+
"types": "./dist/types/pinorama-client.d.ts",
10+
"require": "./dist/node/pinorama-client.cjs",
11+
"import": "./dist/node/pinorama-client.mjs"
12+
},
13+
"./node": {
14+
"types": "./dist/types/pinorama-client.d.ts",
15+
"require": "./dist/node/pinorama-client.cjs",
16+
"import": "./dist/node/pinorama-client.mjs"
17+
},
18+
"./browser": {
19+
"types": "./dist/types/pinorama-client.d.ts",
20+
"import": "./dist/browser/pinorama-client.esm.js"
21+
}
1222
},
13-
"author": {
14-
"email": "cesconix@me.com",
15-
"name": "Francesco Pasqua",
16-
"url": "https://github.com/cesconix"
23+
"types": "./dist/types/pinorama-client.d.ts",
24+
"files": [
25+
"dist"
26+
],
27+
"scripts": {
28+
"clean": "rimraf dist node_modules",
29+
"build": "rollup --config"
1730
},
31+
"author": "Francesco Pasqua <cesconix@me.com>",
1832
"devDependencies": {
33+
"@rollup/plugin-alias": "^5.1.0",
34+
"@rollup/plugin-commonjs": "^26.0.1",
35+
"@rollup/plugin-node-resolve": "^15.2.3",
36+
"@rollup/plugin-terser": "^0.4.4",
37+
"@rollup/plugin-typescript": "^11.1.6",
1938
"@types/node": "^20.14.2",
2039
"rimraf": "^5.0.7",
40+
"rollup": "^4.18.0",
41+
"rollup-plugin-dts": "^6.1.1",
42+
"tslib": "^2.6.3",
2143
"typescript": "^5.4.5"
2244
},
2345
"dependencies": {
24-
"undici": "^6.18.2",
2546
"zod": "^3.23.8"
2647
},
2748
"publishConfig": {
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
import alias from "@rollup/plugin-alias";
2+
import commonjs from "@rollup/plugin-commonjs";
3+
import resolve from "@rollup/plugin-node-resolve";
4+
import terser from "@rollup/plugin-terser";
5+
import typescript from "@rollup/plugin-typescript";
6+
import { dts } from "rollup-plugin-dts";
7+
8+
const inputFile = "src/index.ts";
9+
const outputFileName = "pinorama-client";
10+
11+
export default [
12+
// Declaration file
13+
{
14+
input: inputFile,
15+
output: [{ file: "dist/types/pinorama-client.d.ts", format: "es" }],
16+
plugins: [dts()],
17+
},
18+
19+
// Browser ESM build
20+
{
21+
input: inputFile,
22+
output: [
23+
{
24+
file: `dist/browser/${outputFileName}.esm.js`,
25+
format: "es",
26+
sourcemap: true,
27+
},
28+
],
29+
plugins: [
30+
alias({
31+
entries: [
32+
{ find: "./platform/node.js", replacement: "./platform/browser.js" },
33+
],
34+
}),
35+
resolve({ browser: true }),
36+
commonjs(),
37+
typescript(),
38+
terser(),
39+
],
40+
external: ["zod"],
41+
},
42+
43+
// // Browser UMD build
44+
// {
45+
// input: inputFile,
46+
// output: [
47+
// {
48+
// file: `dist/browser/${outputFileName}.umd.js`,
49+
// format: "umd",
50+
// name: "pinorama-client",
51+
// },
52+
// ],
53+
// plugins: [
54+
// alias({
55+
// entries: [
56+
// { find: "./platform/node.js", replacement: "./platform/browser.js" },
57+
// ],
58+
// }),
59+
// resolve({ browser: true }),
60+
// commonjs(),
61+
// typescript(),
62+
// ],
63+
// external: ["zod"],
64+
// },
65+
66+
// // Browser CJS build
67+
// {
68+
// input: inputFile,
69+
// output: [
70+
// {
71+
// file: `dist/browser/${outputFileName}.cjs.js`,
72+
// format: "cjs",
73+
// },
74+
// ],
75+
// plugins: [
76+
// alias({
77+
// entries: [
78+
// { find: "./platform/node.js", replacement: "./platform/browser.js" },
79+
// ],
80+
// }),
81+
// resolve({ browser: true }),
82+
// commonjs(),
83+
// typescript(),
84+
// ],
85+
// external: ["zod"],
86+
// },
87+
88+
// Node.js ESM bundle
89+
{
90+
input: inputFile,
91+
output: [
92+
{
93+
file: `dist/node/${outputFileName}.mjs`,
94+
format: "es",
95+
sourcemap: true,
96+
},
97+
],
98+
plugins: [resolve(), commonjs(), typescript()],
99+
external: ["zod"],
100+
},
101+
102+
// Node.js CJS build
103+
{
104+
input: inputFile,
105+
output: [
106+
{
107+
file: `dist/node/${outputFileName}.cjs`,
108+
format: "cjs",
109+
sourcemap: true,
110+
},
111+
],
112+
plugins: [resolve(), commonjs(), typescript()],
113+
external: ["zod"],
114+
},
115+
];

0 commit comments

Comments
 (0)