@opensaas/stack-cli 0.23.0 → 0.25.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/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +33 -1
- package/dist/commands/generate.js.map +1 -1
- package/dist/generator/context.d.ts.map +1 -1
- package/dist/generator/context.js +9 -4
- package/dist/generator/context.js.map +1 -1
- package/dist/generator/extension.d.ts +11 -0
- package/dist/generator/extension.d.ts.map +1 -0
- package/dist/generator/extension.js +51 -0
- package/dist/generator/extension.js.map +1 -0
- package/dist/generator/index.d.ts +2 -0
- package/dist/generator/index.d.ts.map +1 -1
- package/dist/generator/index.js +1 -0
- package/dist/generator/index.js.map +1 -1
- package/dist/generator/lists.d.ts +3 -3
- package/dist/generator/lists.js +6 -6
- package/dist/generator/lists.js.map +1 -1
- package/dist/generator/node-build.d.ts +51 -0
- package/dist/generator/node-build.d.ts.map +1 -0
- package/dist/generator/node-build.js +258 -0
- package/dist/generator/node-build.js.map +1 -0
- package/dist/generator/prisma-extensions.d.ts.map +1 -1
- package/dist/generator/prisma-extensions.js +33 -3
- package/dist/generator/prisma-extensions.js.map +1 -1
- package/dist/generator/prisma.d.ts.map +1 -1
- package/dist/generator/prisma.js +15 -3
- package/dist/generator/prisma.js.map +1 -1
- package/dist/generator/types.d.ts.map +1 -1
- package/dist/generator/types.js +241 -26
- package/dist/generator/types.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import ts from 'typescript';
|
|
4
|
+
/**
|
|
5
|
+
* The **Node build** (ADR-0011): an opt-in, plain-Node-loadable form of the
|
|
6
|
+
* Generated bundle, compiled to `<opensaasDir>/dist/` alongside the default
|
|
7
|
+
* `.ts` bundler form (ADR-0008).
|
|
8
|
+
*
|
|
9
|
+
* Why this exists
|
|
10
|
+
* ---------------
|
|
11
|
+
* The default `.opensaas/` bundle ships as TypeScript with explicit `.ts`
|
|
12
|
+
* import extensions so the host's bundler traces and transpiles it. That form
|
|
13
|
+
* cannot execute under plain Node (`Cannot use import statement outside a
|
|
14
|
+
* module`, and `.ts` specifiers don't resolve). A live module that must run in
|
|
15
|
+
* BOTH a bundled and a bundler-less runtime — better-auth's Prisma adapter,
|
|
16
|
+
* imported by the Next server AND by a Playwright e2e helper / build-time
|
|
17
|
+
* script — therefore has no Node-loadable entry to point at. Setting
|
|
18
|
+
* `output: { buildTarget: 'node' }` emits one.
|
|
19
|
+
*
|
|
20
|
+
* What it emits
|
|
21
|
+
* -------------
|
|
22
|
+
* A compiled ESM build under `<opensaasDir>/dist/`:
|
|
23
|
+
* - `context.js` — the compiled entry (mirrors `<opensaasDir>/context.ts`)
|
|
24
|
+
* - `prisma-client/**` — the compiled Prisma client subtree
|
|
25
|
+
* - `opensaas.config.js` — the project config, compiled in as a sibling of
|
|
26
|
+
* `context.js` so the entry's config import resolves without reaching
|
|
27
|
+
* outside `dist/`
|
|
28
|
+
* - matching `.d.ts` declarations
|
|
29
|
+
* - `package.json` containing exactly `{"type":"module"}` so the emitted
|
|
30
|
+
* `.js` are unambiguous ESM regardless of the host package's `type`
|
|
31
|
+
*
|
|
32
|
+
* How the layout is achieved
|
|
33
|
+
* --------------------------
|
|
34
|
+
* The on-disk `context.ts`/`prisma-extensions.ts` import the project config via
|
|
35
|
+
* `../opensaas.config.ts` — one level ABOVE `<opensaasDir>`, outside the compile
|
|
36
|
+
* root. To keep the compiled entry at `<opensaasDir>/dist/context.js` (per
|
|
37
|
+
* ADR-0011) with a config import that resolves inside `dist/`, we stage the
|
|
38
|
+
* bundle plus a copy of `opensaas.config.ts` into a hidden source directory
|
|
39
|
+
* inside the bundle, rewrite the bundle's relative `opensaas.config` imports
|
|
40
|
+
* (of any `../` depth) to the sibling `./opensaas.config.ts`, and compile that
|
|
41
|
+
* staging root to
|
|
42
|
+
* `<opensaasDir>/dist/`. Staging inside the project (rather than a temp dir)
|
|
43
|
+
* keeps `node_modules` resolution intact so `@opensaas/*` and `@prisma/*`
|
|
44
|
+
* resolve during the type-check pass. The staging directory is removed after
|
|
45
|
+
* the emit.
|
|
46
|
+
*
|
|
47
|
+
* `rewriteRelativeImportExtensions` turns the bundle's `.ts`-extension imports
|
|
48
|
+
* into runnable `.js` specifiers; `skipLibCheck` + `noEmitOnError: false` keep
|
|
49
|
+
* third-party `.d.ts` noise (and the host's `@/*` path alias in the config,
|
|
50
|
+
* which is type-only and elided from JS) from blocking emit.
|
|
51
|
+
*/
|
|
52
|
+
/** Bundle files copied into the staging root before compilation. */
|
|
53
|
+
const STAGED_BUNDLE_FILES = [
|
|
54
|
+
'context.ts',
|
|
55
|
+
'types.ts',
|
|
56
|
+
'lists.ts',
|
|
57
|
+
'plugin-types.ts',
|
|
58
|
+
'prisma-extensions.ts',
|
|
59
|
+
];
|
|
60
|
+
/** The compiled Prisma client subtree, copied wholesale into the staging root. */
|
|
61
|
+
const PRISMA_CLIENT_DIR = 'prisma-client';
|
|
62
|
+
/** Name of the project config file copied into the staging root. */
|
|
63
|
+
const CONFIG_FILENAME = 'opensaas.config.ts';
|
|
64
|
+
/** Hidden staging directory created inside the bundle during compilation. */
|
|
65
|
+
const STAGING_DIRNAME = '.node-build';
|
|
66
|
+
/** Output directory name for the compiled Node build. */
|
|
67
|
+
const DIST_DIRNAME = 'dist';
|
|
68
|
+
/**
|
|
69
|
+
* Matches a relative config specifier of ANY depth — one-or-more `../` segments
|
|
70
|
+
* followed by `opensaas.config` (with or without a `.ts`/`.js` extension), in
|
|
71
|
+
* either quote style. The generator emits that specifier from a configurable
|
|
72
|
+
* source (`configImport ?? '../opensaas.config'` in `context.ts`/
|
|
73
|
+
* `prisma-extensions.ts`), so a non-default project layout (e.g. a deeper
|
|
74
|
+
* `../../opensaas.config.ts`) would otherwise make a literal-string rewrite
|
|
75
|
+
* silently no-op. Capture group 1 preserves the quote style.
|
|
76
|
+
*/
|
|
77
|
+
const CONFIG_IMPORT_RE = /(['"])(?:\.\.\/)+opensaas\.config(?:\.ts|\.js)?\1/g;
|
|
78
|
+
/**
|
|
79
|
+
* The sibling specifier the config import is rewritten to so the compiled entry
|
|
80
|
+
* imports the config from inside `dist/`. Mirrors the source `.ts` extension
|
|
81
|
+
* (TypeScript's `rewriteRelativeImportExtensions` turns it into `.js` on emit).
|
|
82
|
+
*/
|
|
83
|
+
const CONFIG_IMPORT_TO = './opensaas.config.ts';
|
|
84
|
+
/**
|
|
85
|
+
* Detects a relative config import that still escapes the staging/`dist` root
|
|
86
|
+
* after the rewrite — one-or-more `../` segments followed by `opensaas.config`.
|
|
87
|
+
* Non-global so it can be used with `String.prototype.match` to capture the
|
|
88
|
+
* offending specifier for the error message.
|
|
89
|
+
*/
|
|
90
|
+
const ESCAPING_CONFIG_IMPORT_RE = /(['"])(?:\.\.\/)+opensaas\.config(?:\.ts|\.js)?\1/;
|
|
91
|
+
/**
|
|
92
|
+
* Recursively copy a directory tree. Used to stage the `prisma-client/`
|
|
93
|
+
* subtree, which is many small files.
|
|
94
|
+
*/
|
|
95
|
+
function copyDir(src, dest) {
|
|
96
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
97
|
+
for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
|
|
98
|
+
const srcPath = path.join(src, entry.name);
|
|
99
|
+
const destPath = path.join(dest, entry.name);
|
|
100
|
+
if (entry.isDirectory()) {
|
|
101
|
+
copyDir(srcPath, destPath);
|
|
102
|
+
}
|
|
103
|
+
else if (entry.isFile()) {
|
|
104
|
+
fs.copyFileSync(srcPath, destPath);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Rewrite any relative `../`-rooted `opensaas.config` import (of any depth) in a
|
|
110
|
+
* source string to the sibling `./opensaas.config.ts`, preserving the original
|
|
111
|
+
* quote style, so the compiled output's config import resolves inside `dist/`.
|
|
112
|
+
* Exported for unit testing of the any-depth rewrite.
|
|
113
|
+
*/
|
|
114
|
+
export function rewriteConfigImport(source) {
|
|
115
|
+
return source.replace(CONFIG_IMPORT_RE, (_match, quote) => {
|
|
116
|
+
return `${quote}${CONFIG_IMPORT_TO}${quote}`;
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Return the first relative config import that still escapes the staging/`dist`
|
|
121
|
+
* root (one-or-more `../` segments before `opensaas.config`), or `undefined` if
|
|
122
|
+
* none remains. Exported so the silent-failure guard is unit-testable.
|
|
123
|
+
*/
|
|
124
|
+
export function findEscapingConfigImport(source) {
|
|
125
|
+
return source.match(ESCAPING_CONFIG_IMPORT_RE)?.[0];
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Copy a bundle source file into the staging root, rewriting the config import
|
|
129
|
+
* to the sibling `./opensaas.config.ts`.
|
|
130
|
+
*/
|
|
131
|
+
function stageBundleFile(src, dest) {
|
|
132
|
+
const source = fs.readFileSync(src, 'utf-8');
|
|
133
|
+
fs.writeFileSync(dest, rewriteConfigImport(source));
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* The compiler options for the Node build. ESM output (`esnext` + `bundler`)
|
|
137
|
+
* with the import-extension rewrite, declaration emit, and the lenient settings
|
|
138
|
+
* that keep third-party `.d.ts` noise from blocking the emit on an opt-in path.
|
|
139
|
+
*/
|
|
140
|
+
function nodeBuildCompilerOptions(rootDir, outDir) {
|
|
141
|
+
return {
|
|
142
|
+
// Rewrites the bundle's explicit `.ts`-extension imports (e.g.
|
|
143
|
+
// `./prisma-client/client.ts`) to runnable `.js` specifiers.
|
|
144
|
+
rewriteRelativeImportExtensions: true,
|
|
145
|
+
// The on-disk bundle imports `.ts` extensions; permit reading them.
|
|
146
|
+
allowImportingTsExtensions: true,
|
|
147
|
+
// Emit `.d.ts` so the Node build is a fully typed import target.
|
|
148
|
+
declaration: true,
|
|
149
|
+
// ESM output. `bundler` resolution permits the `.ts`-extension imports while
|
|
150
|
+
// `esnext` keeps `import`/`export` syntax (the `{"type":"module"}` marker
|
|
151
|
+
// written into `dist/` makes the emitted `.js` unambiguous ESM).
|
|
152
|
+
module: ts.ModuleKind.ESNext,
|
|
153
|
+
moduleResolution: ts.ModuleResolutionKind.Bundler,
|
|
154
|
+
target: ts.ScriptTarget.ES2022,
|
|
155
|
+
rootDir,
|
|
156
|
+
outDir,
|
|
157
|
+
// Third-party `.d.ts` (e.g. Prisma's) must not fail the type-check pass.
|
|
158
|
+
skipLibCheck: true,
|
|
159
|
+
// A production auth path must still emit even if a stray type error remains
|
|
160
|
+
// (the bundle itself type-checks clean; this guards against host-config
|
|
161
|
+
// noise like the `@/*` path alias, which is type-only and elided from JS).
|
|
162
|
+
noEmitOnError: false,
|
|
163
|
+
esModuleInterop: true,
|
|
164
|
+
forceConsistentCasingInFileNames: true,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Compile the Generated bundle to a plain-Node-loadable ESM build under
|
|
169
|
+
* `<opensaasDir>/dist/` (ADR-0011). Additive: the caller only invokes this when
|
|
170
|
+
* `output.buildTarget === 'node'`, and it never touches the default `.ts` form.
|
|
171
|
+
*
|
|
172
|
+
* Assumes the `.ts` bundle and the Prisma client subtree
|
|
173
|
+
* (`<opensaasDir>/prisma-client/**`) already exist on disk — i.e. it runs after
|
|
174
|
+
* the bundle is written and after `prisma generate`.
|
|
175
|
+
*/
|
|
176
|
+
export function buildNodeBundle(options) {
|
|
177
|
+
const { opensaasDir, configPath } = options;
|
|
178
|
+
const stagingDir = path.join(opensaasDir, STAGING_DIRNAME);
|
|
179
|
+
const distDir = path.join(opensaasDir, DIST_DIRNAME);
|
|
180
|
+
// Clean any prior staging/dist so re-runs are deterministic.
|
|
181
|
+
fs.rmSync(stagingDir, { recursive: true, force: true });
|
|
182
|
+
fs.rmSync(distDir, { recursive: true, force: true });
|
|
183
|
+
fs.mkdirSync(stagingDir, { recursive: true });
|
|
184
|
+
try {
|
|
185
|
+
// Stage the bundle source files, rewriting the config import to a sibling.
|
|
186
|
+
for (const file of STAGED_BUNDLE_FILES) {
|
|
187
|
+
const src = path.join(opensaasDir, file);
|
|
188
|
+
if (!fs.existsSync(src))
|
|
189
|
+
continue;
|
|
190
|
+
const dest = path.join(stagingDir, file);
|
|
191
|
+
stageBundleFile(src, dest);
|
|
192
|
+
// Silent-failure guard (`noEmitOnError: false` lets TS emit even when a
|
|
193
|
+
// config import escapes `dist/`): if a staged file STILL contains a
|
|
194
|
+
// `../`-rooted `opensaas.config` import after the rewrite, the compiled
|
|
195
|
+
// entry's config import would escape `dist/` and fail under plain Node
|
|
196
|
+
// with no error surfaced. Fail loudly instead of emitting a broken build.
|
|
197
|
+
const escaping = findEscapingConfigImport(fs.readFileSync(dest, 'utf-8'));
|
|
198
|
+
if (escaping) {
|
|
199
|
+
throw new Error(`Node build: staged bundle file "${file}" still imports the config ` +
|
|
200
|
+
`via a relative path that escapes dist/ (${escaping}). The config ` +
|
|
201
|
+
`import must be rewritten to a sibling of the entry. This is a ` +
|
|
202
|
+
`silent-failure guard — compiling it would emit a Node build whose ` +
|
|
203
|
+
`config import resolves outside dist/ and fails under plain Node.`);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// Stage the compiled Prisma client subtree as-is.
|
|
207
|
+
const prismaClientSrc = path.join(opensaasDir, PRISMA_CLIENT_DIR);
|
|
208
|
+
if (fs.existsSync(prismaClientSrc)) {
|
|
209
|
+
copyDir(prismaClientSrc, path.join(stagingDir, PRISMA_CLIENT_DIR));
|
|
210
|
+
}
|
|
211
|
+
// Stage the project config as a sibling of the entry.
|
|
212
|
+
fs.copyFileSync(configPath, path.join(stagingDir, CONFIG_FILENAME));
|
|
213
|
+
// Collect the staged `.ts` files as the program's root files.
|
|
214
|
+
const rootNames = collectTsFiles(stagingDir);
|
|
215
|
+
const compilerOptions = nodeBuildCompilerOptions(stagingDir, distDir);
|
|
216
|
+
const program = ts.createProgram({ rootNames, options: compilerOptions });
|
|
217
|
+
const emitResult = program.emit();
|
|
218
|
+
const diagnostics = ts.getPreEmitDiagnostics(program).concat(emitResult.diagnostics);
|
|
219
|
+
// Write the ESM marker so the emitted `.js` are unambiguous ESM.
|
|
220
|
+
fs.writeFileSync(path.join(distDir, 'package.json'), '{"type":"module"}\n');
|
|
221
|
+
return {
|
|
222
|
+
distDir,
|
|
223
|
+
entry: path.join(distDir, 'context.js'),
|
|
224
|
+
diagnostics,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
finally {
|
|
228
|
+
// Always remove the staging directory, even if the compile threw.
|
|
229
|
+
fs.rmSync(stagingDir, { recursive: true, force: true });
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/** Recursively collect every `.ts` file under a directory (skips `.d.ts`). */
|
|
233
|
+
function collectTsFiles(dir) {
|
|
234
|
+
const out = [];
|
|
235
|
+
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
236
|
+
const full = path.join(dir, entry.name);
|
|
237
|
+
if (entry.isDirectory()) {
|
|
238
|
+
out.push(...collectTsFiles(full));
|
|
239
|
+
}
|
|
240
|
+
else if (entry.isFile() && entry.name.endsWith('.ts') && !entry.name.endsWith('.d.ts')) {
|
|
241
|
+
out.push(full);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return out;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Format Node-build diagnostics into a short, human-readable list. The Node
|
|
248
|
+
* build is best-effort (`noEmitOnError: false`), so these are surfaced as a
|
|
249
|
+
* warning rather than a failure.
|
|
250
|
+
*/
|
|
251
|
+
export function formatNodeBuildDiagnostics(diagnostics) {
|
|
252
|
+
return ts.formatDiagnostics(diagnostics.filter((d) => d.category === ts.DiagnosticCategory.Error), {
|
|
253
|
+
getCanonicalFileName: (f) => f,
|
|
254
|
+
getCurrentDirectory: () => process.cwd(),
|
|
255
|
+
getNewLine: () => '\n',
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=node-build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-build.js","sourceRoot":"","sources":["../../src/generator/node-build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-extensions.d.ts","sourceRoot":"","sources":["../../src/generator/prisma-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"prisma-extensions.d.ts","sourceRoot":"","sources":["../../src/generator/prisma-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,sBAAsB,CAAA;AAKvE;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CA0K9F;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,GACpB,IAAI,CAUN"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
2
|
import * as path from 'path';
|
|
3
|
+
import { withTsExtension } from './extension.js';
|
|
3
4
|
/**
|
|
4
5
|
* Generate Prisma result extensions configuration
|
|
5
6
|
* This creates a Prisma client extension that calls field resolveOutput hooks
|
|
@@ -10,7 +11,10 @@ export function generatePrismaExtensions(config, configImport) {
|
|
|
10
11
|
// the `.opensaas` bundle. Defaults to the legacy `../opensaas.config`; the
|
|
11
12
|
// output-path resolver supplies a recomputed value when the bundle is
|
|
12
13
|
// relocated via the `output` config block.
|
|
13
|
-
|
|
14
|
+
//
|
|
15
|
+
// The explicit `.ts` extension (see ./extension.ts) keeps the bundle loadable
|
|
16
|
+
// by the host bundler / plain Node without an `extensionAlias`.
|
|
17
|
+
const configImportPath = withTsExtension(configImport ?? '../opensaas.config');
|
|
14
18
|
// Add header comment
|
|
15
19
|
lines.push('/**');
|
|
16
20
|
lines.push(' * Generated Prisma result extensions from OpenSaas configuration');
|
|
@@ -18,7 +22,7 @@ export function generatePrismaExtensions(config, configImport) {
|
|
|
18
22
|
lines.push(' */');
|
|
19
23
|
lines.push('');
|
|
20
24
|
// Add imports
|
|
21
|
-
lines.push("import { Prisma } from './prisma-client/client'");
|
|
25
|
+
lines.push("import { Prisma } from './prisma-client/client.ts'");
|
|
22
26
|
lines.push(`import configOrPromise from '${configImportPath}'`);
|
|
23
27
|
lines.push('');
|
|
24
28
|
// Resolve config synchronously if possible (will be resolved by context.ts anyway)
|
|
@@ -65,16 +69,42 @@ export function generatePrismaExtensions(config, configImport) {
|
|
|
65
69
|
lines.push(` ${modelKey}: {`);
|
|
66
70
|
for (const [fieldName, fieldConfig] of fieldsWithExtensions) {
|
|
67
71
|
const isVirtual = fieldConfig.virtual;
|
|
72
|
+
// Multi-column storage fields (e.g. image()/file() in keystone-columns
|
|
73
|
+
// mode) spread across several part columns (image_url, image_pathname, …)
|
|
74
|
+
// and have no single logical scalar on the model. Their logical value is
|
|
75
|
+
// re-assembled by core's read pipeline (assembleColumns), not by this
|
|
76
|
+
// result extension, so the compute here must not reference a scalar that
|
|
77
|
+
// doesn't exist. See #559.
|
|
78
|
+
const isMultiColumn = !isVirtual && typeof fieldConfig.getColumnNames === 'function';
|
|
68
79
|
lines.push(` ${fieldName}: {`);
|
|
69
80
|
if (isVirtual) {
|
|
70
81
|
// Virtual fields don't need database fields - they compute from the full item
|
|
71
82
|
lines.push(` needs: {},`);
|
|
72
83
|
}
|
|
84
|
+
else if (isMultiColumn && fieldConfig.getColumnNames) {
|
|
85
|
+
// Prisma types `needs` against the model's scalar fields. Referencing the
|
|
86
|
+
// logical field name here would type the literal `true` against `never`
|
|
87
|
+
// (no such scalar exists). Derive `needs` from the physical part columns
|
|
88
|
+
// instead. getColumnNames already returns the resolved/overridden names,
|
|
89
|
+
// so custom column maps Just Work. See #559.
|
|
90
|
+
const columnNames = fieldConfig.getColumnNames(fieldName);
|
|
91
|
+
const needsEntries = columnNames.map((column) => `${column}: true`).join(', ');
|
|
92
|
+
lines.push(` needs: { ${needsEntries} },`);
|
|
93
|
+
}
|
|
73
94
|
else {
|
|
74
|
-
// Non-virtual fields need their database value
|
|
95
|
+
// Non-virtual single-column fields need their database value
|
|
75
96
|
lines.push(` needs: { ${fieldName}: true },`);
|
|
76
97
|
}
|
|
77
98
|
lines.push(` compute: (${modelKey}) => {`);
|
|
99
|
+
if (isMultiColumn) {
|
|
100
|
+
// The logical value lives across part columns and is assembled elsewhere;
|
|
101
|
+
// there is no scalar to read or transform here. Returning undefined keeps
|
|
102
|
+
// the assembled value (re-added via TransformedFields) authoritative.
|
|
103
|
+
lines.push(` return undefined`);
|
|
104
|
+
lines.push(` },`);
|
|
105
|
+
lines.push(` },`);
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
78
108
|
if (!isVirtual) {
|
|
79
109
|
// For non-virtual fields, get the database value and check nullability
|
|
80
110
|
lines.push(` const value = ${modelKey}.${fieldName}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-extensions.js","sourceRoot":"","sources":["../../src/generator/prisma-extensions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"prisma-extensions.js","sourceRoot":"","sources":["../../src/generator/prisma-extensions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../src/generator/prisma.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAe,MAAM,sBAAsB,CAAA;AACnG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAK3D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAGnC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,EAChC,QAAQ,EAAE,cAAc,GACvB;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAkB5C;AA0CD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../src/generator/prisma.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAe,MAAM,sBAAsB,CAAA;AACnG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAK3D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAGnC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,EAChC,QAAQ,EAAE,cAAc,GACvB;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAkB5C;AA0CD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,CAkRhG;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,EAClB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,IAAI,CAUN"}
|
package/dist/generator/prisma.js
CHANGED
|
@@ -79,12 +79,24 @@ export function generatePrismaSchema(config, prismaClientOutput) {
|
|
|
79
79
|
// array on the datasource. Each model then carries a `@@schema(...)`.
|
|
80
80
|
const schemas = config.db.schemas;
|
|
81
81
|
const multiSchema = Array.isArray(schemas) && schemas.length > 0;
|
|
82
|
+
// Prisma generator options for the `.opensaas/prisma-client` subtree. By
|
|
83
|
+
// default we emit `importFileExtension = "ts"` and `moduleFormat = "esm"` so
|
|
84
|
+
// the generated client uses explicit `.ts` import extensions — matching the
|
|
85
|
+
// rest of the `.opensaas` bundle (ADR-0008) and keeping the whole import graph
|
|
86
|
+
// statically resolvable by a bundler. A project can override either value via
|
|
87
|
+
// `db.prismaGeneratorOptions`; any supplied value wins, omitted keys fall back
|
|
88
|
+
// to the `ts`/`esm` defaults.
|
|
89
|
+
const prismaGeneratorOptions = config.db.prismaGeneratorOptions;
|
|
90
|
+
const importFileExtension = prismaGeneratorOptions?.importFileExtension ?? 'ts';
|
|
91
|
+
const moduleFormat = prismaGeneratorOptions?.moduleFormat ?? 'esm';
|
|
82
92
|
// Generator and datasource
|
|
83
93
|
lines.push('generator client {');
|
|
84
|
-
lines.push(' provider
|
|
85
|
-
lines.push(` output
|
|
94
|
+
lines.push(' provider = "prisma-client"');
|
|
95
|
+
lines.push(` output = "${clientOutput}"`);
|
|
96
|
+
lines.push(` importFileExtension = "${importFileExtension}"`);
|
|
97
|
+
lines.push(` moduleFormat = "${moduleFormat}"`);
|
|
86
98
|
if (multiSchema) {
|
|
87
|
-
lines.push(' previewFeatures
|
|
99
|
+
lines.push(' previewFeatures = ["multiSchema"]');
|
|
88
100
|
}
|
|
89
101
|
lines.push('}');
|
|
90
102
|
lines.push('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../src/generator/prisma.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB;AACnC,wFAAwF;AACxF,oFAAoF;AACpF,UAAgC,EAChC,QAAwB;IAExB,oFAAoF;IACpF,4BAA4B;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,EAAE,UAAU,IAAI,QAAQ,CAAC,UAAU,IAAI,KAAK,CAAA;IAEzE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;IAC/C,CAAC;IAED,8EAA8E;IAC9E,wCAAwC;IACxC,MAAM,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAC9F,MAAM,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAE9F,OAAO;QACL,SAAS,EAAE,CAAC,iBAAiB;QAC7B,SAAS,EAAE,CAAC,iBAAiB;KAC9B,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,SAAiB,EACjB,KAAkB,EAClB,QAAiB,EACjB,QAAiB,EACjB,cAAwB;IAExB,qDAAqD;IACrD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAA;QACjF,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC;IAED,gDAAgD;IAChD,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,CAAC,IAAI,2CAA2C,CAAC,CAAA;AACvF,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CACxB,SAAiB,EACjB,KAAkB,EAClB,QAAiB,EACjB,QAAiB,EACjB,cAAwB;IAExB,qDAAqD;IACrD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAA;QACjF,OAAO,MAAM,CAAC,SAAS,IAAI,EAAE,CAAA;IAC/B,CAAC;IAED,gDAAgD;IAChD,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAsB,EAAE,kBAA2B;IACtF,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,WAAW,CAAA;IACvD,MAAM,YAAY,GAAG,kBAAkB,IAAI,MAAM,YAAY,gBAAgB,CAAA;IAC7E,2EAA2E;IAC3E,wEAAwE;IACxE,oEAAoE;IACpE,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC,cAAc,IAAI,KAAK,CAAA;IAExD,4EAA4E;IAC5E,4EAA4E;IAC5E,sEAAsE;IACtE,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,OAAO,CAAA;IACjC,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;IAEhE,2BAA2B;IAC3B,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAChC,KAAK,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../src/generator/prisma.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/generator/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2C,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/generator/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2C,MAAM,sBAAsB,CAAA;AA+sCnG;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA+G5D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAU3E"}
|