The only shared package is defined inside packages/api-client.
api-clientcontains the shared API definition for both client and server:
- The server uses it to implement the API
- The client uses it to generate a type-safe client
This shared package only needs a package.json and a tsconfig.json file. The key configuration here is adding exports inside package.json to mark the entry points.
This is how the final package.json looks like:
package.json
{
"name": "@app/api-client",
"version": "0.0.0",
"author": "Typeonce",
"license": "MIT",
"exports": {
".": "./src/api.ts",
"./schemas": "./src/schemas/paddle.ts"
},
"scripts": {
"typecheck": "tsc"
},
/// ...dependencies
}All the code is implemented inside the src folder.
