prisma-generator-express 1.16.7 → 1.18.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.
Files changed (56) hide show
  1. package/README.md +4 -4
  2. package/dist/generator.js +8 -129
  3. package/dist/generator.js.map +1 -1
  4. package/dist/helpers/generateOperation.js +471 -0
  5. package/dist/helpers/generateOperation.js.map +1 -0
  6. package/dist/helpers/generateRouteFile.js +18 -0
  7. package/dist/helpers/generateRouteFile.js.map +1 -1
  8. package/package.json +16 -16
  9. package/src/copy/createOutputValidatorMiddleware.ts +1 -1
  10. package/src/copy/createValidatorMiddleware.ts +1 -1
  11. package/src/copy/misc.ts +1 -1
  12. package/src/copy/parseQueryParams.ts +1 -1
  13. package/src/copy/routeConfig.ts +5 -3
  14. package/src/copy/transformZod.ts +15 -16
  15. package/src/generator.ts +9 -143
  16. package/src/helpers/generateOperation.ts +515 -0
  17. package/src/helpers/generateRouteFile.ts +19 -1
  18. package/dist/helpers/generateAggregate.js +0 -51
  19. package/dist/helpers/generateAggregate.js.map +0 -1
  20. package/dist/helpers/generateCount.js +0 -50
  21. package/dist/helpers/generateCount.js.map +0 -1
  22. package/dist/helpers/generateCreate.js +0 -49
  23. package/dist/helpers/generateCreate.js.map +0 -1
  24. package/dist/helpers/generateCreateMany.js +0 -49
  25. package/dist/helpers/generateCreateMany.js.map +0 -1
  26. package/dist/helpers/generateDelete.js +0 -49
  27. package/dist/helpers/generateDelete.js.map +0 -1
  28. package/dist/helpers/generateDeleteMany.js +0 -49
  29. package/dist/helpers/generateDeleteMany.js.map +0 -1
  30. package/dist/helpers/generateFindFirst.js +0 -56
  31. package/dist/helpers/generateFindFirst.js.map +0 -1
  32. package/dist/helpers/generateFindMany.js +0 -56
  33. package/dist/helpers/generateFindMany.js.map +0 -1
  34. package/dist/helpers/generateFindUnique.js +0 -56
  35. package/dist/helpers/generateFindUnique.js.map +0 -1
  36. package/dist/helpers/generateGroupBy.js +0 -51
  37. package/dist/helpers/generateGroupBy.js.map +0 -1
  38. package/dist/helpers/generateUpdate.js +0 -49
  39. package/dist/helpers/generateUpdate.js.map +0 -1
  40. package/dist/helpers/generateUpdateMany.js +0 -49
  41. package/dist/helpers/generateUpdateMany.js.map +0 -1
  42. package/dist/helpers/generateUpsert.js +0 -49
  43. package/dist/helpers/generateUpsert.js.map +0 -1
  44. package/src/helpers/generateAggregate.ts +0 -59
  45. package/src/helpers/generateCount.ts +0 -58
  46. package/src/helpers/generateCreate.ts +0 -56
  47. package/src/helpers/generateCreateMany.ts +0 -55
  48. package/src/helpers/generateDelete.ts +0 -57
  49. package/src/helpers/generateDeleteMany.ts +0 -57
  50. package/src/helpers/generateFindFirst.ts +0 -62
  51. package/src/helpers/generateFindMany.ts +0 -62
  52. package/src/helpers/generateFindUnique.ts +0 -62
  53. package/src/helpers/generateGroupBy.ts +0 -60
  54. package/src/helpers/generateUpdate.ts +0 -56
  55. package/src/helpers/generateUpdateMany.ts +0 -56
  56. package/src/helpers/generateUpsert.ts +0 -57
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateOperation.js","sourceRoot":"","sources":["../../src/helpers/generateOperation.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,10 @@ import { ${modelName}FindMany } from './${modelName}FindMany';
13
13
  import { ${modelName}FindUnique } from './${modelName}FindUnique';
14
14
  import { ${modelName}Create } from './${modelName}Create';
15
15
  import { ${modelName}CreateMany } from './${modelName}CreateMany';
16
+ import { ${modelName}CreateManyAndReturn } from './${modelName}CreateManyAndReturn';
16
17
  import { ${modelName}Update } from './${modelName}Update';
17
18
  import { ${modelName}UpdateMany } from './${modelName}UpdateMany';
19
+ import { ${modelName}UpdateManyAndReturn } from './${modelName}UpdateManyAndReturn';
18
20
  import { ${modelName}Upsert } from './${modelName}Upsert';
19
21
  import { ${modelName}Delete } from './${modelName}Delete';
20
22
  import { ${modelName}DeleteMany } from './${modelName}DeleteMany';
@@ -121,6 +123,14 @@ export function ${routerFunctionName}(config: RouteConfig<RequestHandler>) {
121
123
  }
122
124
  }
123
125
 
126
+ if (config.enableAll || config?.createManyAndReturn) {
127
+ const { before = [], after = [], inputValidator, outputValidator } = config.createManyAndReturn || defaultBeforeAfter;
128
+ setupRoute('/many/return', 'post', before, ${modelName}CreateManyAndReturn as RequestHandler, inputValidator, outputValidator);
129
+ if (after.length) {
130
+ router.use(removeTrailingSlash(basePath) + '/many/return', ...after);
131
+ }
132
+ }
133
+
124
134
  if (config.enableAll || config?.update) {
125
135
  const { before = [], after = [], inputValidator, outputValidator } = config.update || defaultBeforeAfter;
126
136
  setupRoute('/', 'put', before, ${modelName}Update as RequestHandler, inputValidator, outputValidator);
@@ -137,6 +147,14 @@ export function ${routerFunctionName}(config: RouteConfig<RequestHandler>) {
137
147
  }
138
148
  }
139
149
 
150
+ if (config.enableAll || config?.updateManyAndReturn) {
151
+ const { before = [], after = [], inputValidator, outputValidator } = config.updateManyAndReturn || defaultBeforeAfter;
152
+ setupRoute('/many/return', 'put', before, ${modelName}UpdateManyAndReturn as RequestHandler, inputValidator, outputValidator);
153
+ if (after.length) {
154
+ router.use(removeTrailingSlash(basePath) + '/many/return', ...after);
155
+ }
156
+ }
157
+
140
158
  if (config.enableAll || config?.upsert) {
141
159
  const { before = [], after = [], inputValidator, outputValidator } = config.upsert || defaultBeforeAfter;
142
160
  setupRoute('/', 'patch', before, ${modelName}Upsert as RequestHandler, inputValidator, outputValidator);
@@ -1 +1 @@
1
- {"version":3,"file":"generateRouteFile.js","sourceRoot":"","sources":["../../src/helpers/generateRouteFile.ts"],"names":[],"mappings":";;AAEA,wDAgMC;AAhMD,SAAgB,sBAAsB,CAAC,EACrC,KAAK,GAGN;IACC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAA;IAC5B,MAAM,kBAAkB,GAAG,GAAG,SAAS,QAAQ,CAAA;IAE/C,OAAO;;;;WAIE,SAAS,uBAAuB,SAAS;WACzC,SAAS,sBAAsB,SAAS;WACxC,SAAS,wBAAwB,SAAS;WAC1C,SAAS,oBAAoB,SAAS;WACtC,SAAS,wBAAwB,SAAS;WAC1C,SAAS,oBAAoB,SAAS;WACtC,SAAS,wBAAwB,SAAS;WAC1C,SAAS,oBAAoB,SAAS;WACtC,SAAS,oBAAoB,SAAS;WACtC,SAAS,wBAAwB,SAAS;WAC1C,SAAS,uBAAuB,SAAS;WACzC,SAAS,mBAAmB,SAAS;WACrC,SAAS,qBAAqB,SAAS;;;;;;;;;;;;;qCAab,SAAS;;;;;kBAK5B,kBAAkB;;;4EAGwC,SAAS,CAAC,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CA0CzD,SAAS;;;;;;;;qCAQd,SAAS;;;;;;;;wCAQN,SAAS;;;;;;;;sCAQX,SAAS;;;;;;;;0CAQL,SAAS;;;;;;;;qCAQd,SAAS;;;;;;;;yCAQL,SAAS;;;;;;;;uCAQX,SAAS;;;;;;;;wCAQR,SAAS;;;;;;;;4CAQL,SAAS;;;;;;;;8CAQP,SAAS;;;;;;;;0CAQb,SAAS;;;;;;;;4CAQP,SAAS;;;;;;;;CAQpD,CAAA;AACD,CAAC"}
1
+ {"version":3,"file":"generateRouteFile.js","sourceRoot":"","sources":["../../src/helpers/generateRouteFile.ts"],"names":[],"mappings":";;AAEA,wDAkNC;AAlND,SAAgB,sBAAsB,CAAC,EACrC,KAAK,GAGN;IACC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAA;IAC5B,MAAM,kBAAkB,GAAG,GAAG,SAAS,QAAQ,CAAA;IAE/C,OAAO;;;;WAIE,SAAS,uBAAuB,SAAS;WACzC,SAAS,sBAAsB,SAAS;WACxC,SAAS,wBAAwB,SAAS;WAC1C,SAAS,oBAAoB,SAAS;WACtC,SAAS,wBAAwB,SAAS;WAC1C,SAAS,iCAAiC,SAAS;WACnD,SAAS,oBAAoB,SAAS;WACtC,SAAS,wBAAwB,SAAS;WAC1C,SAAS,iCAAiC,SAAS;WACnD,SAAS,oBAAoB,SAAS;WACtC,SAAS,oBAAoB,SAAS;WACtC,SAAS,wBAAwB,SAAS;WAC1C,SAAS,uBAAuB,SAAS;WACzC,SAAS,mBAAmB,SAAS;WACrC,SAAS,qBAAqB,SAAS;;;;;;;;;;;;;qCAab,SAAS;;;;;kBAK5B,kBAAkB;;;4EAGwC,SAAS,CAAC,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CA0CzD,SAAS;;;;;;;;qCAQd,SAAS;;;;;;;;wCAQN,SAAS;;;;;;;;sCAQX,SAAS;;;;;;;;0CAQL,SAAS;;;;;;;;iDAQF,SAAS;;;;;;;;qCAQrB,SAAS;;;;;;;;yCAQL,SAAS;;;;;;;;gDAQF,SAAS;;;;;;;;uCAQlB,SAAS;;;;;;;;wCAQR,SAAS;;;;;;;;4CAQL,SAAS;;;;;;;;8CAQP,SAAS;;;;;;;;0CAQb,SAAS;;;;;;;;4CAQP,SAAS;;;;;;;;CAQpD,CAAA;AACD,CAAC"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "prisma-generator-express",
3
3
  "description": "Prisma generator of Express CRUD API",
4
- "version": "1.16.7",
4
+ "version": "1.18.0",
5
5
  "main": "dist/generator.js",
6
6
  "license": "MIT",
7
7
  "bin": "dist/bin.js",
8
8
  "engines": {
9
- "node": ">=20.0"
9
+ "node": ">=22.0"
10
10
  },
11
11
  "scripts": {
12
12
  "start": "node dist/bin.js",
@@ -18,27 +18,27 @@
18
18
  "prepublishOnly": "node copy.js "
19
19
  },
20
20
  "dependencies": {
21
- "@prisma/client": "6.17.1",
22
- "@prisma/generator-helper": "6.17.1",
21
+ "@prisma/client": "7.5.0",
22
+ "@prisma/generator-helper": "7.5.0",
23
23
  "@prisma/sdk": "4.0.0",
24
- "express": "^5.1.0",
25
- "lodash": "^4.17.21",
26
- "prettier": "3.6.2",
27
- "zod": "^4.1.12"
24
+ "express": "^5.2.1",
25
+ "lodash": "^4.17.23",
26
+ "prettier": "3.8.1",
27
+ "zod": "^4.3.6"
28
28
  },
29
29
  "devDependencies": {
30
- "@prisma/internals": "^6.17.1",
30
+ "@prisma/internals": "^7.5.0",
31
31
  "@semantic-release/changelog": "^6.0.3",
32
32
  "@semantic-release/git": "^10.0.1",
33
- "@types/express": "^5.0.3",
33
+ "@types/express": "^5.0.6",
34
34
  "@types/jest": "30.0.0",
35
- "@types/lodash": "^4.17.20",
36
- "@types/node": "24.7.2",
35
+ "@types/lodash": "^4.17.24",
36
+ "@types/node": "25.5.0",
37
37
  "@types/prettier": "3.0.0",
38
- "jest": "30.2.0",
39
- "prisma": "6.17.1",
40
- "semantic-release": "^24.2.9",
41
- "ts-jest": "29.4.5",
38
+ "jest": "30.3.0",
39
+ "prisma": "7.5.0",
40
+ "semantic-release": "^25.0.3",
41
+ "ts-jest": "29.4.6",
42
42
  "typescript": "5.9.3"
43
43
  },
44
44
  "homepage": "https://github.com/multipliedtwice/prisma-generator-express/blob/master/README.md",
@@ -29,7 +29,7 @@ export function createOutputValidatorMiddleware({
29
29
  res.send = function (data) {
30
30
  const validationResult = schema.safeParse(data)
31
31
  if (!validationResult.success) {
32
- const errors = validationResult.error.errors
32
+ const errors = validationResult.error.issues
33
33
  next({
34
34
  status: 400,
35
35
  message: 'Output validation failed',
@@ -42,7 +42,7 @@ export function createValidatorMiddleware({
42
42
  }
43
43
 
44
44
  if (!validationResult.success) {
45
- const errors = validationResult.error.errors
45
+ const errors = validationResult.error.issues
46
46
  return next({
47
47
  status: 400,
48
48
  message: 'Validation failed',
package/src/copy/misc.ts CHANGED
@@ -17,7 +17,7 @@ export function safeJSONparse<T>(
17
17
  if (data === 'false') return false
18
18
  if (data === 'undefined') return undefined
19
19
  if (data === 'null') return null
20
- return isJsonString(data) ? JSON.parse(data as string) : data
20
+ return isJsonString(data) ? JSON.parse(data as string) : data as any
21
21
  }
22
22
 
23
23
  export const isObject = (value: unknown): value is Record<string, unknown> => {
@@ -4,7 +4,7 @@ import { ParsedQs } from 'qs'
4
4
  /**
5
5
  * Type definition for possible query parameter types.
6
6
  */
7
- type QueryParams = string | ParsedQs | string[] | ParsedQs[] | undefined
7
+ type QueryParams = string | ParsedQs | string[] | ParsedQs[] | Array<string | ParsedQs> | undefined
8
8
 
9
9
  /**
10
10
  * Parses a query value to convert strings to their respective types.
@@ -1,10 +1,10 @@
1
1
  import { RequestHandler } from 'express'
2
- import { ZodTypeAny } from 'zod'
2
+ import { ZodType } from 'zod'
3
3
 
4
4
  export interface ValidatorConfig {
5
5
  allow?: string[]
6
6
  forbid?: string[]
7
- schema: ZodTypeAny
7
+ schema: ZodType
8
8
  }
9
9
 
10
10
  interface MiddlewareConfig<M> {
@@ -20,8 +20,10 @@ export interface RouteConfig<M> {
20
20
  findUnique?: MiddlewareConfig<M>
21
21
  create?: MiddlewareConfig<M>
22
22
  createMany?: MiddlewareConfig<M>
23
+ createManyAndReturn?: MiddlewareConfig<M>
23
24
  update?: MiddlewareConfig<M>
24
25
  updateMany?: MiddlewareConfig<M>
26
+ updateManyAndReturn?: MiddlewareConfig<M>
25
27
  upsert?: MiddlewareConfig<M>
26
28
  delete?: MiddlewareConfig<M>
27
29
  deleteMany?: MiddlewareConfig<M>
@@ -31,4 +33,4 @@ export interface RouteConfig<M> {
31
33
  addModelPrefix?: boolean
32
34
  enableAll?: boolean
33
35
  customUrlPrefix?: string
34
- }
36
+ }
@@ -1,12 +1,10 @@
1
1
  import { get } from 'lodash'
2
2
  import {
3
+ output,
3
4
  z,
4
- ZodEffects,
5
5
  ZodError,
6
- ZodIssue,
7
- ZodIssueCode,
8
6
  ZodObject,
9
- ZodTypeAny,
7
+ ZodType,
10
8
  } from 'zod'
11
9
 
12
10
  function startsWith(str: string, prefix: string): boolean {
@@ -34,13 +32,14 @@ function isKeyAllowed(key: string, allowedPaths: string[]): boolean {
34
32
  )
35
33
  }
36
34
 
37
- export function allow<T extends ZodTypeAny>(
35
+ export function allow<T extends ZodType>(
38
36
  schema: T,
39
37
  allowedPaths: string[],
40
- ): ZodEffects<T, any, any> {
41
- const rootSchema = schema instanceof z.ZodObject ? schema.strict() : undefined
38
+ ) {
39
+ const schemaToTransform = schema instanceof z.ZodObject ? schema.strict() : schema
40
+ const rootSchema = schemaToTransform instanceof z.ZodObject ? schemaToTransform : undefined
42
41
 
43
- return rootSchema?.transform((data) => {
42
+ return schemaToTransform.transform((data) => {
44
43
  const flatData = flattenObject(data, '', rootSchema)
45
44
 
46
45
  const disallowedPaths: string[] = []
@@ -56,13 +55,13 @@ export function allow<T extends ZodTypeAny>(
56
55
  }
57
56
 
58
57
  return data
59
- }) as unknown as ZodEffects<T, any, any>
58
+ })
60
59
  }
61
60
 
62
- export function forbid<T extends z.ZodTypeAny>(
61
+ export function forbid<T extends ZodType>(
63
62
  schema: T,
64
63
  forbiddenPaths: string[],
65
- ): ZodEffects<T, any, any> {
64
+ ) {
66
65
  return schema.transform((data) => {
67
66
  const forbiddenMatches: string[] = []
68
67
 
@@ -78,11 +77,11 @@ export function forbid<T extends z.ZodTypeAny>(
78
77
  throw createZodErrorFromPaths(forbiddenMatches, 'Field is forbidden:')
79
78
  }
80
79
  return data
81
- }) as ZodEffects<T, any, any>
80
+ })
82
81
  }
83
82
 
84
- export function flattenObject(
85
- obj: Record<string, any>,
83
+ export function flattenObject<T>(
84
+ obj: Record<string, any> | output<T>,
86
85
  prefix = '',
87
86
  schema?: ZodObject<any>,
88
87
  ): Record<string, any> {
@@ -128,10 +127,10 @@ function createZodErrorFromPaths(
128
127
  disallowedPaths: string[],
129
128
  errorMessage: string,
130
129
  ): ZodError {
131
- const errors: ZodIssue[] = []
130
+ const errors: z.core.$ZodIssue[] = []
132
131
  for (const path of disallowedPaths) {
133
132
  errors.push({
134
- code: ZodIssueCode.custom,
133
+ code: 'custom',
135
134
  message: `${errorMessage} '${path}'`,
136
135
  path: path.split('.'),
137
136
  })
package/src/generator.ts CHANGED
@@ -2,22 +2,9 @@ import { generatorHandler, GeneratorOptions } from '@prisma/generator-helper'
2
2
  import { logger } from '@prisma/sdk'
3
3
  import { GENERATOR_NAME } from './constants'
4
4
  import { writeFileSafely } from './utils/writeFileSafely'
5
- import { generateFindUniqueFunction } from './helpers/generateFindUnique'
6
5
  import { generateImportPrismaStatement } from './helpers/generateImportPrismaStatement'
7
- import { generateFindManyFunction } from './helpers/generateFindMany'
8
- import { generateFindFirstFunction } from './helpers/generateFindFirst'
9
- import { generateCreateFunction } from './helpers/generateCreate'
10
6
  import { generateRouterFunction } from './helpers/generateRouteFile'
11
- import { generateCreateManyFunction } from './helpers/generateCreateMany'
12
- import { generateUpdateFunction } from './helpers/generateUpdate'
13
- import { generateUpdateManyFunction } from './helpers/generateUpdateMany'
14
- import { generateUpsertFunction } from './helpers/generateUpsert'
15
- import { generateDeleteFunction } from './helpers/generateDelete'
16
- import { generateDeleteManyFunction } from './helpers/generateDeleteMany'
17
- import { generateAggregateFunction } from './helpers/generateAggregate'
18
- import { generateCountFunction } from './helpers/generateCount'
19
- import { generateGroupByFunction } from './helpers/generateGroupBy'
20
-
7
+ import { generateOperationFunction, OPERATION_CONFIGS } from './helpers/generateOperation'
21
8
  import { copyFiles } from './utils/copyFiles'
22
9
 
23
10
  const { version } = require('../package.json')
@@ -45,135 +32,14 @@ generatorHandler({
45
32
  continue
46
33
  }
47
34
 
48
- await writeFileSafely({
49
- content: generateFindUniqueFunction({
50
- model,
51
- prismaImportStatement,
52
- }),
53
- options,
54
- model,
55
- operation: 'FindUnique',
56
- })
57
-
58
- await writeFileSafely({
59
- content: generateFindFirstFunction({
60
- model,
61
- prismaImportStatement,
62
- }),
63
- options,
64
- model,
65
- operation: 'FindFirst',
66
- })
67
-
68
- await writeFileSafely({
69
- content: generateFindManyFunction({
70
- model,
71
- prismaImportStatement,
72
- }),
73
- options,
74
- model,
75
- operation: 'FindMany',
76
- })
77
-
78
- await writeFileSafely({
79
- content: generateCreateFunction({
80
- model,
81
- prismaImportStatement,
82
- }),
83
- options,
84
- model,
85
- operation: 'Create',
86
- })
87
-
88
- await writeFileSafely({
89
- content: generateCreateManyFunction({
90
- model,
91
- prismaImportStatement,
92
- }),
93
- options,
94
- model,
95
- operation: 'CreateMany',
96
- })
97
-
98
- await writeFileSafely({
99
- content: generateUpdateFunction({
100
- model,
101
- prismaImportStatement,
102
- }),
103
- options,
104
- model,
105
- operation: 'Update',
106
- })
107
-
108
- await writeFileSafely({
109
- content: generateUpdateManyFunction({
110
- model,
111
- prismaImportStatement,
112
- }),
113
- options,
114
- model,
115
- operation: 'UpdateMany',
116
- })
117
-
118
- await writeFileSafely({
119
- content: generateUpsertFunction({
120
- model,
121
- prismaImportStatement,
122
- }),
123
- options,
124
- model,
125
- operation: 'Upsert',
126
- })
127
-
128
- await writeFileSafely({
129
- content: generateDeleteFunction({
130
- model,
131
- prismaImportStatement,
132
- }),
133
- options,
134
- model,
135
- operation: 'Delete',
136
- })
137
-
138
- await writeFileSafely({
139
- content: generateDeleteManyFunction({
35
+ for (const cfg of OPERATION_CONFIGS) {
36
+ await writeFileSafely({
37
+ content: generateOperationFunction(cfg, model, prismaImportStatement),
38
+ options,
140
39
  model,
141
- prismaImportStatement,
142
- }),
143
- options,
144
- model,
145
- operation: 'DeleteMany',
146
- })
147
-
148
- await writeFileSafely({
149
- content: generateAggregateFunction({
150
- model,
151
- prismaImportStatement,
152
- }),
153
- options,
154
- model,
155
- operation: 'Aggregate',
156
- })
157
-
158
- await writeFileSafely({
159
- content: generateCountFunction({
160
- model,
161
- prismaImportStatement,
162
- }),
163
- options,
164
- model,
165
- operation: 'Count',
166
- })
167
-
168
- await writeFileSafely({
169
- content: generateGroupByFunction({
170
- model,
171
- prismaImportStatement,
172
- }),
173
- options,
174
- model,
175
- operation: 'GroupBy',
176
- })
40
+ operation: cfg.operation,
41
+ })
42
+ }
177
43
 
178
44
  await writeFileSafely({
179
45
  content: generateRouterFunction({ model }),
@@ -185,4 +51,4 @@ generatorHandler({
185
51
 
186
52
  await copyFiles(options)
187
53
  },
188
- })
54
+ })