@alevnyacow/nzmt 0.25.1 → 0.26.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.md +1 -3
- package/bin/cli.js +7 -18
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -142,12 +142,10 @@ export default async function Page() {
|
|
|
142
142
|
| `npx nzmt e <name>` | **e**ntity ||
|
|
143
143
|
| `npx nzmt vo <name>` | **v**alue **o**bject ||
|
|
144
144
|
| `npx nzmt cs <name>` | **c**ustom **s**tore (all schemas are `z.object({})`) ||
|
|
145
|
-
| `npx nzmt p <name>` | **p**rovider |
|
|
145
|
+
| `npx nzmt p <name>` | **p**rovider | |
|
|
146
146
|
| `npx nzmt s <name>` | **s**ervice |`i:UserStore,Logger` will automatically inject `UserStore` and `Logger`. E.g. `npx nzmt s shop i:UserStore,ProductStore` will create `ShopService` with already injected `UserStore` and `ProductStore`|
|
|
147
147
|
| `npx nzmt c <name>` | **c**ontroller |`i:UserService` will automatically inject `UserService`. `Logger` and `Guards` are injected by default regardless of `i:` option|
|
|
148
148
|
|
|
149
|
-
Here’s a shorter, simpler version in English:
|
|
150
|
-
|
|
151
149
|
---
|
|
152
150
|
|
|
153
151
|
# How to implement your own methods
|
package/bin/cli.js
CHANGED
|
@@ -434,7 +434,7 @@ function generateInfrastructure(upperCase, lowerCase) {
|
|
|
434
434
|
insertBeforeLineInFile(
|
|
435
435
|
diEntriesPath,
|
|
436
436
|
'type DIEntries =',
|
|
437
|
-
`import { ${upperCase} } from '@${config?.paths?.infrastructure}/${entityName}'`
|
|
437
|
+
`import { ${upperCase}, Mock${upperCase} } from '@${config?.paths?.infrastructure}/${entityName}'`
|
|
438
438
|
)
|
|
439
439
|
|
|
440
440
|
insertAfterLineInFile(
|
|
@@ -827,7 +827,7 @@ function generateProvider(lowerCase, upperCase) {
|
|
|
827
827
|
|
|
828
828
|
fs.mkdirSync(folder, { recursive: true })
|
|
829
829
|
|
|
830
|
-
//
|
|
830
|
+
// Provider
|
|
831
831
|
fs.writeFileSync(path.resolve(folder, `${entityName}.provider.ts`), [
|
|
832
832
|
`import { Module } from '@alevnyacow/nzmt',`,
|
|
833
833
|
'',
|
|
@@ -836,9 +836,7 @@ function generateProvider(lowerCase, upperCase) {
|
|
|
836
836
|
`\tschemas: {}`,
|
|
837
837
|
`} satisfies Module.Metadata`,
|
|
838
838
|
``,
|
|
839
|
-
`
|
|
840
|
-
``,
|
|
841
|
-
`export abstract class ${upperCase}Provider {`,
|
|
839
|
+
`export class ${upperCase}Provider {`,
|
|
842
840
|
`\tprotected methods = Module.methods(${lowerCase}ProviderMetadata)`,
|
|
843
841
|
`}`
|
|
844
842
|
].join('\n'))
|
|
@@ -847,16 +845,7 @@ function generateProvider(lowerCase, upperCase) {
|
|
|
847
845
|
fs.writeFileSync(path.resolve(folder, `${entityName}.provider.mock.ts`), [
|
|
848
846
|
`import { ${upperCase}Provider } from './${entityName}.provider'`,
|
|
849
847
|
'',
|
|
850
|
-
`export class ${upperCase}MockProvider
|
|
851
|
-
`\t`,
|
|
852
|
-
`}`
|
|
853
|
-
].join('\n'))
|
|
854
|
-
|
|
855
|
-
// Provider
|
|
856
|
-
fs.writeFileSync(path.resolve(folder, `${entityName}.provider.${providerType.toLowerCase()}.ts`), [
|
|
857
|
-
`import { ${upperCase}Provider } from './${entityName}.provider'`,
|
|
858
|
-
'',
|
|
859
|
-
`export class ${upperCase}${providerType}Provider extends ${upperCase}Provider {`,
|
|
848
|
+
`export class ${upperCase}MockProvider implements ${upperCase}Provider {`,
|
|
860
849
|
`\t`,
|
|
861
850
|
`}`
|
|
862
851
|
].join('\n'))
|
|
@@ -864,7 +853,7 @@ function generateProvider(lowerCase, upperCase) {
|
|
|
864
853
|
// Barrel
|
|
865
854
|
fs.writeFileSync(path.resolve(folder, `index.ts`), [
|
|
866
855
|
`export * from './${entityName}.provider'`,
|
|
867
|
-
`export * from './${entityName}.provider
|
|
856
|
+
`export * from './${entityName}.provider.mock'`
|
|
868
857
|
].join('\n'))
|
|
869
858
|
|
|
870
859
|
// Update DI
|
|
@@ -873,13 +862,13 @@ function generateProvider(lowerCase, upperCase) {
|
|
|
873
862
|
insertBeforeLineInFile(
|
|
874
863
|
diEntriesPath,
|
|
875
864
|
'type DIEntries =',
|
|
876
|
-
`import { ${upperCase}MockProvider, ${upperCase}
|
|
865
|
+
`import { ${upperCase}MockProvider, ${upperCase}Provider } from '@${config?.paths?.providers}/${entityName}'`
|
|
877
866
|
)
|
|
878
867
|
|
|
879
868
|
insertAfterLineInFile(
|
|
880
869
|
diEntriesPath,
|
|
881
870
|
'// Providers',
|
|
882
|
-
`\t${upperCase}Provider: { test: ${upperCase}MockProvider, prod: ${upperCase}
|
|
871
|
+
`\t${upperCase}Provider: { test: ${upperCase}MockProvider, prod: ${upperCase}Provider, dev: ${upperCase}Provider },`,
|
|
883
872
|
)
|
|
884
873
|
}
|
|
885
874
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alevnyacow/nzmt",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.0",
|
|
4
4
|
"description": "Next Zod Modules Toolkit",
|
|
5
5
|
"keywords": ["next", "full-stack", "server", "backend", "cli", "scaffolding", "zod", "rest", "contract programming", "contract-first", "react-query", "ddd", "domain-driven"],
|
|
6
6
|
"repository": {
|