@nestledjs/api 1.0.14 → 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/package.json +3 -3
- package/src/core/files/data-access/src/lib/api-core-data-access.service.ts__tmpl__ +6 -4
- package/src/prisma/files/config/prisma.config.ts__tmpl__ +5 -1
- package/src/prisma/files/src/lib/schemas/schema.prisma__tmpl__ +2 -5
- package/src/prisma/files/src/lib/seed/seed.ts__tmpl__ +6 -2
- package/src/prisma/generator.js +9 -6
- package/src/prisma/generator.js.map +1 -1
- package/src/setup/generator.js +5 -2
- package/src/setup/generator.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestledjs/api",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"generators": "./generators.json",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "./src/index.js",
|
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
"tslib": "^2.3.0",
|
|
20
20
|
"@nx/devkit": "22.0.2",
|
|
21
21
|
"@nx/js": "22.0.2",
|
|
22
|
-
"@prisma/internals": "^
|
|
22
|
+
"@prisma/internals": "^7.3.0",
|
|
23
23
|
"pluralize": "^8.0.0",
|
|
24
24
|
"dotenv": "16.4.5",
|
|
25
25
|
"pg": "^8.13.0"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
|
-
"@nestledjs/utils": "0.
|
|
28
|
+
"@nestledjs/utils": "1.0.0"
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -2,6 +2,7 @@ import { Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common'
|
|
|
2
2
|
import { Prisma, PrismaClient } from '@<%= npmScope %>/api/prisma'
|
|
3
3
|
import { ConfigService } from '@<%= npmScope %>/api/config'
|
|
4
4
|
import { CorePagingInput } from './dto/core-paging.input'
|
|
5
|
+
import { PrismaPg } from '@prisma/adapter-pg'
|
|
5
6
|
|
|
6
7
|
@Injectable()
|
|
7
8
|
export class ApiCoreDataAccessService
|
|
@@ -9,10 +10,12 @@ export class ApiCoreDataAccessService
|
|
|
9
10
|
implements OnModuleInit, OnModuleDestroy
|
|
10
11
|
{
|
|
11
12
|
constructor(private readonly configService: ConfigService) {
|
|
13
|
+
// Create the PostgreSQL adapter with the connection string
|
|
14
|
+
const connectionString = `${process.env['DATABASE_URL']}?connection_limit=30`
|
|
15
|
+
const adapter = new PrismaPg({ connectionString })
|
|
16
|
+
|
|
12
17
|
const config: Prisma.PrismaClientOptions = {
|
|
13
|
-
|
|
14
|
-
db: { url: `${process.env['DATABASE_URL']}?connection_limit=30` },
|
|
15
|
-
},
|
|
18
|
+
adapter,
|
|
16
19
|
log:
|
|
17
20
|
process.env['LOG_PRISMA_QUERIES'] === 'true' ||
|
|
18
21
|
process.env['COUNT_PRISMA_QUERIES'] === 'true'
|
|
@@ -109,4 +112,3 @@ export class ApiCoreDataAccessService
|
|
|
109
112
|
}
|
|
110
113
|
}
|
|
111
114
|
}
|
|
112
|
-
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import 'dotenv/config'
|
|
2
2
|
import * as path from 'node:path'
|
|
3
|
-
import { defineConfig } from 'prisma/config'
|
|
3
|
+
import { defineConfig, env } from 'prisma/config'
|
|
4
4
|
|
|
5
5
|
export default defineConfig({
|
|
6
6
|
schema: path.join('libs', 'api', 'prisma', 'src', 'lib', 'schemas'),
|
|
7
7
|
migrations: {
|
|
8
|
+
path: 'libs/api/prisma/src/lib/migrations',
|
|
8
9
|
seed: 'ts-node --project libs/api/prisma/tsconfig.lib.json libs/api/prisma/src/lib/seed/seed.ts',
|
|
9
10
|
},
|
|
11
|
+
datasource: {
|
|
12
|
+
url: env('DATABASE_URL'),
|
|
13
|
+
},
|
|
10
14
|
})
|
|
11
15
|
|
|
12
16
|
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
generator client {
|
|
2
|
-
provider
|
|
3
|
-
|
|
4
|
-
binaryTargets = ["native"]
|
|
5
|
-
output = "../prisma-generated"
|
|
2
|
+
provider = "prisma-client"
|
|
3
|
+
output = "../prisma-generated"
|
|
6
4
|
}
|
|
7
5
|
|
|
8
6
|
datasource db {
|
|
9
7
|
provider = "postgresql"
|
|
10
|
-
url = env("DATABASE_URL")
|
|
11
8
|
}
|
|
12
9
|
|
|
13
10
|
// Models (Alphabetical Order)
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import 'dotenv/config'
|
|
1
2
|
import { PrismaClient } from '../prisma-generated'
|
|
3
|
+
import { PrismaPg } from '@prisma/adapter-pg'
|
|
2
4
|
import { countries } from './seed-data/iso-3166-countries'
|
|
3
5
|
import { seedUsers } from './seed-data/seed-users'
|
|
4
6
|
import { hashSync } from 'bcryptjs'
|
|
5
7
|
|
|
6
|
-
const
|
|
8
|
+
const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL! })
|
|
9
|
+
const prisma = new PrismaClient({ adapter })
|
|
10
|
+
|
|
7
11
|
async function main() {
|
|
8
12
|
for (const country of countries) {
|
|
9
13
|
await prisma.country.upsert({
|
|
@@ -46,7 +50,7 @@ async function main() {
|
|
|
46
50
|
console.log(`User ${user.displayName} seeded.`);
|
|
47
51
|
} catch (e) {
|
|
48
52
|
if ((e as any).code === 'P2002' && (e as any).meta?.target?.includes('displayName')) {
|
|
49
|
-
console.log(`User with displayName
|
|
53
|
+
console.log(`User with displayName "${user.displayName}" already exists. Skipping.`);
|
|
50
54
|
} else {
|
|
51
55
|
throw e;
|
|
52
56
|
}
|
package/src/prisma/generator.js
CHANGED
|
@@ -16,17 +16,20 @@ function generateLibraries(tree_1) {
|
|
|
16
16
|
tree.rename('./prisma.config.ts__tmpl__', 'prisma.config.ts');
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
// Update package.json scripts (remove deprecated prisma
|
|
19
|
+
// Update package.json scripts (remove deprecated prisma fields for v7 - now configured in prisma.config.ts)
|
|
20
20
|
(0, devkit_1.updateJson)(tree, 'package.json', (json) => {
|
|
21
|
-
var _a;
|
|
21
|
+
var _a, _b;
|
|
22
|
+
// Remove deprecated prisma.schema field (now in prisma.config.ts)
|
|
22
23
|
if ((_a = json.prisma) === null || _a === void 0 ? void 0 : _a.schema) {
|
|
23
24
|
delete json.prisma.schema;
|
|
24
25
|
}
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
// Remove deprecated prisma.seed field (now in prisma.config.ts)
|
|
27
|
+
if ((_b = json.prisma) === null || _b === void 0 ? void 0 : _b.seed) {
|
|
28
|
+
delete json.prisma.seed;
|
|
27
29
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
// Remove empty prisma object if no other properties
|
|
31
|
+
if (json.prisma && Object.keys(json.prisma).length === 0) {
|
|
32
|
+
delete json.prisma;
|
|
30
33
|
}
|
|
31
34
|
// Add GraphQL model generation script for the 'core' library
|
|
32
35
|
if (!json.scripts) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../generators/api/src/prisma/generator.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../generators/api/src/prisma/generator.ts"],"names":[],"mappings":";;AAIA,oCA6EC;;AAjFD,uCAAiH;AACjH,4CAAsD;AAGtD,SAA8B,iBAAiB;iEAAC,IAAU,EAAE,UAAoC,EAAE;QAChG,MAAM,gBAAgB,GAAG,IAAA,0BAAiB,EAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAChE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,IAAI,CAAA;QAE5C,sEAAsE;QACtE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACrC,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAA,0BAAiB,EAAC,gBAAgB,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;YACrF,+DAA+D;YAC/D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,EAAE,CAAC;gBAClF,IAAI,CAAC,MAAM,CAAC,4BAA4B,EAAE,kBAAkB,CAAC,CAAA;YAC/D,CAAC;QACH,CAAC;QAED,4GAA4G;QAC5G,IAAA,mBAAU,EAAC,IAAI,EAAE,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE;;YACxC,kEAAkE;YAClE,IAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;YAC3B,CAAC;YACD,gEAAgE;YAChE,IAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;YACzB,CAAC;YACD,oDAAoD;YACpD,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzD,OAAO,IAAI,CAAC,MAAM,CAAA;YACpB,CAAC;YACD,6DAA6D;YAC7D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;YACnB,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;oBAC7B,0GAA0G,CAAA;YAC9G,CAAC;YAED,0DAA0D;YAC1D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,2CAA2C,CAAA;YAC5E,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,qBAAqB,CAAA;YACxD,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,oBAAoB,CAAA;YACtD,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,sBAAsB,CAAA;YAC1D,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,oDAAoD,CAAA;YACvF,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;oBACzB,0FAA0F,CAAA;YAC9F,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,2BAA2B,CAAA;YAC7D,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,+CAA+C,CAAA;YAChF,CAAC;YACD,+EAA+E;YAC/E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;oBACvB,uHAAuH,CAAA;YAC3H,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC,CAAC,CAAA;QAEF,MAAM,IAAA,2BAAmB,EAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,gBAAgB,CAAC,CAAA;QAEhF,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAA;QAEvB,OAAO,GAAG,EAAE;YACV,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAA;QAC3B,CAAC,CAAA;IACH,CAAC;CAAA"}
|
package/src/setup/generator.js
CHANGED
|
@@ -61,12 +61,14 @@ function apiSetupGenerator(tree) {
|
|
|
61
61
|
'@types/nodemailer': '^6.4.7',
|
|
62
62
|
'@types/passport-jwt': '^4.0.1',
|
|
63
63
|
'@types/node': '^24.0.1',
|
|
64
|
-
'@prisma/
|
|
64
|
+
'@prisma/adapter-pg': '^7.3.0',
|
|
65
|
+
'@prisma/client': '^7.3.0',
|
|
66
|
+
'@prisma/internals': '^7.3.0',
|
|
65
67
|
autoprefixer: '10.4.21',
|
|
66
68
|
jest: '^30.0.0',
|
|
67
69
|
'jest-environment-node': '^30.0.0',
|
|
68
70
|
pg: '8.16.0',
|
|
69
|
-
prisma: '^
|
|
71
|
+
prisma: '^7.3.0',
|
|
70
72
|
'ts-node': '10.9.2',
|
|
71
73
|
yaml: '^2.4.2',
|
|
72
74
|
'ts-loader': '^9.5.2',
|
|
@@ -80,6 +82,7 @@ function apiSetupGenerator(tree) {
|
|
|
80
82
|
const packagesToBuild = [
|
|
81
83
|
'@apollo/protobufjs',
|
|
82
84
|
'@parcel/watcher',
|
|
85
|
+
'@prisma/adapter-pg',
|
|
83
86
|
'@prisma/client',
|
|
84
87
|
'@prisma/extension-optimize',
|
|
85
88
|
'@prisma/engines',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../generators/api/src/setup/generator.ts"],"names":[],"mappings":";;AASA,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../generators/api/src/setup/generator.ts"],"names":[],"mappings":"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"}
|