vsrepo 2.4.0 → 2.5.0

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/README.pt-BR.md CHANGED
@@ -41,6 +41,7 @@ O VSRepository permite criar repositories fortemente tipados com:
41
41
  - [Quais campos são elegíveis](#quais-campos-são-elegíveis)
42
42
  - [Escrevendo um adapter](#escrevendo-um-adapter)
43
43
  - [`select` e `relations`](#select-e-relations)
44
+ - [Tipagem de retorno restrita com `InferMethodReturn`](#tipagem-de-retorno-restrita-com-infermethodreturn)
44
45
  - [Métodos dinâmicos](#métodos-dinâmicos)
45
46
  - [Prefixos disponíveis](#prefixos-disponíveis)
46
47
  - [Filtros de campo](#filtros-de-campo)
@@ -48,6 +49,7 @@ O VSRepository permite criar repositories fortemente tipados com:
48
49
  - [Filtros de relação](#filtros-de-relação)
49
50
  - [Ordenação, paginação e distinct](#ordenação-paginação-e-distinct)
50
51
  - [Options do decorador](#options-do-decorador)
52
+ - [Tipagem de retorno restrita com `InferMethodType`](#tipagem-de-retorno-restrita-com-infermethodtype)
51
53
  - [Query methods (SQL raw)](#query-methods-sql-raw)
52
54
  - [Argumentos via spread com `spreadArgs`](#argumentos-via-spread-com-spreadargs)
53
55
  - [Queries raw pontuais com `query()`](#queries-raw-pontuais-com-query)
@@ -67,22 +69,22 @@ O VSRepository permite criar repositories fortemente tipados com:
67
69
 
68
70
  Se você vem do código/docs da [v1](https://github.com/jaobrabo123/VSRepository/tree/v1), aqui está o resumo. Veja cada seção linkada para detalhes.
69
71
 
70
- | Área | v1 | v2 |
71
- | ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
72
- | Acesso ao banco | Fala diretamente com o **Prisma**, embutido no pacote core | Fala com um **`VSRepoAdapter`**; o suporte a cada ORM é distribuído em pacotes separados (`@vsrepo/prisma7-adapter`, `@vsrepo/drizzle-adapter`, ...) em vez de vir embutido no pacote core `vsrepo` |
73
- | Definindo um repository | `setupVSRepo<T, M>()({...}).build(prisma)` funcional, **ou** uma classe `DynamicRepository` | Uma única API **baseada em classes**: `extends VSRepository<Entity, PKType, OrmTypes>` |
74
- | Métodos dinâmicos | Objeto de config `methods: { findByEmail: { map: true } }` | Decorador `@DynamicMethod()` em um campo `declare` |
75
- | Projeções de dados | `selectModels` + `defaultSelectModel` nomeados e reutilizáveis | `select`/`relations` ad-hoc passados em cada chamada (sem modelos nomeados) |
76
- | Eager loading | `include`/`includeModels` (específico do Prisma) | Option `relations` agnóstica de ORM |
77
- | Filtros globais | `requiredWhere` e `pushWhere` | **Removidos**; Agora aceita apenas `softRemoveKey` + `see: "active" \| "removed" \| "all"` |
78
- | Sufixo de filtro case-insensitive | `Insensitive` | `IgnoreCase` |
79
- | Ordenação inline no nome do método | Não suportado (`order` tinha que ser passado como argumento via `Ordered`/`Paginated`) | Cadeias `OrderBy<Campo>Asc`/`OrderBy<Campo>Desc` embutidas diretamente no nome do método |
80
- | Tratamento de duplicatas no `createMany` | Sufixo `SkipDuplicates` | Sufixo `IgnoreConflicts` |
81
- | `aggregate` / `groupBy` | Suportado (passthrough nativo do Prisma) | `groupBy` **não está planejado** para a v2. Um prefixo `aggregate` separado também dificilmente será implementado: as operações mais comuns já são cobertas por métodos base dedicados (`sum`, `average`, `min`, `max`, `increment`, `decrement`, `multiply`, `divide`) — veja [Métodos atômicos e de agregação](#métodos-atômicos-e-de-agregação). Para qualquer coisa mais complexa, use `@QueryMethod`. |
82
- | Tipos de erro | `VSRepoError` + subclasses (`VSRepoConfigError`, `VSRepoBuildError`, `VSRepoExtendError`, `VSRepoRuntimeError`) | Uma classe base `VSRepoError` com um campo `type: VSRepoErrorType` (`DECORATOR`, `RESOLVER`, `DYNAMIC`, `VALIDATOR`, `BASE`, `ADAPTER`), além de uma subclasse `VSRepoAdapterError` que carrega um `AdapterErrorCode` e o erro original do ORM |
83
- | Log de debug | Boolean `showWorking: true` | `logLevel: VSLogLevel` (`DEBUG`/`INFO`/`WARN`/`ERROR`) + `logSlowThresholdMs` para avisos de queries lentas |
84
- | CLI `vsrepo generate` (etapa de geração de tipos) | Obrigatória antes de usar | Não faz parte do núcleo da v2 — os tipos vêm diretamente das suas entidades/tipos do ORM |
85
- | Extras de CRUD | `patchList`, `options.select`/`options.include` raw | `select`/`relations` já são o padrão (sempre "raw"); `patch`/`merge` mantêm a mesma semântica. **`patchList` foi removido** — para uma atualização parcial em lote, use um dynamic method `updateManyBy`/`updateManyWhere` |
72
+ | Área | v1 | v2 |
73
+ | ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
74
+ | Acesso ao banco | Fala diretamente com o **Prisma**, embutido no pacote core | Fala com um **`VSRepoAdapter`**; o suporte a cada ORM é distribuído em pacotes separados (`@vsrepo/prisma7-adapter`, `@vsrepo/drizzle-adapter`, ...) em vez de vir embutido no pacote core `vsrepo` |
75
+ | Definindo um repository | `setupVSRepo<T, M>()({...}).build(prisma)` funcional, **ou** uma classe `DynamicRepository` | Uma única API **baseada em classes**: `extends VSRepository<Entity, PKType, OrmTypes>` |
76
+ | Métodos dinâmicos | Objeto de config `methods: { findByEmail: { map: true } }` | Decorador `@DynamicMethod()` em um campo `declare` |
77
+ | Projeções de dados | `selectModels` + `defaultSelectModel` nomeados e reutilizáveis | `select`/`relations` ad-hoc passados em cada chamada (sem modelos nomeados) |
78
+ | Eager loading | `include`/`includeModels` (específico do Prisma) | Option `relations` agnóstica de ORM |
79
+ | Filtros globais | `requiredWhere` e `pushWhere` | **Removidos**; Agora aceita apenas `softRemoveKey` + `see: "active" \| "removed" \| "all"` |
80
+ | Sufixo de filtro case-insensitive | `Insensitive` | `IgnoreCase` |
81
+ | Ordenação inline no nome do método | Não suportado (`order` tinha que ser passado como argumento via `Ordered`/`Paginated`) | Cadeias `OrderBy<Campo>Asc`/`OrderBy<Campo>Desc` embutidas diretamente no nome do método |
82
+ | Tratamento de duplicatas no `createMany` | Sufixo `SkipDuplicates` | Sufixo `IgnoreConflicts` |
83
+ | `aggregate` / `groupBy` | Suportado (passthrough nativo do Prisma) | `groupBy` **não está planejado** para a v2. Um prefixo `aggregate` separado também dificilmente será implementado: as operações mais comuns já são cobertas por métodos base dedicados (`sum`, `average`, `min`, `max`, `increment`, `decrement`, `multiply`, `divide`) — veja [Métodos atômicos e de agregação](#métodos-atômicos-e-de-agregação). Para qualquer coisa mais complexa, use `@QueryMethod`. |
84
+ | Tipos de erro | `VSRepoError` + subclasses (`VSRepoConfigError`, `VSRepoBuildError`, `VSRepoExtendError`, `VSRepoRuntimeError`) | Uma classe base `VSRepoError` com um campo `type: VSRepoErrorType` (`DECORATOR`, `RESOLVER`, `DYNAMIC`, `VALIDATOR`, `BASE`, `ADAPTER`), além de uma subclasse `VSRepoAdapterError` que carrega um `AdapterErrorCode` e o erro original do ORM |
85
+ | Log de debug | Boolean `showWorking: true` | `logLevel: VSLogLevel` (`DEBUG`/`INFO`/`WARN`/`ERROR`) + `logSlowThresholdMs` para avisos de queries lentas |
86
+ | CLI `vsrepo generate` (etapa de geração de tipos) | Obrigatória antes de usar | Não faz parte do núcleo da v2 — os tipos vêm diretamente das suas entidades/tipos do ORM |
87
+ | Extras de CRUD | `patchList`, `options.select`/`options.include` raw | `select`/`relations` já são o padrão (sempre "raw"); `patch`/`merge` mantêm a mesma semântica. **`patchList` foi removido** — para uma atualização parcial em lote, use um dynamic method `updateManyBy`/`updateManyWhere` |
86
88
 
87
89
  ---
88
90
 
@@ -99,10 +101,10 @@ O adapter do Prisma 7 já foi publicado no npm como `@vsrepo/prisma7-adapter`. O
99
101
 
100
102
  | Adapter | Status |
101
103
  | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
102
- | Prisma 7 (`@vsrepo/prisma7-adapter`) | 🟢 **Lançado** — publicado no npm, implementa o contrato de `VSRepoAdapter` (CRUD, relations, transactions, `merge`, logging) com testes; veja o [`VSRepoPrisma7Adapter`](https://github.com/jaobrabo123/VSRepoPrisma7Adapter) para o código-fonte e docs. **Nota:** os métodos atômicos/de agregação (`incrementOne`, `decrementOne`, `multiplyOne`, `divideOne`, `sum`, `average`, `min`, `max` — veja [Métodos atômicos e de agregação](#métodos-atômicos-e-de-agregação)) foram adicionados ao contrato do `VSRepoAdapter` depois do último release desse adapter; confirme no changelog/versão dele se já implementam esses métodos antes de depender de `increment`/`sum`/etc. contra o Prisma 7. |
103
- | Drizzle (`@vsrepo/drizzle-adapter`) | 🔵 **Alpha** — uma versão inicial já está disponível no npm; instale com `npm i @vsrepo/drizzle-adapter@alpha`. A API ainda pode mudar antes do release estável. Veja o repositório do [`DrizzleAdapter`](https://github.com/jaobrabo123/VSRepoDrizzleAdapter) para o estado atual e limitações conhecidas, e sinta-se à vontade para contribuir. |
104
+ | Prisma 7 (`@vsrepo/prisma7-adapter`) | 🟢 **Lançado** — publicado no npm, implementa o contrato de `VSRepoAdapter` (CRUD, relations, transactions, `merge`, logging, etc.) com testes; veja o [`VSRepoPrisma7Adapter`](https://github.com/jaobrabo123/VSRepoPrisma7Adapter) para o código-fonte e docs. |
105
+ | Drizzle (`@vsrepo/drizzle-adapter`) | 🔵 **Alpha** — uma versão inicial já está disponível no npm; instale com `npm i @vsrepo/drizzle-adapter@alpha`. A API ainda pode mudar antes do release estável. Veja o repositório do [`DrizzleAdapter`](https://github.com/jaobrabo123/VSRepoDrizzleAdapter) para o estado atual e limitações conhecidas, e sinta-se à vontade para contribuir. |
104
106
  | Outros ORMs (Prisma 8, TypeORM, etc.) | 🟡 **Planejados, ainda não publicados.** Nenhum pacote oficial existe ainda — por enquanto, escreva o seu próprio adapter (veja [Escrevendo seu próprio adapter](#escrevendo-seu-próprio-adapter)) e considere publicá-lo/contribuir de volta com o projeto. |
105
- | Adapters customizados | 🟢 Totalmente suportados hoje — implemente você mesmo a classe abstrata [`VSRepoAdapter`](#escrevendo-seu-próprio-adapter) para qualquer ORM/banco que precisar, no seu próprio projeto ou pacote, seguindo o mesmo formato esperado dos `@vsrepo/*-adapter`. |
107
+ | Adapters customizados | 🟢 Totalmente suportados hoje — implemente você mesmo a classe abstrata [`VSRepoAdapter`](#escrevendo-seu-próprio-adapter) para qualquer ORM/banco que precisar, no seu próprio projeto ou pacote. |
106
108
 
107
109
  Resumindo: a classe de repository, os decoradores `@DynamicMethod`/`@QueryMethod`, o engine de parsing de nomes, o tratamento de erros e o logging já funcionam de ponta a ponta, e o suporte ao Prisma 7 agora é um adapter lançado e publicado. O adapter do Drizzle está disponível em alpha. Adapters oficiais para os demais ORMs estão no roadmap e serão distribuídos como pacotes `@vsrepo/*-adapter` separados, e não como parte do pacote core `vsrepo` — mas você não precisa esperar por isso: escrever (e opcionalmente publicar) o seu próprio adapter enquanto isso é uma forma totalmente suportada de usar a v2 hoje e de contribuir de volta com o projeto.
108
110
 
@@ -116,8 +118,6 @@ A v2 é instalada como o pacote core mais um pacote de adapter para o seu ORM, p
116
118
  npm i vsrepo @vsrepo/prisma7-adapter
117
119
  ```
118
120
 
119
- > O `vsrepo` v2.0.0 e o `@vsrepo/prisma7-adapter` já foram publicados no npm e estão prontos para uso. Para qualquer ORM além do Prisma 7, ainda não existe um pacote de adapter — instale o core e escreva o seu próprio (veja [Escrevendo seu próprio adapter](#escrevendo-seu-próprio-adapter)).
120
-
121
121
  ---
122
122
 
123
123
  ## Uso básico
@@ -167,14 +167,16 @@ class UserRepository extends VSRepository<User, string> {
167
167
  export default new UserRepository();
168
168
  ```
169
169
 
170
- > A API do core (`VSRepository`, `VSRepoAdapter`, `DynamicMethod`, `QueryMethod`, `VSRepoError`, enums e tipos) é importada do entry point único `vsrepo`. O adapter concreto vem de um pacote **separado** (`@vsrepo/*-adapter`). No Prisma 7, instale o [`@vsrepo/prisma7-adapter`](https://github.com/jaobrabo123/VSRepoPrisma7Adapter) já publicado (o construtor dele recebe um objeto de config — `tableName`, `pkName`, `relations`/`logLevel` opcionais — como no exemplo acima). Adapters oficiais para outros ORMs estão planejados, mas ainda não publicados; até lá, você pode implementar o contrato `VSRepoAdapter` você mesmo (veja [Escrevendo seu próprio adapter](#escrevendo-seu-próprio-adapter)) — e publicá-lo para ajudar o projeto é muito bem-vindo.
170
+ > A API do core (`VSRepository`, `VSRepoAdapter`, `DynamicMethod`, `QueryMethod`, `VSRepoError`, enums e tipos) é importada do entry point único `vsrepo`. O adapter concreto vem de um pacote **separado** (`@vsrepo/*-adapter`). No Prisma 7, instale o [`@vsrepo/prisma7-adapter`](https://github.com/jaobrabo123/VSRepoPrisma7Adapter).
171
171
 
172
172
  > **O terceiro generic (`OrmTypes`):** `VSRepository<Entity, PKType, OrmTypes>` aceita um terceiro type parameter opcional descrevendo os tipos de client/transaction do seu ORM, via `VSRepoOrmTypes` (`{ dbClient; dbTransaction }`). Ao fornecê-lo, `getDbClient()`, o callback de `transaction()` e a option `db` de todo método passam a ser tipados corretamente, em vez de `any`:
173
173
  >
174
174
  > ```typescript
175
- > type PrismaOrmTypes = { dbClient: PrismaClient; dbTransaction: Prisma.TransactionClient };
175
+ > import { Prisma7OrmTypes } from "@vsrepo/prisma7-adapter";
176
+ >
177
+ > type MyOrmTypes = Prisma7OrmTypes<PrismaClient>;
176
178
  >
177
- > class UserRepository extends VSRepository<User, string, PrismaOrmTypes> {
179
+ > class UserRepository extends VSRepository<User, string, MyOrmTypes> {
178
180
  > // getDbClient() agora retorna PrismaClient, e transaction(fn) tipa `tx` como Prisma.TransactionClient
179
181
  > }
180
182
  > ```
@@ -209,7 +211,7 @@ await userRepository.remove(usuario.id);
209
211
  | Option | Tipo | Descrição |
210
212
  | -------------------- | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
211
213
  | `adapter` | `VSRepoAdapter<T>` | **Obrigatório.** A instância do adapter que traduz as chamadas do repository em chamadas contra o ORM/banco por trás dele. |
212
- | `pkName` | `keyof T` | **Obrigatório.** Nome do campo que representa a primary key da entidade. |
214
+ | `pkName` | `keyof T` | Opcional. Nome do campo que representa a primary key da entidade. Quando omitido, o repository usa o `getPkName()` do adapter. Se o adapter também não implementar, o construtor lança um `VSRepoError`. |
213
215
  | `softRemoveKey` | `keyof T` | Opcional. Quando definido, habilita `softRemove`, `softRemoveList`, `restore` e `restoreList`. |
214
216
  | `defaultOrdering` | `Ordering<T>` | Opcional. Ordenação padrão aplicada automaticamente em queries que aceitam `order`, a menos que seja sobrescrita em uma chamada específica. |
215
217
  | `logLevel` | `VSLogLevel` | Opcional. Severidade mínima impressa pelo logger interno. Padrão: `VSLogLevel.WARN`. |
@@ -284,7 +286,7 @@ await userRepository.getAll({ see: "all" }); // todos, ignorando o soft-delete
284
286
 
285
287
  ## Métodos atômicos e de agregação
286
288
 
287
- Toda subclasse de `VSRepository` ganha 8 métodos extras para trabalhar com campos numéricos, divididos em dois grupos:
289
+ Toda subclasse de `VSRepository` ganha 8 métodos para trabalhar com campos numéricos, divididos em dois grupos:
288
290
 
289
291
  **Updates atômicos** — avaliados no servidor contra o valor _atual_ da linha (`UPDATE ... SET field = field + value`), não um read-modify-write feito no client:
290
292
 
@@ -371,11 +373,51 @@ const usuarioComEndereco = await userRepository.get(id, {
371
373
  >
372
374
  > Adapters customizados podem mapear `relations` de forma diferente — consulte a documentação do adapter para a semântica exata.
373
375
 
376
+ ### Tipagem de retorno restrita com `InferMethodReturn`
377
+
378
+ Por padrão, os métodos são tipados como se retornassem a **entidade inteira**, ignorando o `select` e o `relations` que você passa (a mesma abordagem do TypeORM). Se você prefere uma tipagem mais restrita, `InferMethodReturn<T, Options>` a estreita para o que foi realmente pedido. É opt-in e puramente em nível de tipos — nada muda em runtime.
379
+
380
+ ```typescript
381
+ import type { InferMethodReturn, MethodOptions } from "vsrepo";
382
+
383
+ type Address = { id: string; city: string };
384
+ type Product = { id: string; name: string };
385
+ type User = {
386
+ id: string;
387
+ name: string;
388
+ email: string;
389
+ address: Address | null;
390
+ products: Product[];
391
+ };
392
+
393
+ const options = {
394
+ select: { id: true, name: true, products: { id: true } },
395
+ } satisfies MethodOptions<User>;
396
+
397
+ const users: InferMethodReturn<User[], typeof options> = await userRepository.getAll(options);
398
+ // { id: string; name: string; products: { id: string }[] }[]
399
+ ```
400
+
401
+ - O **primeiro** argumento de tipo é o que o método retorna: `User`, `User | null` ou `User[]`. `null` e array são preservados — inclusive nos campos de relação (`address: Address | null`).
402
+ - O **segundo** é o objeto de options passado ao método (`typeof options`). Pode ser omitido, o que equivale a não passar options.
403
+
404
+ | Options passadas | Resultado inferido |
405
+ | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
406
+ | Nenhuma (ou `{}`) | Apenas os campos escalares da entidade — sem relações. |
407
+ | `relations` | Os campos escalares mais as relações pedidas (inclusive as aninhadas); cada relação traz todos os seus campos escalares. |
408
+ | `select` | Apenas os campos selecionados. Uma relação com `true` traz todos os seus campos escalares; um `select` aninhado a restringe ainda mais. Relações selecionadas assim são carregadas mesmo sem `relations`. |
409
+ | `select` + `relations` | `select` vence e `relations` é ignorado. |
410
+
411
+ - `see` e `db` não afetam o resultado.
412
+ - Mantenha os tipos literais das options, usando `satisfies MethodOptions<T>` (como acima) ou passando-as inline. Se estiverem tipadas como um `MethodOptions<T>` genérico (ex.: `const options: MethodOptions<User> = ...`), nada é conhecido em tempo de compilação e `T` é retornado sem alterações.
413
+ - Campos e relações opcionais (`?`) da entidade continuam opcionais.
414
+ - Para ter essa inferência direto nos métodos dinâmicos, veja [Tipagem de retorno restrita com `InferMethodType`](#tipagem-de-retorno-restrita-com-infermethodtype).
415
+
374
416
  ---
375
417
 
376
418
  ## Métodos dinâmicos
377
419
 
378
- Métodos dinâmicos são declarados como um campo `declare` anotado com `@DynamicMethod()`. O comportamento deles — qual método do adapter chamar, quais filtros aplicar e como os argumentos se mapeiam para eles — é inferido inteiramente a partir do **nome** do campo, seguindo a mesma filosofia de convenção sobre configuração da v1.
420
+ Métodos dinâmicos são declarados como um campo `declare` anotado com `@DynamicMethod()`. O comportamento deles — qual método do adapter chamar, quais filtros aplicar e como os argumentos se mapeiam para eles — é inferido inteiramente a partir do **nome** do campo.
379
421
 
380
422
  ```typescript
381
423
  class UserRepository extends VSRepository<User, string> {
@@ -407,6 +449,8 @@ class UserRepository extends VSRepository<User, string> {
407
449
  }
408
450
  ```
409
451
 
452
+ > Quer que o tipo de retorno acompanhe o `select`/`relations` passados, em vez de ser sempre a entidade inteira? Declare o método com [`InferMethodType`](#tipagem-de-retorno-restrita-com-infermethodtype).
453
+
410
454
  ### Prefixos disponíveis
411
455
 
412
456
  | Prefixo | Método do adapter | Observações |
@@ -524,7 +568,7 @@ declare findByProductsSome: () => Promise<User[]>;
524
568
  | `Ordered` | Injeta um argumento `order: Ordering<T>` como **penúltimo** parâmetro (antes do `MethodOptions` opcional). |
525
569
  | `OrderedAndPaginated` | Injeta `order` como antepenúltimo, depois `pagination` como penúltimo — ambos antes do `MethodOptions`. |
526
570
  | `PaginatedAndOrdered` | Injeta `pagination` como antepenúltimo, depois `order` como penúltimo — ambos antes do `MethodOptions`. |
527
- | `OrderBy<Campo>Asc` / `OrderBy<Campo>Desc` | **Novo na v2.** Embute uma ordenação fixa diretamente no nome do método — encadeie campos com `And` (ex.: `OrderByCreatedAtAscAndNameDesc`). Não precisa de argumento `order`. |
571
+ | `OrderBy<Campo>Asc` / `OrderBy<Campo>Desc` | Embute uma ordenação fixa diretamente no nome do método — encadeie campos com `And` (ex.: `OrderByCreatedAtAscAndNameDesc`). Não precisa de argumento `order`. *OBS: Se você não especificar `Asc` ou `Desc` ele considera como `Asc`* |
528
572
  | `Distinct<Campo>And<Campo>...` | Embute campos `distinct` fixos diretamente no nome do método (só válido em métodos da família `findBy`/`findWhere`). |
529
573
  | `IgnoreConflicts` | No `createMany`/`createManyReturning`, ignora registros que violariam uma constraint única, em vez de lançar erro. _(Renomeado do `SkipDuplicates` da v1.)_ |
530
574
 
@@ -582,6 +626,42 @@ declare buscarPorEmail: (email: string, options?: MethodOptions<User>) => Promis
582
626
  declare findByStatus: (status: string) => Promise<User[]>;
583
627
  ```
584
628
 
629
+ ### Tipagem de retorno restrita com `InferMethodType`
630
+
631
+ Normalmente você escreve à mão a assinatura de um método dinâmico, e o retorno é o que você declarar (em geral a entidade inteira). `InferMethodType<Args, Return, OrmTypes?>` declara o método para você e infere o retorno **a cada chamada** a partir do `select`/`relations` passados — com as mesmas regras do [`InferMethodReturn`](#tipagem-de-retorno-restrita-com-infermethodreturn):
632
+
633
+ ```typescript
634
+ class UserRepository extends VSRepository<User, string, MyOrmTypes> {
635
+ @DynamicMethod()
636
+ declare findByName: InferMethodType<[name: string], User[], MyOrmTypes>;
637
+
638
+ // a terceira generic (OrmTypes) é opcional
639
+ @DynamicMethod()
640
+ declare findOneByEmail: InferMethodType<[email: string], User | null>;
641
+ }
642
+
643
+ await userRepository.findByName("John");
644
+ // { id: string; name: string; email: string }[] (apenas os campos escalares)
645
+
646
+ await userRepository.findByName("John", { select: { id: true, products: { id: true } } });
647
+ // { id: string; products: { id: string }[] }[]
648
+
649
+ await userRepository.findOneByEmail("john@example.com", { relations: { address: true } });
650
+ // { id: string; name: string; email: string; address: Address | null } | null
651
+ ```
652
+
653
+ | Generic | Descrição |
654
+ | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
655
+ | `Args` | Tupla com os argumentos posicionais do método, **sem** `options` — ex.: `[name: string]` ou `[where: VSRepoWhere<User>, pagination: Pagination]`. |
656
+ | `Return` | O que o método resolve: `Entity`, `Entity \| null` ou `Entity[]`. O tipo da entidade usado em `select`/`relations` é extraído daqui. |
657
+ | `OrmTypes` | _Opcional._ `VSRepoOrmTypes` do seu ORM, usado para tipar a option `db` (veja [Criando um repository](#criando-um-repository)). Padrão: `VSRepoOrmTypes`. |
658
+
659
+ - `options` (`MethodOptions<Entity, OrmTypes>`) é sempre o **último** parâmetro, opcional, depois de todos os argumentos de `Args`. Se algum desses argumentos for opcional, passe `undefined` explicitamente para alcançar `options`.
660
+ - Sem `options` o resultado tem apenas os campos escalares; com elas, segue as [mesmas regras](#tipagem-de-retorno-restrita-com-infermethodreturn) do `InferMethodReturn` (inclusive `select` vencendo `relations`).
661
+ - Chaves inexistentes em `select`/`relations` (em qualquer profundidade) são rejeitadas em tempo de compilação, e o editor as sugere via autocomplete — igual a um parâmetro `MethodOptions<Entity>` comum.
662
+ - Funciona junto com as [options do decorador](#options-do-decorador) (`proxyTo`, `injectOrdering`).
663
+ - Foi pensado para métodos dinâmicos que retornam entidades (`findBy…`, `findOneBy…`, `findWhere…`, …). Os que não retornam — `countBy…`, `existsBy…` — mantêm a assinatura normal.
664
+
585
665
  ---
586
666
 
587
667
  ## Query methods (SQL raw)
@@ -643,10 +723,10 @@ await userRepository.transaction(async tx => {
643
723
 
644
724
  ### Queries raw pontuais com `query()`
645
725
 
646
- Para SQL raw pontual que não justifica declarar um `@QueryMethod` na classe do repository, chame `query()` diretamente — ele está disponível em toda instância de `VSRepository` e passa pela mesma implementação de `query()` do adapter por baixo dos panos:
726
+ Para SQL raw pontual que não justifica declarar um `@QueryMethod` na classe do repository, chame `query()` diretamente — ele está disponível em toda instância de `VSRepository` e usa o `query()` do adapter por baixo dos panos:
647
727
 
648
728
  ```typescript
649
- query<T = any>(query: string, options?: { args?: any[]; db?: any; modifying?: boolean; singleResult?: boolean }): Promise<T>;
729
+ query<T = any>(query: string, options?: VSRepoQueryOptions<OrmTypes>): Promise<T>;
650
730
  ```
651
731
 
652
732
  ```typescript
@@ -728,6 +808,8 @@ Além dos tipos que descrevem o formato da entidade já vistos acima (`VSRepoSel
728
808
  import type {
729
809
  MethodOptions,
730
810
  RestrictMethodOptions,
811
+ InferMethodReturn,
812
+ InferMethodType,
731
813
  Pagination,
732
814
  Ordering,
733
815
  OrderByField,
@@ -753,8 +835,10 @@ import type {
753
835
  | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
754
836
  | `MethodOptions<T, K>` | Options aceitas como último argumento por todos os métodos dinâmicos e pela maioria dos métodos base: `select`, `relations`, `see`, `db`. | [Métodos base](#métodos-base), [Métodos Dinâmicos](#métodos-dinâmicos). |
755
837
  | `RestrictMethodOptions<T, K>` | `MethodOptions<T, K>` restrito, expondo só `see`/`db` — usado pelos métodos que não retornam/moldam uma `Entity` (`total`, `has`, `sum`, `average`, `min`, `max`, `removeList`, `softRemoveList`, `restoreList`). | [Métodos base](#métodos-base), [Métodos atômicos e de agregação](#métodos-atômicos-e-de-agregação). |
838
+ | `InferMethodReturn<T, Options>` | Tipagem de retorno restrita (opt-in): estreita `T` (`Entity`, `Entity \| null` ou `Entity[]`) para os campos e relações realmente pedidos via `select`/`relations`. `select` vence `relations`. | [Tipagem de retorno restrita com `InferMethodReturn`](#tipagem-de-retorno-restrita-com-infermethodreturn). |
839
+ | `InferMethodType<Args, Return, OrmTypes?>` | Declara um método dinâmico cujo retorno é inferido a cada chamada a partir do `select`/`relations` passados como `options`. `OrmTypes` é opcional e tipa a option `db`. | [Tipagem de retorno restrita com `InferMethodType`](#tipagem-de-retorno-restrita-com-infermethodtype). |
756
840
  | `Pagination` | `{ limit?, offset? }` aceito por `getAll` e pelos métodos dinâmicos com `Paginated`. | [Métodos base](#métodos-base), [Ordenação, paginação e distinct](#ordenação-paginação-e-distinct). |
757
- | `Ordering<T>` / `OrderByField<T>` / `SortDirection` | Formato de ordenação aceito por `getAll`, `defaultOrdering` e `injectOrdering`, e pelos métodos dinâmicos com `Ordered`. Pode ser um único objeto ou um array encadeado; objetos aninhados ordenam relações to-one. | [Options do construtor](#options-do-construtor), [Options do decorador](#options-do-decorador), [Ordenação, paginação e distinct](#ordenação-paginação-e-distinct). |
841
+ | `Ordering<T>` / `OrderByField<T>` / `SortDirection` | Formato de ordenação aceito por `getAll`, `defaultOrdering`, `injectOrdering` e pelos métodos dinâmicos com `Ordered`. Pode ser um único objeto ou um array encadeado. | [Options do construtor](#options-do-construtor), [Options do decorador](#options-do-decorador), [Ordenação, paginação e distinct](#ordenação-paginação-e-distinct). |
758
842
  | `SeeMode` | `"active" \| "removed" \| "all"` — controla a visibilidade de registros com soft-delete. | [Soft-delete](#soft-delete). |
759
843
  | `DeepPartial<T>` | Torna todas as propriedades de `T` opcionais recursivamente, incluindo objetos aninhados e elementos de array. | `save`, `saveList`, `patch`, `merge`, e todo os métodos dinâmicos de escrita. |
760
844
  | `CountResult` | `{ count: number }` — o formato retornado por operações em lote. | `removeList`, `softRemoveList`, `restoreList`, `createManyIgnoreConflicts`. |
@@ -872,7 +956,6 @@ export abstract class VSRepoAdapter<T> {
872
956
  update: DeepPartial<T>,
873
957
  options?: AdapterMethodOptions<T>,
874
958
  ): Promise<T>;
875
-
876
959
  abstract incrementOne<K extends NumericKeys<T>>(
877
960
  field: K,
878
961
  value: NonNullable<T[K]>,
@@ -917,9 +1000,12 @@ export abstract class VSRepoAdapter<T> {
917
1000
  where?: VSRepoWhere<T>,
918
1001
  options?: AdapterMethodOptions<T>,
919
1002
  ): Promise<number | null>;
1003
+ getPkName?(): string;
920
1004
  }
921
1005
  ```
922
1006
 
1007
+ O `getPkName()` opcional permite que o adapter declare ao repository qual campo é a primary key da entidade. Ao instanciar um `VSRepository`, você pode omitir o `pkName` das options do construtor e ele será lido do `adapter.getPkName()`. Se você omitir e o adapter não implementar o `getPkName()`, o construtor lança um `VSRepoError`.
1008
+
923
1009
  O `VSRepository` nunca fala diretamente com o ORM — ele só chama esses métodos com um `VSRepoWhere<T>` e um `AdapterMethodOptions<T>` já resolvidos. Uma vez que um adapter implemente esse contrato, todo método base, método dinâmico e query method passa a funcionar com ele automaticamente. Pra uma implementação completa e funcional, veja o repositório externo [`VSRepoPrisma7Adapter`](https://github.com/jaobrabo123/VSRepoPrisma7Adapter).
924
1010
 
925
1011
  ### Logging a partir do seu adapter
@@ -975,14 +1061,14 @@ try {
975
1061
  }
976
1062
  ```
977
1063
 
978
- | `VSRepoErrorType` | Quando é lançado |
979
- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
980
- | `DECORATOR` | Argumentos inválidos foram passados para `@DynamicMethod` ou `@QueryMethod`. |
981
- | `RESOLVER` | A biblioteca falhou ao resolver a configuração de um método dinâmico/de query em um método chamável (ex.: um nome de método desconhecido). |
982
- | `DYNAMIC` | Um dynamic/query method já resolvido falhou em tempo de execução (ex.: argumentos faltando). |
983
- | `VALIDATOR` | Options ou argumentos de método inválidos foram detectados durante a validação. |
984
- | `BASE` | Uso inválido de um método base (`get`, `save`, `remove`, etc). |
985
- | `ADAPTER` | Um `VSRepoAdapter` falhou ao falar com o ORM/banco subjacente — sempre é lançado como `VSRepoAdapterError`. |
1064
+ | `VSRepoErrorType` | Quando é lançado |
1065
+ | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
1066
+ | `DECORATOR` | Argumentos inválidos foram passados para `@DynamicMethod` ou `@QueryMethod`. |
1067
+ | `RESOLVER` | A biblioteca falhou ao resolver a configuração de um método dinâmico/de query em um método chamável (ex.: um nome de método desconhecido). |
1068
+ | `DYNAMIC` | Um dynamic/query method já resolvido falhou em tempo de execução (ex.: argumentos faltando). |
1069
+ | `VALIDATOR` | Options ou argumentos de método inválidos foram detectados durante a validação (ex.: `pkName` ausente quando o adapter não tem `getPkName()`). |
1070
+ | `BASE` | Uso inválido de um método base (`get`, `save`, `remove`, etc). |
1071
+ | `ADAPTER` | Um `VSRepoAdapter` falhou ao falar com o ORM/banco subjacente — sempre é lançado como `VSRepoAdapterError`. |
986
1072
 
987
1073
  ### `VSRepoAdapterError` e `AdapterErrorCode`
988
1074
 
@@ -1120,14 +1206,13 @@ npm pack --dry-run
1120
1206
  npm pack
1121
1207
 
1122
1208
  # 5. Consumir localmente em outro projeto
1123
- npm install ../caminho/vsrepo-1.4.0.tgz
1209
+ npm install ../caminho/vsrepo-*.tgz
1124
1210
  ```
1125
1211
 
1126
1212
  Observações:
1127
1213
 
1128
1214
  - `pnpm build` executa `tsc -p tsconfig.build.json`, que gera o JS compilado e as declarações de tipo em `dist/` com `rootDir: src`.
1129
1215
  - O pacote publicado contém **apenas** a pasta `dist/` além dos READMEs e da `LICENSE` (veja `files` no `package.json`). Os adapters viverão em seus próprios pacotes `@vsrepo/*-adapter`.
1130
- - O core é ORM-agnóstico e não tem dependência peer de `@prisma/client`.
1131
1216
 
1132
1217
  ---
1133
1218
 
@@ -1154,8 +1239,8 @@ Observações:
1154
1239
  Contribuições são bem-vindas, especialmente para melhorar o adapter do Prisma e finalizar o do Drizzle! (**[Repositório do GitHub](https://github.com/jaobrabo123/VSRepository)**):
1155
1240
 
1156
1241
  1. Faça um **Fork** do projeto.
1157
- 2. Crie uma branch para sua alteração: `git checkout -b v2-minha-alteracao`.
1158
- 3. Faça o push da sua branch: `git push origin v2-minha-alteracao`.
1242
+ 2. Crie uma branch para sua alteração: `git checkout -b minha-alteracao`.
1243
+ 3. Faça o push da sua branch: `git push origin minha-alteracao`.
1159
1244
  4. Abra um **Pull Request**.
1160
1245
 
1161
1246
  Para reportar problemas ou sugerir funcionalidades, abra uma **Issue**.
@@ -106,4 +106,6 @@ export declare abstract class VSRepoAdapter<T> {
106
106
  abstract min(field: NumericKeys<T>, where?: VSRepoWhere<T>, options?: AdapterMethodOptions<T>): Promise<number | null>;
107
107
  /** Same as {@link VSRepoAdapter.sum}, but the maximum value (`MAX()`) instead of the total. */
108
108
  abstract max(field: NumericKeys<T>, where?: VSRepoWhere<T>, options?: AdapterMethodOptions<T>): Promise<number | null>;
109
+ /** Optional method for the adapter itself to return the "pkName", instead of the user having to configure it manually in the VSRepository constructor. */
110
+ getPkName?(): string;
109
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VSRepoAdapter.js","sourceRoot":"","sources":["../src/VSRepoAdapter.ts"],"names":[],"mappings":";;;AAQA;;;;;;;;;;;GAWG;AACH,MAAsB,aAAa;CAyMlC;AAzMD,sCAyMC"}
1
+ {"version":3,"file":"VSRepoAdapter.js","sourceRoot":"","sources":["../src/VSRepoAdapter.ts"],"names":[],"mappings":";;;AAQA;;;;;;;;;;;GAWG;AACH,MAAsB,aAAa;CA4MlC;AA5MD,sCA4MC"}
@@ -61,7 +61,15 @@ class VSRepository {
61
61
  this.validator = new vsrepo_validator_1.VSRepoValidator();
62
62
  const optionsValidated = this.validator.validateConstructorOptions(options);
63
63
  this.adapter = optionsValidated.adapter;
64
- this.pkName = optionsValidated.pkName;
64
+ if (optionsValidated.pkName) {
65
+ this.pkName = optionsValidated.pkName;
66
+ }
67
+ else if (this.adapter.getPkName) {
68
+ this.pkName = this.adapter.getPkName();
69
+ }
70
+ else {
71
+ throw new VSRepoError_1.VSRepoError("Your adapter did not implement the 'getPkName' method; try updating your adapter to a newer version or manually configure 'pkName' in the constructor's 'options'.", vsrepo_error_type_enum_1.VSRepoErrorType.VALIDATOR);
72
+ }
65
73
  this.softRemoveKey = optionsValidated.softRemoveKey;
66
74
  this.defaultOrdering = optionsValidated.defaultOrdering;
67
75
  this.mergeWheresResolver = new merge_wheres_resolver_1.MergeWheresResolver(this.softRemoveKey);
@@ -1 +1 @@
1
- {"version":3,"file":"VSRepository.js","sourceRoot":"","sources":["../src/VSRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VSRepository.js","sourceRoot":"","sources":["../src/VSRepository.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -28,6 +28,8 @@ export type { CountResult } from "./types/utils/count-result.type.js";
28
28
  export type { DeepPartial } from "./types/utils/deep-partial.type.js";
29
29
  export type { KeysOfType } from "./types/utils/keys-of-type.type.js";
30
30
  export type { MethodOptions } from "./types/utils/methods-options.type.js";
31
+ export type { InferMethodReturn } from "./types/utils/infer-method-return.type.js";
32
+ export type { InferMethodType } from "./types/utils/infer-method-type.type.js";
31
33
  export type { Ordering, OrderByField, SortDirection } from "./types/utils/ordering.type.js";
32
34
  export type { Pagination } from "./types/utils/pagination.type.js";
33
35
  export type { Primitive } from "./types/utils/primitive.type.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAE1B,gCAAgC;AAChC,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AACrB,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AACtB,0DAAsD;AAA7C,6GAAA,WAAW,OAAA;AACpB,wEAAoE;AAA3D,2HAAA,kBAAkB,OAAA;AAC3B,kEAAwD;AAA/C,uGAAA,KAAK,OAAA;AAEd,aAAa;AACb,wFAAyE;AAAhE,4HAAA,aAAa,OAAA;AACtB,oFAAqE;AAA5D,wHAAA,WAAW,OAAA;AAEpB,eAAe;AACf,wFAA6E;AAApE,4HAAA,eAAe,OAAA;AACxB,8EAAmE;AAA1D,kHAAA,UAAU,OAAA;AACnB,4GAAiG;AAAxF,gJAAA,yBAAyB,OAAA;AAClC,0FAA+E;AAAtE,8HAAA,gBAAgB,OAAA;AAEzB,mBAAmB;AACnB,oEAA0D;AAAjD,yGAAA,MAAM,OAAA;AAoCf,oBAAoB;AACpB,wEAA8D;AAArD,6GAAA,QAAQ,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAE1B,gCAAgC;AAChC,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AACrB,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AACtB,0DAAsD;AAA7C,6GAAA,WAAW,OAAA;AACpB,wEAAoE;AAA3D,2HAAA,kBAAkB,OAAA;AAC3B,kEAAwD;AAA/C,uGAAA,KAAK,OAAA;AAEd,aAAa;AACb,wFAAyE;AAAhE,4HAAA,aAAa,OAAA;AACtB,oFAAqE;AAA5D,wHAAA,WAAW,OAAA;AAEpB,eAAe;AACf,wFAA6E;AAApE,4HAAA,eAAe,OAAA;AACxB,8EAAmE;AAA1D,kHAAA,UAAU,OAAA;AACnB,4GAAiG;AAAxF,gJAAA,yBAAyB,OAAA;AAClC,0FAA+E;AAAtE,8HAAA,gBAAgB,OAAA;AAEzB,mBAAmB;AACnB,oEAA0D;AAAjD,yGAAA,MAAM,OAAA;AAsCf,oBAAoB;AACpB,wEAA8D;AAArD,6GAAA,QAAQ,OAAA"}
@@ -63,7 +63,7 @@ class VSRepoValidator {
63
63
  constructorOptionsSchema = v.object({
64
64
  // * Usando any ao invés de instanceof para não ter erro de referencia
65
65
  adapter: v.any(),
66
- pkName: v.string(),
66
+ pkName: v.optional(v.string()),
67
67
  softRemoveKey: v.optional(v.string()),
68
68
  logLevel: v.optional(v.enum(vs_log_level_enum_1.VSLogLevel)),
69
69
  logSlowThresholdMs: v.optional(v.union([v.pipe(v.number(), v.gtValue(0)), v.boolean()])),
@@ -1 +1 @@
1
- {"version":3,"file":"vsrepo.validator.js","sourceRoot":"","sources":["../../../src/internal/validators/vsrepo.validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vsrepo.validator.js","sourceRoot":"","sources":["../../../src/internal/validators/vsrepo.validator.ts"],"names":[],"mappings":"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"}