Bibliothèque personnelle de packages TypeScript (monorepo pnpm), publiée sur le registre npm privé Forgejo.
|
Some checks failed
CI / build-lint-test (pull_request) Failing after 29s
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>
|
||
|---|---|---|
| .changeset | ||
| .forgejo/workflows | ||
| packages | ||
| scripts | ||
| spec | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .npmrc | ||
| biome.json | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| tsconfig.base.json | ||
| tsconfig.json | ||
| typedoc.json | ||
| vitest.config.ts | ||
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
spec/architecture.md— vue d'ensemble et choix techniques.spec/conventions.md— conventions de code et traçabilité avec les directives du projet.spec/ci-cd.md— CI, versioning (Changesets) et publication sur le registre.spec/packages.md— registre des packages du monorepo.