prisma-generator-express 1.30.0 → 1.31.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.
@@ -47,16 +47,17 @@ const TARGET_FILES = {
47
47
  fastify: ['routeConfig.ts'],
48
48
  };
49
49
  function resolveTemplateDir(subpath) {
50
- const fromSibling = path.join(__dirname, '..', subpath);
51
- if (fs.existsSync(fromSibling))
52
- return fromSibling;
53
50
  const fromSrc = path.join(__dirname, '..', '..', 'src', subpath);
54
51
  if (fs.existsSync(fromSrc))
55
52
  return fromSrc;
56
- throw new Error(`[prisma-generator-express] Template directory "${subpath}" not found.\n` +
53
+ const fromDist = path.join(__dirname, '..', subpath);
54
+ if (fs.existsSync(fromDist))
55
+ return fromDist;
56
+ throw new Error(`Template directory "${subpath}" not found.\n` +
57
57
  ` Searched:\n` +
58
- ` ${fromSibling}\n` +
59
58
  ` ${fromSrc}\n` +
59
+ ` ${fromDist}\n` +
60
+ ` __dirname: ${__dirname}\n` +
60
61
  ` Ensure template files are included in the published package.`);
61
62
  }
62
63
  function getTargetSourceDir(copyBase, target) {
@@ -64,24 +65,22 @@ function getTargetSourceDir(copyBase, target) {
64
65
  return copyBase;
65
66
  const targetDir = path.join(copyBase, target);
66
67
  if (!fs.existsSync(targetDir)) {
67
- throw new Error(`[prisma-generator-express] Target template directory not found: ${targetDir}\n` +
68
- ` Expected directory for target "${target}" at: ${targetDir}`);
68
+ throw new Error(`Target template directory not found: ${targetDir}\n` +
69
+ ` Expected directory for target "${target}".`);
69
70
  }
70
71
  return targetDir;
71
72
  }
72
73
  function escapeRegex(str) {
73
74
  return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
74
75
  }
75
- async function copyFile(srcDir, destDir, filename, options) {
76
+ function copyFileSync(srcDir, destDir, filename, options) {
76
77
  const srcPath = path.join(srcDir, filename);
77
78
  const destPath = path.join(destDir, filename);
78
79
  if (!fs.existsSync(srcPath)) {
79
80
  if (options?.required) {
80
- console.error(`[prisma-generator-express] ✗ Required source file not found: ${srcPath}`);
81
- return false;
81
+ return `Required file not found: ${srcPath}`;
82
82
  }
83
- console.warn(`[prisma-generator-express] ⚠️ Source file not found: ${srcPath}`);
84
- return true;
83
+ return null;
85
84
  }
86
85
  const destDirPath = path.dirname(destPath);
87
86
  if (!fs.existsSync(destDirPath)) {
@@ -103,45 +102,49 @@ async function copyFile(srcDir, destDir, filename, options) {
103
102
  content = header + content;
104
103
  }
105
104
  fs.writeFileSync(destPath, content);
106
- console.log(` ✓ Copied: ${filename}`);
107
- return true;
105
+ return null;
108
106
  }
109
107
  async function copyFiles(options, target) {
110
108
  const outputPath = options.generator.output?.value;
111
109
  if (!outputPath)
112
110
  return;
113
111
  const copyBase = resolveTemplateDir('copy');
114
- let allCopied = true;
112
+ const errors = [];
115
113
  console.log(` Copying utility files to: ${outputPath} (target: ${target})`);
116
114
  for (const file of SHARED_FILES) {
117
- const ok = await copyFile(copyBase, outputPath, file, { required: true });
118
- if (!ok)
119
- allCopied = false;
115
+ const err = copyFileSync(copyBase, outputPath, file, { required: true });
116
+ if (err)
117
+ errors.push(err);
118
+ }
119
+ let targetSrcDir;
120
+ try {
121
+ targetSrcDir = getTargetSourceDir(copyBase, target);
122
+ }
123
+ catch (e) {
124
+ throw new Error(e.message);
120
125
  }
121
- const targetSrcDir = getTargetSourceDir(copyBase, target);
122
126
  for (const file of TARGET_FILES[target]) {
123
- const ok = await copyFile(targetSrcDir, outputPath, file, {
124
- required: true,
125
- });
126
- if (!ok)
127
- allCopied = false;
127
+ const err = copyFileSync(targetSrcDir, outputPath, file, { required: true });
128
+ if (err)
129
+ errors.push(err);
128
130
  }
129
131
  const clientDir = path.join(outputPath, 'client');
130
132
  if (!fs.existsSync(clientDir)) {
131
133
  fs.mkdirSync(clientDir, { recursive: true });
132
134
  }
133
135
  const clientSrcDir = resolveTemplateDir('client');
134
- const clientOk = await copyFile(clientSrcDir, clientDir, 'encodeQueryParams.ts', {
136
+ const clientErr = copyFileSync(clientSrcDir, clientDir, 'encodeQueryParams.ts', {
135
137
  required: true,
136
138
  importRewrites: [{ from: '../copy/misc.js', to: '../misc.js' }],
137
139
  });
138
- if (!clientOk)
139
- allCopied = false;
140
- if (allCopied) {
141
- console.log(` Utility files copied successfully`);
142
- }
143
- else {
144
- throw new Error('[prisma-generator-express] One or more required utility files could not be copied. Generation aborted.');
140
+ if (clientErr)
141
+ errors.push(clientErr);
142
+ if (errors.length > 0) {
143
+ throw new Error(`Failed to copy ${errors.length} required file(s):\n` +
144
+ errors.map((e) => ` - ${e}`).join('\n') +
145
+ `\n copyBase: ${copyBase}` +
146
+ `\n __dirname: ${__dirname}`);
145
147
  }
148
+ console.log(` ✓ Utility files copied successfully`);
146
149
  }
147
150
  //# sourceMappingURL=copyFiles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"copyFiles.js","sourceRoot":"","sources":["../../src/utils/copyFiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copyFiles.js","sourceRoot":"","sources":["../../src/utils/copyFiles.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "prisma-generator-express",
3
3
  "description": "Prisma generator for Hono CRUD API with OpenAPI documentation",
4
- "version": "1.30.0",
4
+ "version": "1.31.0",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "license": "MIT",
@@ -16,17 +16,18 @@ const TARGET_FILES: Record<Target, string[]> = {
16
16
  }
17
17
 
18
18
  function resolveTemplateDir(subpath: string): string {
19
- const fromSibling = path.join(__dirname, '..', subpath)
20
- if (fs.existsSync(fromSibling)) return fromSibling
21
-
22
19
  const fromSrc = path.join(__dirname, '..', '..', 'src', subpath)
23
20
  if (fs.existsSync(fromSrc)) return fromSrc
24
21
 
22
+ const fromDist = path.join(__dirname, '..', subpath)
23
+ if (fs.existsSync(fromDist)) return fromDist
24
+
25
25
  throw new Error(
26
- `[prisma-generator-express] Template directory "${subpath}" not found.\n` +
26
+ `Template directory "${subpath}" not found.\n` +
27
27
  ` Searched:\n` +
28
- ` ${fromSibling}\n` +
29
28
  ` ${fromSrc}\n` +
29
+ ` ${fromDist}\n` +
30
+ ` __dirname: ${__dirname}\n` +
30
31
  ` Ensure template files are included in the published package.`,
31
32
  )
32
33
  }
@@ -36,8 +37,8 @@ function getTargetSourceDir(copyBase: string, target: Target): string {
36
37
  const targetDir = path.join(copyBase, target)
37
38
  if (!fs.existsSync(targetDir)) {
38
39
  throw new Error(
39
- `[prisma-generator-express] Target template directory not found: ${targetDir}\n` +
40
- ` Expected directory for target "${target}" at: ${targetDir}`,
40
+ `Target template directory not found: ${targetDir}\n` +
41
+ ` Expected directory for target "${target}".`,
41
42
  )
42
43
  }
43
44
  return targetDir
@@ -52,22 +53,20 @@ function escapeRegex(str: string): string {
52
53
  return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
53
54
  }
54
55
 
55
- async function copyFile(
56
+ function copyFileSync(
56
57
  srcDir: string,
57
58
  destDir: string,
58
59
  filename: string,
59
60
  options?: CopyFileOptions,
60
- ): Promise<boolean> {
61
+ ): string | null {
61
62
  const srcPath = path.join(srcDir, filename)
62
63
  const destPath = path.join(destDir, filename)
63
64
 
64
65
  if (!fs.existsSync(srcPath)) {
65
66
  if (options?.required) {
66
- console.error(`[prisma-generator-express] ✗ Required source file not found: ${srcPath}`)
67
- return false
67
+ return `Required file not found: ${srcPath}`
68
68
  }
69
- console.warn(`[prisma-generator-express] ⚠️ Source file not found: ${srcPath}`)
70
- return true
69
+ return null
71
70
  }
72
71
 
73
72
  const destDirPath = path.dirname(destPath)
@@ -98,8 +97,7 @@ async function copyFile(
98
97
  }
99
98
 
100
99
  fs.writeFileSync(destPath, content)
101
- console.log(` ✓ Copied: ${filename}`)
102
- return true
100
+ return null
103
101
  }
104
102
 
105
103
  export async function copyFiles(
@@ -110,22 +108,25 @@ export async function copyFiles(
110
108
  if (!outputPath) return
111
109
 
112
110
  const copyBase = resolveTemplateDir('copy')
113
-
114
- let allCopied = true
111
+ const errors: string[] = []
115
112
 
116
113
  console.log(` Copying utility files to: ${outputPath} (target: ${target})`)
117
114
 
118
115
  for (const file of SHARED_FILES) {
119
- const ok = await copyFile(copyBase, outputPath, file, { required: true })
120
- if (!ok) allCopied = false
116
+ const err = copyFileSync(copyBase, outputPath, file, { required: true })
117
+ if (err) errors.push(err)
118
+ }
119
+
120
+ let targetSrcDir: string
121
+ try {
122
+ targetSrcDir = getTargetSourceDir(copyBase, target)
123
+ } catch (e: any) {
124
+ throw new Error(e.message)
121
125
  }
122
126
 
123
- const targetSrcDir = getTargetSourceDir(copyBase, target)
124
127
  for (const file of TARGET_FILES[target]) {
125
- const ok = await copyFile(targetSrcDir, outputPath, file, {
126
- required: true,
127
- })
128
- if (!ok) allCopied = false
128
+ const err = copyFileSync(targetSrcDir, outputPath, file, { required: true })
129
+ if (err) errors.push(err)
129
130
  }
130
131
 
131
132
  const clientDir = path.join(outputPath, 'client')
@@ -134,7 +135,7 @@ export async function copyFiles(
134
135
  }
135
136
 
136
137
  const clientSrcDir = resolveTemplateDir('client')
137
- const clientOk = await copyFile(
138
+ const clientErr = copyFileSync(
138
139
  clientSrcDir,
139
140
  clientDir,
140
141
  'encodeQueryParams.ts',
@@ -143,13 +144,16 @@ export async function copyFiles(
143
144
  importRewrites: [{ from: '../copy/misc.js', to: '../misc.js' }],
144
145
  },
145
146
  )
146
- if (!clientOk) allCopied = false
147
+ if (clientErr) errors.push(clientErr)
147
148
 
148
- if (allCopied) {
149
- console.log(` ✓ Utility files copied successfully`)
150
- } else {
149
+ if (errors.length > 0) {
151
150
  throw new Error(
152
- '[prisma-generator-express] One or more required utility files could not be copied. Generation aborted.',
151
+ `Failed to copy ${errors.length} required file(s):\n` +
152
+ errors.map((e) => ` - ${e}`).join('\n') +
153
+ `\n copyBase: ${copyBase}` +
154
+ `\n __dirname: ${__dirname}`,
153
155
  )
154
156
  }
157
+
158
+ console.log(` ✓ Utility files copied successfully`)
155
159
  }