Skip to content

Library Build Mode (packages/core)

Use this guide before changing build or export behavior of grist-widget-sdk.

Key fact

packages/core is a library package built with tsup, not a Vite application.

Current build contract

  • Entry points:
    • src/index.ts
    • src/emulator/index.ts
  • Output formats: esm and cjs
  • Type declarations enabled
  • React packages marked external

Reference files:

  • packages/core/tsup.config.ts
  • packages/core/package.json

Public export rules

  • Public API is consumed through:
    • grist-widget-sdk
    • grist-widget-sdk/emulator
  • Do not require consumers to import internal source files.
  • Keep package.json exports and actual built files synchronized.

Validation checklist after changes

bash
pnpm --filter grist-widget-sdk build
pnpm --filter grist-widget-sdk exec tsc --noEmit
pnpm --filter grist-widget-sdk test

Optional package-shape check:

bash
pnpm dlx @arethetypeswrong/cli -P packages/core