@alevnyacow/nzmt 0.25.2 → 0.26.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/README.md +1 -3
- package/bin/cli.js +10 -19
- 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
|
@@ -827,36 +827,27 @@ 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
|
-
`import { Module } from '@alevnyacow/nzmt'
|
|
832
|
+
`import { Module } from '@alevnyacow/nzmt'`,
|
|
833
833
|
'',
|
|
834
834
|
`export const ${lowerCase}ProviderMetadata = {`,
|
|
835
835
|
`\tname: '${upperCase}Provider',`,
|
|
836
836
|
`\tschemas: {}`,
|
|
837
837
|
`} satisfies Module.Metadata`,
|
|
838
838
|
``,
|
|
839
|
-
|
|
840
|
-
``,
|
|
841
|
-
`export abstract class ${upperCase}Provider {`,
|
|
842
|
-
`\tprotected methods = Module.methods(${lowerCase}ProviderMetadata)`,
|
|
843
|
-
`}`
|
|
844
|
-
].join('\n'))
|
|
845
|
-
|
|
846
|
-
// Mock
|
|
847
|
-
fs.writeFileSync(path.resolve(folder, `${entityName}.provider.mock.ts`), [
|
|
848
|
-
`import { ${upperCase}Provider } from './${entityName}.provider'`,
|
|
839
|
+
'const methods Module.methods(${lowerCase}ProviderMetadata)',
|
|
849
840
|
'',
|
|
850
|
-
`export class ${upperCase}
|
|
841
|
+
`export class ${upperCase}Provider {`,
|
|
851
842
|
`\t`,
|
|
852
843
|
`}`
|
|
853
844
|
].join('\n'))
|
|
854
845
|
|
|
855
|
-
//
|
|
856
|
-
fs.writeFileSync(path.resolve(folder, `${entityName}.provider
|
|
846
|
+
// Mock
|
|
847
|
+
fs.writeFileSync(path.resolve(folder, `${entityName}.provider.mock.ts`), [
|
|
857
848
|
`import { ${upperCase}Provider } from './${entityName}.provider'`,
|
|
858
849
|
'',
|
|
859
|
-
`export class ${upperCase}
|
|
850
|
+
`export class ${upperCase}MockProvider implements ${upperCase}Provider {`,
|
|
860
851
|
`\t`,
|
|
861
852
|
`}`
|
|
862
853
|
].join('\n'))
|
|
@@ -864,7 +855,7 @@ function generateProvider(lowerCase, upperCase) {
|
|
|
864
855
|
// Barrel
|
|
865
856
|
fs.writeFileSync(path.resolve(folder, `index.ts`), [
|
|
866
857
|
`export * from './${entityName}.provider'`,
|
|
867
|
-
`export * from './${entityName}.provider
|
|
858
|
+
`export * from './${entityName}.provider.mock'`
|
|
868
859
|
].join('\n'))
|
|
869
860
|
|
|
870
861
|
// Update DI
|
|
@@ -873,13 +864,13 @@ function generateProvider(lowerCase, upperCase) {
|
|
|
873
864
|
insertBeforeLineInFile(
|
|
874
865
|
diEntriesPath,
|
|
875
866
|
'type DIEntries =',
|
|
876
|
-
`import { ${upperCase}MockProvider, ${upperCase}
|
|
867
|
+
`import { ${upperCase}MockProvider, ${upperCase}Provider } from '@${config?.paths?.providers}/${entityName}'`
|
|
877
868
|
)
|
|
878
869
|
|
|
879
870
|
insertAfterLineInFile(
|
|
880
871
|
diEntriesPath,
|
|
881
872
|
'// Providers',
|
|
882
|
-
`\t${upperCase}Provider: { test: ${upperCase}MockProvider, prod: ${upperCase}
|
|
873
|
+
`\t${upperCase}Provider: { test: ${upperCase}MockProvider, prod: ${upperCase}Provider, dev: ${upperCase}Provider },`,
|
|
883
874
|
)
|
|
884
875
|
}
|
|
885
876
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alevnyacow/nzmt",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.1",
|
|
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": {
|