Bibliothèque personnelle de packages TypeScript (monorepo pnpm), publiée sur le registre npm privé Forgejo.
Find a file
Nicolas 10bc209038
Some checks failed
CI / build-lint-test (pull_request) Failing after 29s
Ajouter @lightweight-sdk/service-registry (packages/common)
Registre de services en singleton avec injection par decorateurs :
- ServiceRepository : singleton central, uid genere automatiquement
  (crypto.randomUUID) a l'enregistrement, une seule instance partagee
  par service.
- @RegisterService() : decorateur de classe, instancie et enregistre
  automatiquement la classe decoree (constructeur sans argument).
- @Service(target) : decorateur de propriete, injection paresseuse et
  memoisee par reference de classe (resolution au premier acces, pas
  a la decoration - insensible a l'ordre d'evaluation des modules).

Fix connexe dans tsconfig.base.json : useDefineForClassFields desactive
(target ES2022 l'active par defaut), sinon un champ de classe sans
initialiseur est reinitialise a undefined sur l'instance a la
construction et masque l'accesseur pose sur le prototype par un
decorateur de propriete - touche @Service ici et @LinkToDom dans
web-component. Documente dans spec/architecture.md.

Fix connexe dans scripts/create-package.mjs : execFileSync('pnpm', ...)
ne resout pas le shim .cmd de pnpm sous Windows sans shell: true
(trouve en re-testant le script sur ce package).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 13:59:58 +02:00
.changeset Ajouter @lightweight-sdk/service-registry (packages/common) 2026-09-18 13:59:58 +02:00
.forgejo/workflows Simplifier le trigger de ci.yml (pull_request uniquement) 2026-09-18 08:47:43 +02:00
packages Ajouter @lightweight-sdk/service-registry (packages/common) 2026-09-18 13:59:58 +02:00
scripts Ajouter @lightweight-sdk/service-registry (packages/common) 2026-09-18 13:59:58 +02:00
spec Ajouter @lightweight-sdk/service-registry (packages/common) 2026-09-18 13:59:58 +02:00
.editorconfig Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00
.gitattributes Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00
.gitignore Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00
.npmrc Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00
biome.json Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00
package.json Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00
pnpm-lock.yaml Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00
pnpm-workspace.yaml Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00
README.md Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00
tsconfig.base.json Ajouter @lightweight-sdk/service-registry (packages/common) 2026-09-18 13:59:58 +02:00
tsconfig.json Ajouter @lightweight-sdk/service-registry (packages/common) 2026-09-18 13:59:58 +02:00
typedoc.json Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00
vitest.config.ts Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00

lightweight-sdk

Bibliothèque personnelle de packages TypeScript, organisée en monorepo pnpm et publiée sur le registre npm privé hébergé sur git.dev.kyuno.fr.

Structure

Les packages sont répartis en trois catégories sous packages/ :

  • client/ — packages destinés au navigateur (DOM, composants UI).
  • common/ — code isomorphe partagé entre client et server.
  • server/ — packages Node/backend, structurés en services modulaires autonomes.

Voir spec/architecture.md pour le détail des choix d'outillage, et spec/packages.md pour la liste des packages existants.

Démarrage

pnpm install
pnpm build
pnpm lint
pnpm test
pnpm docs:check

Créer un nouveau package

pnpm create-package <client|common|server> <nom-du-package>

Documentation