@nestledjs/api 2.6.1 → 2.8.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestledjs/api",
3
- "version": "2.6.1",
3
+ "version": "2.8.0",
4
4
  "generators": "./generators.json",
5
5
  "type": "commonjs",
6
6
  "main": "./src/index.js",
@@ -1,3 +1,4 @@
1
+ import 'dotenv/config' // Load environment variables before anything else
1
2
 
2
3
  import { Logger } from '@nestjs/common'
3
4
  import { NestFactory } from '@nestjs/core'
@@ -29,27 +29,27 @@ module.exports = {
29
29
  ],
30
30
  },
31
31
  externals: [
32
+ // Custom externals function to handle Prisma npm packages
33
+ // IMPORTANT: This must come before nodeExternals to catch Prisma packages first
34
+ function ({ request }, callback) {
35
+ // Externalize actual Prisma npm packages (required for native binaries)
36
+ // But NOT @{npmScope}/api/prisma which is a local workspace module
37
+ if (request && (
38
+ request.includes('@prisma/client') ||
39
+ request.includes('.prisma/client') ||
40
+ request.includes('@prisma/adapter-pg') ||
41
+ request.includes('@prisma/internals') ||
42
+ request.includes('@prisma/extension-optimize')
43
+ )) {
44
+ return callback(null, `commonjs ${request}`)
45
+ }
46
+ callback()
47
+ },
32
48
  nodeExternals({
33
49
  allowlist: [
34
- /^@<%= npmScope %>\/api/, // allow your own libs
50
+ // Allow all @{npmScope}/api libs to be bundled (including api/prisma)
51
+ /^@<%= npmScope %>\/api/,
35
52
  ],
36
53
  }),
37
- // Externalize Prisma packages for v7 compatibility
38
- function ({ request }, callback) {
39
- if (request && request.includes('@prisma/client')) {
40
- return callback(null, 'commonjs ' + request)
41
- }
42
- if (request && request.includes('.prisma/client')) {
43
- return callback(null, 'commonjs ' + request)
44
- }
45
- // Externalize Prisma adapter for v7 compatibility
46
- if (request && (request === '@prisma/adapter-pg' || request.startsWith('@prisma/adapter-pg/'))) {
47
- return callback(null, 'commonjs ' + request)
48
- }
49
- if (request && request === '@<%= npmScope %>/api/prisma') {
50
- return callback(null, 'commonjs ' + request)
51
- }
52
- callback()
53
- }
54
54
  ]
55
55
  };
@@ -4,14 +4,25 @@ import { CorePagingInput } from './dto/core-paging.input'
4
4
  import { PrismaPg } from '@prisma/adapter-pg'
5
5
 
6
6
  function createAdapter() {
7
- const baseUrl = process.env['DATABASE_URL'] || ''
8
- const separator = baseUrl.includes('?') ? '&' : '?'
7
+ const connectionString = process.env['DATABASE_URL'] || ''
8
+
9
+ // Auto-detect SSL for cloud databases (Heroku, Railway, AWS RDS)
10
+ const requireSsl =
11
+ connectionString.includes('amazonaws.com') ||
12
+ connectionString.includes('.railway.app') ||
13
+ connectionString.includes('heroku') ||
14
+ process.env['DATABASE_SSL'] === 'true'
15
+
9
16
  const usePgBouncer = process.env['PGBOUNCER_ENABLED'] === 'true'
10
- const connectionParams = usePgBouncer
11
- ? 'pgbouncer=true&connection_limit=5&pool_timeout=10'
12
- : 'connection_limit=30'
13
- const connectionString = `${baseUrl}${separator}${connectionParams}`
14
- return new PrismaPg({ connectionString })
17
+
18
+ // Pass PoolConfig to PrismaPg - it manages its own Pool internally
19
+ // This avoids connection management conflicts that can cause ECONNREFUSED errors
20
+ return new PrismaPg({
21
+ connectionString,
22
+ ssl: requireSsl ? { rejectUnauthorized: false } : undefined,
23
+ max: usePgBouncer ? 5 : 30,
24
+ idleTimeoutMillis: usePgBouncer ? 10000 : 30000,
25
+ })
15
26
  }
16
27
 
17
28
  @Injectable()
@@ -197,7 +197,11 @@ function generateModels(models: readonly any[], enums: readonly any[]): string {
197
197
  const usesBigInt = models.some(model =>
198
198
  model.fields.some((field: { type: string }) => field.type === 'BigInt'),
199
199
  )
200
- let output = `import { Field, ObjectType${usesFloat ? ', Float' : ''}, Int } from '@nestjs/graphql';\n`
200
+ // Check if any model field uses DateTime
201
+ const usesDateTime = models.some(model =>
202
+ model.fields.some((field: { type: string }) => field.type === 'DateTime'),
203
+ )
204
+ let output = `import { Field, ObjectType${usesFloat ? ', Float' : ''}${usesDateTime ? ', GraphQLISODateTime' : ''}, Int } from '@nestjs/graphql';\n`
201
205
  output += `import { GraphQLJSONObject } from 'graphql-type-json';\n`
202
206
 
203
207
  // Check if any model field uses Decimal
@@ -281,7 +285,7 @@ function generateModels(models: readonly any[], enums: readonly any[]): string {
281
285
  else if (originalType === 'Json') listItemGraphQLType = 'GraphQLJSONObject'
282
286
  else if (isEnum || isRelation)
283
287
  listItemGraphQLType = originalType // Assumes enum/type is registered with GraphQL
284
- else if (originalType === 'DateTime') listItemGraphQLType = 'Date'
288
+ else if (originalType === 'DateTime') listItemGraphQLType = 'GraphQLISODateTime'
285
289
  else if (originalType === 'Boolean') listItemGraphQLType = 'Boolean'
286
290
  else if (originalType.toLowerCase() === 'string' || originalType === 'ID') {
287
291
  listItemGraphQLType = 'String'
@@ -297,7 +301,7 @@ function generateModels(models: readonly any[], enums: readonly any[]): string {
297
301
  else if (originalType === 'BigInt') decoratorType = '() => GraphQLBigInt'
298
302
  else if (originalType === 'Json') decoratorType = '() => GraphQLJSONObject'
299
303
  else if (isEnum || isRelation) decoratorType = `() => ${originalType}`
300
- else if (originalType === 'DateTime') decoratorType = '() => Date'
304
+ else if (originalType === 'DateTime') decoratorType = '() => GraphQLISODateTime'
301
305
  else if (originalType === 'Boolean') decoratorType = '() => Boolean'
302
306
  else if (originalType.toLowerCase() === 'string' || originalType === 'ID')
303
307
  decoratorType = '() => String'
@@ -0,0 +1,13 @@
1
+ <claude-mem-context>
2
+ # Recent Activity
3
+
4
+ <!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
5
+
6
+ ### Feb 4, 2026
7
+
8
+ | ID | Time | T | Title | Read |
9
+ |----|------|---|-------|------|
10
+ | #150 | 3:20 PM | ⚖️ | Prisma v7 Migration Strategy for Nestled Generator Framework | ~584 |
11
+ | #108 | 2:41 PM | 🔵 | CRUD Generator Output File Patterns Identified | ~343 |
12
+ | #77 | 2:26 PM | 🔵 | CRUD Generator Uses Prisma Internals DMMF Parser | ~383 |
13
+ </claude-mem-context>
@@ -3,6 +3,7 @@
3
3
  let gqlImports = new Set(['Field', 'InputType'])
4
4
  let usesGraphQLJSON = false
5
5
  let usesGraphQLBigInt = false
6
+ let usesDateTime = false
6
7
  let usesInt = false
7
8
  let usesFloat = false
8
9
  let usesID = false
@@ -72,6 +73,7 @@ for (const model of models) {
72
73
  if (field.type === 'Float' || field.type === 'Decimal') usesFloat = true
73
74
  if (field.type === 'Json') usesGraphQLJSON = true
74
75
  if (field.type === 'BigInt') usesGraphQLBigInt = true
76
+ if (field.type === 'DateTime') usesDateTime = true
75
77
  if (field.type === 'ID') usesID = true
76
78
  if (field.kind === 'enum') {
77
79
  enumNames.add(field.type)
@@ -82,6 +84,7 @@ for (const model of models) {
82
84
  if (usesInt) gqlImports.add('Int')
83
85
  if (usesFloat) gqlImports.add('Float')
84
86
  if (usesID) gqlImports.add('ID')
87
+ if (usesDateTime) gqlImports.add('GraphQLISODateTime')
85
88
  usesPartialType = models.length > 0 // If we generate any Update input, we need PartialType
86
89
  %>
87
90
  import { <%= Array.from(gqlImports).join(', ') %> } from '@nestjs/graphql'
@@ -109,7 +112,7 @@ export class Create<%= model.modelName %>Input {
109
112
  else if (field.type === 'Float') { baseGqlType = 'Float'; tsType = 'number'; }
110
113
  else if (field.type === 'Decimal') { baseGqlType = 'Float'; tsType = 'number'; }
111
114
  else if (field.type === 'Boolean') { baseGqlType = 'Boolean'; tsType = 'boolean'; }
112
- else if (field.type === 'DateTime') { baseGqlType = 'Date'; tsType = 'Date'; }
115
+ else if (field.type === 'DateTime') { baseGqlType = 'GraphQLISODateTime'; tsType = 'Date'; }
113
116
  else if (field.type === 'Json') { baseGqlType = 'GraphQLJSON'; tsType = 'typeof GraphQLJSON'; }
114
117
  else if (field.type === 'ID') { baseGqlType = 'ID'; tsType = 'string'; }
115
118
  else if (field.kind === 'enum') {
@@ -153,7 +156,7 @@ export class Update<%= model.modelName %>Input {
153
156
  else if (field.type === 'Float') { baseGqlType = 'Float'; tsType = 'number'; }
154
157
  else if (field.type === 'Decimal') { baseGqlType = 'Float'; tsType = 'number'; }
155
158
  else if (field.type === 'Boolean') { baseGqlType = 'Boolean'; tsType = 'boolean'; }
156
- else if (field.type === 'DateTime') { baseGqlType = 'Date'; tsType = 'Date'; }
159
+ else if (field.type === 'DateTime') { baseGqlType = 'GraphQLISODateTime'; tsType = 'Date'; }
157
160
  else if (field.type === 'Json') { baseGqlType = 'GraphQLJSON'; tsType = 'typeof GraphQLJSON'; }
158
161
  else if (field.type === 'ID') { baseGqlType = 'ID'; tsType = 'string'; }
159
162
  else if (field.kind === 'enum') {
@@ -190,7 +193,7 @@ export class List<%= model.modelName %>Input extends CorePagingInput {
190
193
  else if (field.type === 'Float') { baseGqlType = 'Float'; tsType = 'number'; }
191
194
  else if (field.type === 'Decimal') { baseGqlType = 'Float'; tsType = 'number'; }
192
195
  else if (field.type === 'Boolean') { baseGqlType = 'Boolean'; tsType = 'boolean'; }
193
- else if (field.type === 'DateTime') { baseGqlType = 'Date'; tsType = 'Date'; }
196
+ else if (field.type === 'DateTime') { baseGqlType = 'GraphQLISODateTime'; tsType = 'Date'; }
194
197
  else if (field.type === 'Json') { baseGqlType = 'GraphQLJSON'; tsType = 'typeof GraphQLJSON'; }
195
198
  else if (field.type === 'ID') { baseGqlType = 'ID'; tsType = 'string'; }
196
199
  else if (field.kind === 'enum') {
@@ -0,0 +1,13 @@
1
+ <claude-mem-context>
2
+ # Recent Activity
3
+
4
+ <!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
5
+
6
+ ### Feb 4, 2026
7
+
8
+ | ID | Time | T | Title | Read |
9
+ |----|------|---|-------|------|
10
+ | #150 | 3:20 PM | ⚖️ | Prisma v7 Migration Strategy for Nestled Generator Framework | ~584 |
11
+ | #110 | 2:41 PM | 🔵 | DB-Update Workflow Command Chain | ~350 |
12
+ | #78 | 2:26 PM | 🔵 | Prisma Generator Creates Configuration and Scripts | ~384 |
13
+ </claude-mem-context>
@@ -0,0 +1,12 @@
1
+ <claude-mem-context>
2
+ # Recent Activity
3
+
4
+ <!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
5
+
6
+ ### Feb 4, 2026
7
+
8
+ | ID | Time | T | Title | Read |
9
+ |----|------|---|-------|------|
10
+ | #150 | 3:20 PM | ⚖️ | Prisma v7 Migration Strategy for Nestled Generator Framework | ~584 |
11
+ | #91 | 2:34 PM | 🔵 | Prisma Config Template Already V7-Compatible | ~331 |
12
+ </claude-mem-context>
@@ -0,0 +1,12 @@
1
+ <claude-mem-context>
2
+ # Recent Activity
3
+
4
+ <!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
5
+
6
+ ### Feb 4, 2026
7
+
8
+ | ID | Time | T | Title | Read |
9
+ |----|------|---|-------|------|
10
+ | #150 | 3:20 PM | ⚖️ | Prisma v7 Migration Strategy for Nestled Generator Framework | ~584 |
11
+ | #92 | 2:34 PM | 🔵 | Schema Template Requires V7 Migration Updates | ~392 |
12
+ </claude-mem-context>
@@ -0,0 +1,13 @@
1
+ <claude-mem-context>
2
+ # Recent Activity
3
+
4
+ <!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
5
+
6
+ ### Feb 4, 2026
7
+
8
+ | ID | Time | T | Title | Read |
9
+ |----|------|---|-------|------|
10
+ | #208 | 4:17 PM | 🔴 | Seed Script Template Updated with Prisma v7 Adapter Pattern | ~384 |
11
+ | #197 | 3:57 PM | ✅ | Seed Template Updated for Prisma v7 Client Import Path | ~336 |
12
+ | #171 | 3:26 PM | 🔵 | Seed Script Template Uses Direct PrismaClient Instantiation | ~331 |
13
+ </claude-mem-context>
@@ -5,7 +5,23 @@ import { countries } from './seed-data/iso-3166-countries'
5
5
  import { seedUsers } from './seed-data/seed-users'
6
6
  import { hashSync } from 'bcryptjs'
7
7
 
8
- const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL! })
8
+ function createAdapter() {
9
+ const connectionString = process.env.DATABASE_URL || ''
10
+
11
+ // Auto-detect SSL for cloud databases (Heroku, Railway, AWS RDS)
12
+ const requireSsl =
13
+ connectionString.includes('amazonaws.com') ||
14
+ connectionString.includes('.railway.app') ||
15
+ connectionString.includes('heroku') ||
16
+ process.env.DATABASE_SSL === 'true'
17
+
18
+ return new PrismaPg({
19
+ connectionString,
20
+ ssl: requireSsl ? { rejectUnauthorized: false } : undefined,
21
+ })
22
+ }
23
+
24
+ const adapter = createAdapter()
9
25
  const prisma = new PrismaClient({ adapter })
10
26
 
11
27
  async function main() {
@@ -0,0 +1,12 @@
1
+ <claude-mem-context>
2
+ # Recent Activity
3
+
4
+ <!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
5
+
6
+ ### Feb 4, 2026
7
+
8
+ | ID | Time | T | Title | Read |
9
+ |----|------|---|-------|------|
10
+ | #150 | 3:20 PM | ⚖️ | Prisma v7 Migration Strategy for Nestled Generator Framework | ~584 |
11
+ | #102 | 2:37 PM | 🔵 | Setup Generator Dependencies for Prisma v6 | ~333 |
12
+ </claude-mem-context>
@@ -42,6 +42,7 @@ function apiSetupGenerator(tree) {
42
42
  'graphql-redis-subscriptions': '^2.7.0',
43
43
  ioredis: '^5.6.1',
44
44
  'cookie-parser': '^1.4.7',
45
+ dotenv: '^16.5.0',
45
46
  helmet: '^8.1.0',
46
47
  'passport-jwt': '^4.0.1',
47
48
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../generators/api/src/setup/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../generators/api/src/setup/generator.ts"],"names":[],"mappings":"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"}
@@ -2,3 +2,6 @@ export * from './lib/guards/gql-auth.guard'
2
2
  export * from './lib/guards/gql-auth-admin.guard'
3
3
  export * from './lib/decorators/ctx-user.decorator'
4
4
  export * from './lib/types/nest-context-type'
5
+
6
+ // Explicitly export types for webpack compatibility
7
+ export type { NestContextType } from './lib/types/nest-context-type'