@nodefony/orm-core 10.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +544 -0
- package/README.md +131 -0
- package/dist/index.js +22 -0
- package/dist/nodefony/interfaces/IEntity.js +1 -0
- package/dist/nodefony/interfaces/IOrm.js +1 -0
- package/dist/nodefony/interfaces/IOrmFlow.js +1 -0
- package/dist/nodefony/interfaces/IOrmGraph.js +1 -0
- package/dist/nodefony/interfaces/IOrmMigrations.js +12 -0
- package/dist/nodefony/interfaces/IOrmProbe.js +1 -0
- package/dist/nodefony/interfaces/IPage.js +1 -0
- package/dist/nodefony/interfaces/IRepository.js +1 -0
- package/dist/nodefony/interfaces/ITransaction.js +1 -0
- package/dist/nodefony/interfaces/index.js +1 -0
- package/dist/nodefony/src/AbstractCrudService.js +199 -0
- package/dist/nodefony/src/ConnectionMonitor.js +181 -0
- package/dist/nodefony/src/Entity.js +42 -0
- package/dist/nodefony/src/EntityRegistry.js +109 -0
- package/dist/nodefony/src/Orm.js +297 -0
- package/dist/nodefony/src/OrmAdminApi.js +491 -0
- package/dist/nodefony/src/OrmRegistry.js +75 -0
- package/dist/nodefony/src/QueryFlowMonitor.js +128 -0
- package/dist/nodefony/src/buildOrmLeanHealth.js +54 -0
- package/dist/nodefony/src/criteria.js +176 -0
- package/dist/nodefony/src/decorators/entitiesDecorator.js +67 -0
- package/dist/nodefony/src/decorators/entityDecorator.js +51 -0
- package/dist/nodefony/src/decorators/index.js +5 -0
- package/dist/nodefony/src/decorators/metadataStore.js +38 -0
- package/dist/nodefony/src/decorators/repositoryDecorator.js +35 -0
- package/dist/nodefony/src/defineEntity.js +27 -0
- package/dist/nodefony/src/errors.js +76 -0
- package/dist/nodefony/src/ormWiring.js +78 -0
- package/dist/nodefony/src/paginate.js +55 -0
- package/dist/nodefony/src/readOptions.js +52 -0
- package/dist/nodefony/src/serviceWiring.js +1 -0
- package/dist/types/index.d.ts +39 -0
- package/dist/types/nodefony/interfaces/IEntity.d.ts +65 -0
- package/dist/types/nodefony/interfaces/IOrm.d.ts +136 -0
- package/dist/types/nodefony/interfaces/IOrmFlow.d.ts +71 -0
- package/dist/types/nodefony/interfaces/IOrmGraph.d.ts +165 -0
- package/dist/types/nodefony/interfaces/IOrmMigrations.d.ts +145 -0
- package/dist/types/nodefony/interfaces/IOrmProbe.d.ts +70 -0
- package/dist/types/nodefony/interfaces/IPage.d.ts +24 -0
- package/dist/types/nodefony/interfaces/IRepository.d.ts +369 -0
- package/dist/types/nodefony/interfaces/ITransaction.d.ts +31 -0
- package/dist/types/nodefony/interfaces/index.d.ts +7 -0
- package/dist/types/nodefony/src/AbstractCrudService.d.ts +158 -0
- package/dist/types/nodefony/src/ConnectionMonitor.d.ts +86 -0
- package/dist/types/nodefony/src/Entity.d.ts +44 -0
- package/dist/types/nodefony/src/EntityRegistry.d.ts +60 -0
- package/dist/types/nodefony/src/Orm.d.ts +197 -0
- package/dist/types/nodefony/src/OrmAdminApi.d.ts +84 -0
- package/dist/types/nodefony/src/OrmRegistry.d.ts +58 -0
- package/dist/types/nodefony/src/QueryFlowMonitor.d.ts +53 -0
- package/dist/types/nodefony/src/buildOrmLeanHealth.d.ts +15 -0
- package/dist/types/nodefony/src/criteria.d.ts +131 -0
- package/dist/types/nodefony/src/decorators/entitiesDecorator.d.ts +48 -0
- package/dist/types/nodefony/src/decorators/entityDecorator.d.ts +49 -0
- package/dist/types/nodefony/src/decorators/index.d.ts +10 -0
- package/dist/types/nodefony/src/decorators/metadataStore.d.ts +54 -0
- package/dist/types/nodefony/src/decorators/repositoryDecorator.d.ts +30 -0
- package/dist/types/nodefony/src/defineEntity.d.ts +43 -0
- package/dist/types/nodefony/src/errors.d.ts +62 -0
- package/dist/types/nodefony/src/ormWiring.d.ts +48 -0
- package/dist/types/nodefony/src/paginate.d.ts +43 -0
- package/dist/types/nodefony/src/readOptions.d.ts +21 -0
- package/dist/types/nodefony/src/serviceWiring.d.ts +24 -0
- package/docs/index.md +791 -0
- package/docs/tutorial-entity.md +577 -0
- package/package.json +73 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vérifie que l'option de lecture `order` respecte le contrat portable
|
|
3
|
+
* `Array<[string, "ASC" | "DESC"]>`, ou lève {@link InvalidOrderOption}.
|
|
4
|
+
*
|
|
5
|
+
* Source de vérité **unique** partagée par tous les adapters : chacun l'appelle une
|
|
6
|
+
* fois, en amont de la construction de sa requête, plutôt que de retester la forme à
|
|
7
|
+
* chaque endroit qui pose un tri. Sans elle, un `order` mal formé était sauté en
|
|
8
|
+
* silence (le test historique `options?.order?.length` est faux pour un objet) et la
|
|
9
|
+
* requête partait sans `ORDER BY`.
|
|
10
|
+
*
|
|
11
|
+
* Absence de tri — `undefined`, `null`, ou tableau vide — est acceptée : rien n'y est
|
|
12
|
+
* exprimé qui puisse être trahi. Seule une TENTATIVE de tri mal formée est refusée.
|
|
13
|
+
*
|
|
14
|
+
* Coût : sortie immédiate dans le cas dominant (`undefined`), aucune allocation sur le
|
|
15
|
+
* chemin nominal — la description n'est construite qu'au moment de lever.
|
|
16
|
+
*
|
|
17
|
+
* @param order - valeur de `options.order` telle que reçue de l'appelant.
|
|
18
|
+
* @param entity - nom logique de l'entité ciblée (diagnostic).
|
|
19
|
+
* @throws InvalidOrderOption si `order` est présent et n'est pas un tableau de couples valides.
|
|
20
|
+
*/
|
|
21
|
+
export declare function assertOrderOption(order: unknown, entity: string): void;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Container, Event, DefaultOptionsService } from "nodefony";
|
|
2
|
+
/**
|
|
3
|
+
* Câblage d'un {@link Service} (DI / bus d'événements / options) sous forme de
|
|
4
|
+
* **tuple** — évite de redéclarer `container` / `notificationsCenter` / `options`
|
|
5
|
+
* dans le constructeur de chaque service juste pour les tunneler jusqu'à `super`.
|
|
6
|
+
*
|
|
7
|
+
* À capter en rest-param et forwarder par spread :
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* constructor(repository: R, ...wiring: ServiceWiring) {
|
|
11
|
+
* super("name", repository, ...wiring);
|
|
12
|
+
* }
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* Reflète l'ordre positionnel du constructeur de `Service` :
|
|
16
|
+
* `(name, container?, notificationsCenter?, options?)`. Ces trois arguments sont
|
|
17
|
+
* quasi toujours **omis** (le container DI les fournit à l'instanciation) ; le
|
|
18
|
+
* tuple sert surtout à ne plus les recopier à la main dans chaque sous-classe.
|
|
19
|
+
*/
|
|
20
|
+
export type ServiceWiring = [
|
|
21
|
+
container?: Container,
|
|
22
|
+
notificationsCenter?: Event | false | null,
|
|
23
|
+
options?: DefaultOptionsService
|
|
24
|
+
];
|