prisma-effect-kysely 1.14.0 → 2.0.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/CHANGELOG.md +42 -4
- package/README.md +48 -6
- package/dist/effect/type.js +1 -1
- package/dist/effect/type.js.map +1 -1
- package/dist/generator/index.d.ts.map +1 -1
- package/dist/generator/index.js +2 -1
- package/dist/generator/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,16 +1,54 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 2.0.0
|
|
4
4
|
|
|
5
|
-
###
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- BREAKING: Switch from Schema.UndefinedOr to Schema.NullOr for nullable fields
|
|
8
|
+
|
|
9
|
+
This change aligns the generated schemas with SQL semantics where `null` represents missing values.
|
|
10
|
+
|
|
11
|
+
**Before:**
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
optionalField: Schema.UndefinedOr(Schema.String); // string | undefined
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**After:**
|
|
6
18
|
|
|
7
|
-
|
|
19
|
+
```typescript
|
|
20
|
+
optionalField: Schema.NullOr(Schema.String); // string | null
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Migration:**
|
|
24
|
+
1. Regenerate schemas with `prisma generate`
|
|
25
|
+
2. Update code that uses `undefined` for optional fields to use `null` instead
|
|
26
|
+
3. Nullable fields must now be explicitly passed (with `null` or a value)
|
|
27
|
+
|
|
28
|
+
**Rationale:**
|
|
29
|
+
- SQL databases use `null` for missing values, not `undefined`
|
|
30
|
+
- Aligns with Prisma Client which uses `T | null`
|
|
31
|
+
- `null` is preserved in JSON serialization (unlike `undefined`)
|
|
32
|
+
- Provides semantic clarity: `null` = "explicitly no value"
|
|
8
33
|
|
|
9
34
|
## 1.14.1
|
|
10
35
|
|
|
11
36
|
### Patch Changes
|
|
12
37
|
|
|
13
|
-
- [`
|
|
38
|
+
- [`11d09a7`](https://github.com/samuelho-dev/prisma-effect-kysely/commit/11d09a71ed233549a3bd591793b3f423cad71950) Thanks [@samuelho-dev](https://github.com/samuelho-dev)! - Fix ESM/CJS interop for Prisma 7.x compatibility
|
|
39
|
+
|
|
40
|
+
Node.js ESM cannot use named imports from CJS modules. Changed `@prisma/generator-helper` import to use default import pattern:
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
// Before (broken in ESM)
|
|
44
|
+
import { generatorHandler } from '@prisma/generator-helper';
|
|
45
|
+
|
|
46
|
+
// After (works)
|
|
47
|
+
import pkg from '@prisma/generator-helper';
|
|
48
|
+
const { generatorHandler } = pkg;
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Added ESM compatibility tests to prevent future regressions.
|
|
14
52
|
|
|
15
53
|
## 1.14.0
|
|
16
54
|
|
package/README.md
CHANGED
|
@@ -113,22 +113,64 @@ model User {
|
|
|
113
113
|
|
|
114
114
|
```bash
|
|
115
115
|
# Install dependencies
|
|
116
|
-
|
|
116
|
+
pnpm install
|
|
117
117
|
|
|
118
118
|
# Run tests
|
|
119
|
-
|
|
119
|
+
pnpm test
|
|
120
120
|
|
|
121
121
|
# Run tests in watch mode
|
|
122
|
-
|
|
122
|
+
pnpm run test:watch
|
|
123
123
|
|
|
124
124
|
# Run tests with coverage
|
|
125
|
-
|
|
125
|
+
pnpm run test:coverage
|
|
126
126
|
|
|
127
127
|
# Type check
|
|
128
|
-
|
|
128
|
+
pnpm run typecheck
|
|
129
129
|
|
|
130
130
|
# Build
|
|
131
|
-
|
|
131
|
+
pnpm run build
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Release Process
|
|
135
|
+
|
|
136
|
+
This project uses [Changesets](https://github.com/changesets/changesets) for automated versioning and publishing:
|
|
137
|
+
|
|
138
|
+
### Creating a Release
|
|
139
|
+
|
|
140
|
+
1. **Add a changeset** for your changes:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
pnpm changeset
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Follow the prompts to describe your changes (patch/minor/major).
|
|
147
|
+
|
|
148
|
+
2. **Commit the changeset**:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
git add .changeset/
|
|
152
|
+
git commit -m "docs: add changeset for [feature/fix]"
|
|
153
|
+
git push
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
3. **Automated Release PR**: The CI will automatically:
|
|
157
|
+
- Create or update a "Version Packages" PR
|
|
158
|
+
- Update `package.json` version
|
|
159
|
+
- Update `CHANGELOG.md`
|
|
160
|
+
|
|
161
|
+
4. **Publish**: When you merge the "Version Packages" PR:
|
|
162
|
+
- CI automatically publishes to npm using Bun
|
|
163
|
+
- Creates a git tag (e.g., `v1.15.0`)
|
|
164
|
+
- Creates a GitHub release with auto-generated notes
|
|
165
|
+
|
|
166
|
+
### Manual Publishing (if needed)
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
# Build and run all checks
|
|
170
|
+
pnpm run prepublishOnly
|
|
171
|
+
|
|
172
|
+
# Publish with Bun (recommended)
|
|
173
|
+
bun publish --access public
|
|
132
174
|
```
|
|
133
175
|
|
|
134
176
|
## Releasing (CI/CD)
|
package/dist/effect/type.js
CHANGED
|
@@ -63,7 +63,7 @@ export function buildFieldType(field, dmmf) {
|
|
|
63
63
|
}
|
|
64
64
|
// Handle optional fields (only if NOT already has @default)
|
|
65
65
|
if (!(isRequiredField(field) || hasDefaultValue(field))) {
|
|
66
|
-
baseType = `Schema.
|
|
66
|
+
baseType = `Schema.NullOr(${baseType})`;
|
|
67
67
|
}
|
|
68
68
|
return baseType;
|
|
69
69
|
}
|
package/dist/effect/type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/effect/type.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;;;;GASG;AACH,MAAM,iBAAiB,GAAG;IACxB,MAAM,EAAE,eAAe;IACvB,GAAG,EAAE,eAAe;IACpB,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE,eAAe,EAAE,gBAAgB;IAC1C,OAAO,EAAE,gBAAgB;IACzB,QAAQ,EAAE,qBAAqB,EAAE,4CAA4C;IAC7E,IAAI,EAAE,gBAAgB,EAAE,oBAAoB;IAC5C,KAAK,EAAE,mBAAmB;CAClB,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAiB,EAAE,IAAmB;IACzE,+CAA+C;IAC/C,MAAM,YAAY,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACtD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,qDAAqD;IACrD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,8DAA8D;IAC9D,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAsC,CAAC,CAAC;IACnF,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,oCAAoC;IACpC,8DAA8D;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;IACxE,IAAI,OAAO,EAAE,CAAC;QACZ,gDAAgD;QAChD,2CAA2C;QAC3C,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,kCAAkC;IAClC,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAiB,EAAE,IAAmB;IACnE,IAAI,QAAQ,GAAG,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAEjD,gBAAgB;IAChB,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,QAAQ,GAAG,gBAAgB,QAAQ,GAAG,CAAC;IACzC,CAAC;IAED,4DAA4D;IAC5D,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACxD,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/effect/type.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;;;;GASG;AACH,MAAM,iBAAiB,GAAG;IACxB,MAAM,EAAE,eAAe;IACvB,GAAG,EAAE,eAAe;IACpB,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE,eAAe,EAAE,gBAAgB;IAC1C,OAAO,EAAE,gBAAgB;IACzB,QAAQ,EAAE,qBAAqB,EAAE,4CAA4C;IAC7E,IAAI,EAAE,gBAAgB,EAAE,oBAAoB;IAC5C,KAAK,EAAE,mBAAmB;CAClB,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAiB,EAAE,IAAmB;IACzE,+CAA+C;IAC/C,MAAM,YAAY,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACtD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,qDAAqD;IACrD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,8DAA8D;IAC9D,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAsC,CAAC,CAAC;IACnF,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,oCAAoC;IACpC,8DAA8D;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;IACxE,IAAI,OAAO,EAAE,CAAC;QACZ,gDAAgD;QAChD,2CAA2C;QAC3C,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,kCAAkC;IAClC,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAiB,EAAE,IAAmB;IACnE,IAAI,QAAQ,GAAG,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAEjD,gBAAgB;IAChB,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,QAAQ,GAAG,gBAAgB,QAAQ,GAAG,CAAC;IACzC,CAAC;IAED,4DAA4D;IAC5D,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACxD,QAAQ,GAAG,iBAAiB,QAAQ,GAAG,CAAC;IAC1C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":";AAYA,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,SAAS,MAUpB,CAAC"}
|
package/dist/generator/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import
|
|
3
|
+
import pkg from '@prisma/generator-helper';
|
|
4
4
|
import { GeneratorOrchestrator } from './orchestrator.js';
|
|
5
|
+
const { generatorHandler } = pkg;
|
|
5
6
|
const require = createRequire(import.meta.url);
|
|
6
7
|
const packageJson = require('../../package.json');
|
|
7
8
|
// Re-export kysely helpers for generated code
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,GAAG,MAAM,0BAA0B,CAAC;AAE3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,EAAE,gBAAgB,EAAE,GAAG,GAAG,CAAC;AAEjC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AAGzE,8CAA8C;AAC9C,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,sBAAsB,CAAC;AAE9B,MAAM,CAAC,MAAM,SAAS,GAAG,gBAAgB,CAAC;IACxC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QACjB,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,aAAa,EAAE,aAAa;QAC5B,UAAU,EAAE,gCAAgC;KAC7C,CAAC;IACF,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC5B,MAAM,YAAY,GAAG,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;CACF,CAAC,CAAC"}
|