TidGi-Desktop/packages/tidgi-shared
2026-04-22 09:06:38 +08:00
..
src chore(shared): normalize line endings in tidgi-shared package 2026-04-22 09:06:38 +08:00
.gitignore feat: publish tidgi-shared npm for types, and place tidgi.service 2026-02-09 23:16:49 +08:00
package.json Fix/misc bug1 (#697) 2026-04-20 18:42:29 +08:00
README.md Fix/misc bug (#691) 2026-04-01 15:45:26 +08:00
tsconfig.json Expose TidGi services to $tw.tidgi and add types 2026-02-10 02:41:32 +08:00
tsup.config.ts feat: publish tidgi-shared npm for types, and place tidgi.service 2026-02-09 23:16:49 +08:00

tidgi-shared

Shared service interfaces, IPC descriptors, and constants for TidGi plugins.

This package re-exports all TidGi Desktop service interface types so that external TiddlyWiki plugins and projects can reference them without depending on the full TidGi-Desktop codebase.

Install

pnpm add tidgi-shared

Usage

import type { IGitServerService, IGitService, ITidGiGlobalService, IWorkspaceService } from 'tidgi-shared';

For TiddlyWiki route modules running in TidGi's wiki worker, access services via $tw.tidgi.service:

import type { IGitServerService, IGitService, ITidGiGlobalService, IWorkspaceService } from 'tidgi-shared';

const tidgiService = ($tw as typeof $tw & { tidgi?: { service?: ITidGiGlobalService } }).tidgi?.service;

Building

pnpm run build

Releasing

tidgi-shared is built from the live interfaces in TidGi-Desktop/src via the aliases in tsup.config.ts, so release it only after the upstream service interfaces are already updated.

  1. Update the source interfaces in TidGi-Desktop/src/services/**/interface.ts.
  2. Bump the version in packages/tidgi-shared/package.json.
  3. From the TidGi-Desktop repo root, run:
pnpm --filter tidgi-shared run check
pnpm --filter tidgi-shared run build
  1. Optionally verify the tarball contents before publishing:
cd packages/tidgi-shared
npm pack --dry-run
  1. Publish from packages/tidgi-shared:
npm publish --access public
  1. Verify the published version:
npm view tidgi-shared version

If a plugin starts using a new TidGi service method and TypeScript cannot see it yet, that usually means the desktop source was updated but tidgi-shared has not been republished since that interface change.

What's Included

  • All TidGi service interfaces (25 services)
  • IPC descriptors for electron-ipc-cat proxy
  • Channel constants for IPC communication
  • Shared types (IService, SupportedStorageServices, etc.)
  • Window properties and metadata types