@nestledjs/api 0.0.6 → 0.0.8

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.
Files changed (102) hide show
  1. package/package.json +2 -2
  2. package/src/account/generator.d.ts +3 -0
  3. package/src/account/generator.js +19 -0
  4. package/src/account/generator.js.map +1 -0
  5. package/src/app/generator.d.ts +6 -0
  6. package/src/app/generator.js +96 -0
  7. package/src/app/generator.js.map +1 -0
  8. package/src/config/generator.d.ts +3 -0
  9. package/src/config/generator.js +18 -0
  10. package/src/config/generator.js.map +1 -0
  11. package/src/core/generator.d.ts +3 -0
  12. package/src/core/generator.js +31 -0
  13. package/src/core/generator.js.map +1 -0
  14. package/src/custom/generator.d.ts +24 -0
  15. package/src/custom/generator.js +199 -0
  16. package/src/custom/generator.js.map +1 -0
  17. package/src/custom/schema.d.ts +5 -0
  18. package/src/custom/schema.js +3 -0
  19. package/src/custom/schema.js.map +1 -0
  20. package/src/extended/generator.d.ts +3 -0
  21. package/src/extended/generator.js +136 -0
  22. package/src/extended/generator.js.map +1 -0
  23. package/src/extended/index.d.ts +1 -0
  24. package/src/extended/index.js +7 -0
  25. package/src/extended/index.js.map +1 -0
  26. package/src/extended/{schema.ts → schema.d.ts} +2 -2
  27. package/src/extended/schema.js +3 -0
  28. package/src/extended/schema.js.map +1 -0
  29. package/src/generate-crud/generator.d.ts +50 -0
  30. package/src/generate-crud/generator.js +296 -0
  31. package/src/generate-crud/generator.js.map +1 -0
  32. package/src/generate-crud/schema.d.ts +8 -0
  33. package/src/generate-crud/schema.js +3 -0
  34. package/src/generate-crud/schema.js.map +1 -0
  35. package/src/index.d.ts +13 -0
  36. package/src/index.js +17 -0
  37. package/src/index.js.map +1 -0
  38. package/src/plugin/generator.d.ts +3 -0
  39. package/src/plugin/generator.js +74 -0
  40. package/src/plugin/generator.js.map +1 -0
  41. package/src/plugin/{schema.ts → schema.d.ts} +3 -3
  42. package/src/plugin/schema.js +3 -0
  43. package/src/plugin/schema.js.map +1 -0
  44. package/src/prisma/generator.d.ts +3 -0
  45. package/src/prisma/generator.js +61 -0
  46. package/src/prisma/generator.js.map +1 -0
  47. package/src/setup/generator.d.ts +3 -0
  48. package/src/setup/generator.js +104 -0
  49. package/src/setup/generator.js.map +1 -0
  50. package/src/smtp-mailer/generator.d.ts +2 -0
  51. package/src/smtp-mailer/generator.js +17 -0
  52. package/src/smtp-mailer/generator.js.map +1 -0
  53. package/src/user/generator.d.ts +2 -0
  54. package/src/user/generator.js +18 -0
  55. package/src/user/generator.js.map +1 -0
  56. package/src/utils/generator.d.ts +2 -0
  57. package/src/utils/generator.js +17 -0
  58. package/src/utils/generator.js.map +1 -0
  59. package/src/workspace-setup/generator.d.ts +1 -0
  60. package/src/workspace-setup/generator.js +42 -0
  61. package/src/workspace-setup/generator.js.map +1 -0
  62. package/src/workspace-setup/lib/helpers.d.ts +16 -0
  63. package/src/workspace-setup/lib/helpers.js +164 -0
  64. package/src/workspace-setup/lib/helpers.js.map +1 -0
  65. package/eslint.config.cjs +0 -28
  66. package/project.json +0 -47
  67. package/src/account/generator.spec.ts +0 -71
  68. package/src/account/generator.ts +0 -20
  69. package/src/app/generator.spec.ts +0 -112
  70. package/src/app/generator.ts +0 -105
  71. package/src/config/generator.spec.ts +0 -47
  72. package/src/config/generator.ts +0 -16
  73. package/src/core/generator.spec.ts +0 -85
  74. package/src/core/generator.ts +0 -35
  75. package/src/custom/generator.spec.ts +0 -75
  76. package/src/custom/generator.ts +0 -239
  77. package/src/custom/schema.ts +0 -5
  78. package/src/extended/generator.spec.ts +0 -95
  79. package/src/extended/generator.ts +0 -161
  80. package/src/extended/index.ts +0 -1
  81. package/src/generate-crud/generator.spec.ts +0 -84
  82. package/src/generate-crud/generator.ts +0 -354
  83. package/src/generate-crud/schema.ts +0 -8
  84. package/src/index.ts +0 -13
  85. package/src/plugin/generator.spec.ts +0 -18
  86. package/src/plugin/generator.ts +0 -74
  87. package/src/prisma/generator.spec.ts +0 -60
  88. package/src/prisma/generator.ts +0 -61
  89. package/src/setup/generator.spec.ts +0 -18
  90. package/src/setup/generator.ts +0 -107
  91. package/src/smtp-mailer/generator.spec.ts +0 -41
  92. package/src/smtp-mailer/generator.ts +0 -14
  93. package/src/user/generator.spec.ts +0 -41
  94. package/src/user/generator.ts +0 -15
  95. package/src/utils/generator.ts +0 -14
  96. package/src/workspace-setup/generator.spec.ts +0 -85
  97. package/src/workspace-setup/generator.ts +0 -57
  98. package/src/workspace-setup/lib/helpers.ts +0 -149
  99. package/tsconfig.json +0 -16
  100. package/tsconfig.lib.json +0 -23
  101. package/tsconfig.spec.json +0 -22
  102. package/vite.config.mts +0 -31
@@ -1,107 +0,0 @@
1
- import { addDependenciesToPackageJson, GeneratorCallback, Tree } from '@nx/devkit'
2
- import { pnpmInstallCallback, updatePnpmWorkspaceConfig } from '@nestledjs/utils'
3
-
4
- function ensureNpmrc(tree: Tree) {
5
- const npmrcPath = '.npmrc'
6
- const content = 'ignore-workspace-root-check=true\n'
7
- tree.write(npmrcPath, content)
8
- }
9
-
10
- export async function apiSetupGenerator(tree: Tree): Promise<GeneratorCallback> {
11
- // Add dependencies
12
- addDependenciesToPackageJson(
13
- tree,
14
- {
15
- '@nestjs/apollo': '^13.1.0',
16
- '@nestjs/axios': '^4.0.0',
17
- '@nestjs/common': '^11.1.3',
18
- '@nestjs/config': '^4.0.2',
19
- '@nestjs/core': '^11.1.3',
20
- '@nestjs/graphql': '^13.1.0',
21
- '@nestjs/jwt': '^11.0.0',
22
- '@nestjs/passport': '^11.0.5',
23
- '@nestjs/platform-express': '^11.1.3',
24
- '@paljs/plugins': '^8.2.0',
25
- axios: '^1.9.0',
26
- bcryptjs: '^3.0.2',
27
- express: '^5.1.0',
28
- graphql: '^16.11.0',
29
- 'graphql-query-complexity': '1.1.0',
30
- 'graphql-scalars': '^1.24.2',
31
- 'graphql-subscriptions': '^3.0.0',
32
- 'graphql-ws': '^6.0.5',
33
- joi: '^17.13.3',
34
- nodemailer: '^7.0.3',
35
- 'reflect-metadata': '^0.2.2',
36
- rxjs: '^7.8.2',
37
- 'type-graphql': '^2.0.0-rc.2',
38
- 'graphql-fields': '^2.0.3',
39
- 'class-validator': '^0.14.0',
40
- 'class-transformer': '^0.5.1',
41
- 'graphql-redis-subscriptions': '^2.7.0',
42
- ioredis: '^5.6.1',
43
- 'cookie-parser': '^1.4.7',
44
- 'passport-jwt': '^4.0.1',
45
- },
46
- {
47
- nx: '21.2.0',
48
- '@nx/js': '21.2.0',
49
- '@nx/nest': '21.2.0',
50
- '@nx/node': '21.2.0',
51
- '@nx/webpack': '21.2.0',
52
- '@nestjs/schematics': '^11.0.5',
53
- '@nestjs/testing': '^11.1.3',
54
- '@prisma/extension-optimize': '2.0.0',
55
- '@swc-node/register': '~1.10.10',
56
- '@swc/cli': '~0.7.7',
57
- '@swc/core': '~1.12.1',
58
- '@types/cookie-parser': '^1.4.3',
59
- '@types/express': '^5.0.3',
60
- '@types/nodemailer': '^6.4.7',
61
- '@types/passport-jwt': '^4.0.1',
62
- '@types/node': '^24.0.1',
63
- '@prisma/internals': '^6.9.0',
64
- autoprefixer: '10.4.21',
65
- jest: '^30.0.0',
66
- 'jest-environment-node': '^30.0.0',
67
- pg: '8.16.0',
68
- prisma: '^6.9.0',
69
- 'ts-node': '10.9.2',
70
- yaml: '^2.4.2',
71
- 'ts-loader': '^9.5.2',
72
- 'webpack-cli': '^6.0.1',
73
- 'webpack-node-externals': '^3.0.0',
74
- 'tsconfig-paths-webpack-plugin': '^4.2.0',
75
- 'prisma-graphql-type-decimal': '^3.0.1',
76
- 'graphql-type-json': '^0.3.2',
77
- },
78
- )
79
-
80
- // Update pnpm-workspace.yaml with build dependencies
81
- const packagesToBuild = [
82
- '@apollo/protobufjs',
83
- '@parcel/watcher',
84
- '@prisma/client',
85
- '@prisma/extension-optimize',
86
- '@prisma/engines',
87
- 'esbuild',
88
- 'nx',
89
- 'prisma',
90
- 'ioredis',
91
- 'prisma-graphql-type-decimal',
92
- '@nestjs/core',
93
- 'type-graphql',
94
- 'express',
95
- 'unrs-resolver',
96
- '@swc/core',
97
- ]
98
- updatePnpmWorkspaceConfig(tree, { onlyBuiltDependencies: packagesToBuild })
99
-
100
- // Ensure .npmrc exists with the required content
101
- ensureNpmrc(tree)
102
-
103
- // Return a callback that will run after the generator completes
104
- return pnpmInstallCallback()
105
- }
106
-
107
- export default apiSetupGenerator
@@ -1,41 +0,0 @@
1
- import { formatFiles, Tree } from '@nx/devkit'
2
- import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'
3
- import { describe, expect, it, vi } from 'vitest'
4
- import { apiLibraryGenerator } from '@nestledjs/utils'
5
- import { installPackagesTask } from '@nx/devkit'
6
-
7
- import generator from './generator'
8
-
9
- vi.mock('@nestledjs/utils', async () => {
10
- const actual = await vi.importActual('@nestledjs/utils')
11
- return {
12
- ...actual,
13
- apiLibraryGenerator: vi.fn(),
14
- }
15
- })
16
-
17
- vi.mock('@nx/devkit', async () => {
18
- const actual = await vi.importActual('@nx/devkit')
19
- return {
20
- ...actual,
21
- formatFiles: vi.fn(),
22
- installPackagesTask: vi.fn(),
23
- }
24
- })
25
-
26
- describe('mailer generator', () => {
27
- let tree: Tree
28
-
29
- beforeEach(() => {
30
- tree = createTreeWithEmptyWorkspace()
31
- })
32
-
33
- it('should run successfully', async () => {
34
- const callback = await generator(tree)
35
- callback()
36
-
37
- expect(apiLibraryGenerator).toHaveBeenCalledWith(tree, { name: 'smtp-mailer' }, expect.any(String), 'data-access')
38
- expect(formatFiles).toHaveBeenCalledWith(tree)
39
- expect(installPackagesTask).toHaveBeenCalledWith(tree)
40
- })
41
- })
@@ -1,14 +0,0 @@
1
- import { formatFiles, GeneratorCallback, installPackagesTask, joinPathFragments, Tree } from '@nx/devkit'
2
- import { apiLibraryGenerator } from '@nestledjs/utils'
3
-
4
- export default async function generateLibraries(tree: Tree): Promise<GeneratorCallback> {
5
- const templateRootPath = joinPathFragments(__dirname, './files')
6
-
7
- await apiLibraryGenerator(tree, { name: 'smtp-mailer' }, templateRootPath, 'data-access')
8
-
9
- await formatFiles(tree)
10
-
11
- return () => {
12
- installPackagesTask(tree)
13
- }
14
- }
@@ -1,41 +0,0 @@
1
- import { formatFiles, installPackagesTask, Tree } from '@nx/devkit'
2
- import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'
3
- import { describe, expect, it, vi } from 'vitest'
4
- import { apiLibraryGenerator } from '@nestledjs/utils'
5
-
6
- import generator from './generator'
7
-
8
- vi.mock('@nestledjs/utils', async () => {
9
- const actual = await vi.importActual('@nestledjs/utils')
10
- return {
11
- ...actual,
12
- apiLibraryGenerator: vi.fn(),
13
- }
14
- })
15
-
16
- vi.mock('@nx/devkit', async () => {
17
- const actual = await vi.importActual('@nx/devkit')
18
- return {
19
- ...actual,
20
- formatFiles: vi.fn(),
21
- installPackagesTask: vi.fn(),
22
- }
23
- })
24
-
25
- describe('user generator', () => {
26
- let tree: Tree
27
-
28
- beforeEach(() => {
29
- tree = createTreeWithEmptyWorkspace()
30
- })
31
-
32
- it('should run successfully', async () => {
33
- const callback = await generator(tree)
34
- callback()
35
-
36
- expect(apiLibraryGenerator).toHaveBeenCalledWith(tree, { name: 'user' }, expect.any(String), 'data-access')
37
- expect(apiLibraryGenerator).toHaveBeenCalledWith(tree, { name: 'user' }, expect.any(String), 'feature', true)
38
- expect(formatFiles).toHaveBeenCalledWith(tree)
39
- expect(installPackagesTask).toHaveBeenCalledWith(tree)
40
- })
41
- })
@@ -1,15 +0,0 @@
1
- import { formatFiles, GeneratorCallback, installPackagesTask, joinPathFragments, Tree } from '@nx/devkit'
2
- import { apiLibraryGenerator } from '@nestledjs/utils'
3
-
4
- export default async function generateLibraries(tree: Tree): Promise<GeneratorCallback> {
5
- const templateRootPath = joinPathFragments(__dirname, './files')
6
-
7
- await apiLibraryGenerator(tree, { name: 'user' }, templateRootPath, 'data-access')
8
- await apiLibraryGenerator(tree, { name: 'user' }, templateRootPath, 'feature', true)
9
-
10
- await formatFiles(tree)
11
-
12
- return () => {
13
- installPackagesTask(tree)
14
- }
15
- }
@@ -1,14 +0,0 @@
1
- import { formatFiles, joinPathFragments, Tree } from '@nx/devkit'
2
- import { apiLibraryGenerator, deleteFiles } from '@nestledjs/utils'
3
-
4
- export default async function generator(tree: Tree) {
5
- const templateRootPath = joinPathFragments(__dirname, './files')
6
- const overwrite = false
7
-
8
- await apiLibraryGenerator(tree, { name: 'utils', overwrite }, templateRootPath, '', false)
9
-
10
- // Remove the default module file if it exists
11
- deleteFiles(tree, ['libs/api/utils/src/lib/api-utils.module.ts'])
12
-
13
- await formatFiles(tree)
14
- }
@@ -1,85 +0,0 @@
1
- import { vi, describe, it, expect, beforeEach } from 'vitest'
2
-
3
- const {
4
- canConnect,
5
- ensureDockerComposeIsRunning,
6
- ensureDockerIsRunning,
7
- ensureDotEnv,
8
- log,
9
- runPrismaSeed,
10
- runPrismaSetup,
11
- runGraphQLTypeGeneration,
12
- sleep,
13
- } = vi.hoisted(() => {
14
- return {
15
- canConnect: vi.fn(),
16
- ensureDockerComposeIsRunning: vi.fn(),
17
- ensureDockerIsRunning: vi.fn(),
18
- ensureDotEnv: vi.fn(),
19
- log: vi.fn(),
20
- runPrismaSeed: vi.fn(),
21
- runPrismaSetup: vi.fn(),
22
- runGraphQLTypeGeneration: vi.fn(),
23
- sleep: vi.fn(),
24
- }
25
- })
26
-
27
- vi.mock('./lib/helpers', () => ({
28
- canConnect,
29
- ensureDockerComposeIsRunning,
30
- ensureDockerIsRunning,
31
- ensureDotEnv,
32
- log,
33
- runPrismaSeed,
34
- runPrismaSetup,
35
- runGraphQLTypeGeneration,
36
- sleep,
37
- }))
38
-
39
- import generator from './generator'
40
-
41
- describe('workspace-setup generator', () => {
42
- beforeEach(() => {
43
- vi.clearAllMocks()
44
- delete process.env.DATABASE_URL
45
- })
46
-
47
- it('should throw an error if DATABASE_URL is not provided', async () => {
48
- await expect(generator()).rejects.toThrow('Please provide DATABASE_URL env var')
49
- })
50
-
51
- it('should throw an error if DATABASE_URL is not on localhost', async () => {
52
- process.env.DATABASE_URL = 'some-remote-db'
53
- await expect(generator()).rejects.toThrow("Refusing to connect to non-local database: some-remote-db")
54
- })
55
-
56
- it('should run setup without docker if already connected', async () => {
57
- process.env.DATABASE_URL = 'localhost:5432'
58
- canConnect.mockResolvedValue(true)
59
-
60
- await generator()
61
-
62
- expect(ensureDotEnv).toHaveBeenCalled()
63
- expect(canConnect).toHaveBeenCalledWith('localhost:5432')
64
- expect(ensureDockerIsRunning).toHaveBeenCalled()
65
- expect(ensureDockerComposeIsRunning).not.toHaveBeenCalled()
66
- expect(runPrismaSetup).toHaveBeenCalled()
67
- expect(runGraphQLTypeGeneration).toHaveBeenCalled()
68
- expect(runPrismaSeed).toHaveBeenCalled()
69
- })
70
-
71
- it('should start docker and run setup if not connected', async () => {
72
- process.env.DATABASE_URL = 'localhost:5432'
73
- canConnect.mockResolvedValue(false)
74
-
75
- await generator()
76
-
77
- expect(ensureDotEnv).toHaveBeenCalled()
78
- expect(canConnect).toHaveBeenCalledWith('localhost:5432')
79
- expect(ensureDockerIsRunning).toHaveBeenCalled()
80
- expect(ensureDockerComposeIsRunning).toHaveBeenCalled()
81
- expect(runPrismaSetup).toHaveBeenCalled()
82
- expect(runGraphQLTypeGeneration).toHaveBeenCalled()
83
- expect(runPrismaSeed).toHaveBeenCalled()
84
- })
85
- })
@@ -1,57 +0,0 @@
1
- require('dotenv').config()
2
- import {
3
- canConnect,
4
- ensureDockerComposeIsRunning,
5
- ensureDockerIsRunning,
6
- ensureDotEnv,
7
- log,
8
- runGraphQLTypeGeneration,
9
- runPrismaSeed,
10
- runPrismaSetup,
11
- sleep,
12
- } from './lib/helpers'
13
-
14
- export default async function () {
15
- log('Setting up workspace')
16
-
17
- ensureDotEnv()
18
- require('dotenv').config()
19
-
20
- const DATABASE_URL = process.env.DATABASE_URL
21
-
22
- if (!DATABASE_URL) {
23
- throw new Error('Please provide DATABASE_URL env var')
24
- }
25
-
26
- if (!DATABASE_URL.includes('localhost')) {
27
- throw new Error(`Refusing to connect to non-local database: ${DATABASE_URL}`)
28
- }
29
-
30
- ensureDockerIsRunning()
31
-
32
- const connected = await canConnect(DATABASE_URL)
33
-
34
- if (!connected) {
35
- await ensureDockerComposeIsRunning()
36
- // Extra safety delay — DB might show "healthy" before accepting connections
37
- await sleep(2000)
38
- }
39
-
40
- try {
41
- log('Applying Prisma migrations...')
42
- runPrismaSetup()
43
-
44
- await sleep(2000)
45
-
46
- log('Generating GraphQL types from Prisma schema...')
47
- runGraphQLTypeGeneration()
48
-
49
- log('Seeding database...')
50
- runPrismaSeed()
51
-
52
- log('✅ Workspace setup complete')
53
- } catch (error) {
54
- console.error('❌ Error during workspace setup:', error.message)
55
- process.exit(1)
56
- }
57
- }
@@ -1,149 +0,0 @@
1
- import { execSync } from 'child_process'
2
- import { existsSync, readFileSync, writeFileSync } from 'fs'
3
- import { basename } from 'path'
4
- import { Client } from 'pg'
5
- import { workspaceRoot } from '@nx/devkit'
6
-
7
- export const MAX_RETRIES = 30
8
- export const WORKSPACE_NAME = basename(process.cwd())
9
- export const DATABASE_URL = process.env.DATABASE_URL
10
- export const DOCKER_COMPOSE_FILE = '.dev/docker-compose.yml'
11
-
12
- export function log(...msg) {
13
- console.log(`[${WORKSPACE_NAME}]`, ...msg)
14
- }
15
-
16
- export async function connectToPostgres(url: string): Promise<Client> {
17
- const client = new Client(url)
18
- await client.connect()
19
- return client
20
- }
21
-
22
- export async function canConnect(url: string): Promise<boolean> {
23
- try {
24
- await connectToPostgres(url)
25
- log('Connected to Postgres')
26
- return true
27
- } catch {
28
- return false
29
- }
30
- }
31
-
32
- export function ensureDockerIsRunning() {
33
- try {
34
- execSync('docker ps', { stdio: 'ignore' })
35
- log('Docker is Up')
36
- return true
37
- } catch {
38
- throw new Error(`Make sure Docker is running, then run this again`)
39
- }
40
- }
41
-
42
- export function isDockerComposeRunning(): boolean {
43
- try {
44
- const res = execSync('pnpm run docker:ps', { stdio: ['inherit', 'inherit'], cwd: workspaceRoot })
45
- if (res) {
46
- log('Docker Compose is Running')
47
- return true
48
- }
49
- return false
50
- } catch {
51
- return false
52
- }
53
- }
54
-
55
- export async function ensureDockerComposeIsRunning() {
56
- const isRunning = isDockerComposeRunning()
57
- if (isRunning) {
58
- log('Docker Compose already running')
59
- return true
60
- }
61
-
62
- log('Starting Docker Compose...')
63
- try {
64
- execSync('pnpm run docker:up', { stdio: 'inherit', cwd: workspaceRoot })
65
- } catch (e) {
66
- throw new Error(`Failed to start Docker Compose: ${e.message}`)
67
- }
68
-
69
- try {
70
- await waitForConnection()
71
- log('Docker Compose Started and DB connection confirmed')
72
- } catch {
73
- execSync('pnpm run docker:logs', { stdio: 'inherit', cwd: workspaceRoot })
74
- throw new Error(`Database failed to start or respond in time`)
75
- }
76
- }
77
-
78
- export function ensureDotEnv() {
79
- try {
80
- if (!existsSync('.env')) {
81
- writeFileSync('.env', readFileSync('.env.example'))
82
- log('.env created (copied from .env.example)')
83
- } else {
84
- log('.env exists')
85
- }
86
- } catch {
87
- throw new Error(`Error creating or reading.env file`)
88
- }
89
- }
90
-
91
- export function runPrismaSetup() {
92
- try {
93
- execSync('pnpm prisma:apply', { stdio: 'inherit', cwd: workspaceRoot })
94
- log('Prisma Setup is Done')
95
- return true
96
- } catch (e) {
97
- execSync('pnpm run docker:logs', { stdio: 'inherit', cwd: workspaceRoot })
98
- throw new Error(`There was an issue running 'pnpm prisma:apply': ${e.message}`)
99
- }
100
- }
101
-
102
- export function runPrismaSeed() {
103
- try {
104
- execSync('npx prisma db seed -- --confirm --timeout 0', { stdio: 'inherit' })
105
- log('Prisma Seed is Done')
106
- return true
107
- } catch (e) {
108
- console.error('Prisma Seed Error:', e.message)
109
- throw new Error(`There was an issue running 'pnpm prisma:seed': ${e.message}`)
110
- }
111
- }
112
-
113
- export function runGraphQLTypeGeneration() {
114
- try {
115
- execSync('pnpm generate:models', { stdio: 'inherit' })
116
- log('GraphQL types generation is done')
117
- return true
118
- } catch (e) {
119
- console.error('GraphQL types generation error:', e.message)
120
- throw new Error(`There was an issue running 'pnpm generate:models': ${e.message}`)
121
- }
122
- }
123
-
124
- export const sleep = (ms = 1000) => new Promise((resolve) => setTimeout(resolve, ms))
125
-
126
- function waitForConnection(): Promise<void> {
127
- log('Waiting for Postgres to connect')
128
- return new Promise((resolve, reject) => {
129
- let count = 0
130
-
131
- function tryConnect() {
132
- if (count >= MAX_RETRIES) {
133
- reject()
134
- return
135
- }
136
-
137
- canConnect(DATABASE_URL).then((isConnected) => {
138
- if (isConnected) {
139
- resolve()
140
- } else {
141
- count++
142
- sleep().then(tryConnect)
143
- }
144
- })
145
- }
146
-
147
- tryConnect()
148
- })
149
- }
package/tsconfig.json DELETED
@@ -1,16 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.base.json",
3
- "compilerOptions": {
4
- "module": "NodeNext"
5
- },
6
- "files": [],
7
- "include": [],
8
- "references": [
9
- {
10
- "path": "./tsconfig.lib.json"
11
- },
12
- {
13
- "path": "./tsconfig.spec.json"
14
- }
15
- ]
16
- }
package/tsconfig.lib.json DELETED
@@ -1,23 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "../../dist/out-tsc",
5
- "declaration": true,
6
- "types": ["node"]
7
- },
8
- "include": ["src/**/*.ts"],
9
- "exclude": [
10
- "vite.config.mts",
11
- "vite.config.mts",
12
- "vitest.config.ts",
13
- "vitest.config.mts",
14
- "src/**/*.test.ts",
15
- "src/**/*.spec.ts",
16
- "src/**/*.test.tsx",
17
- "src/**/*.spec.tsx",
18
- "src/**/*.test.js",
19
- "src/**/*.spec.js",
20
- "src/**/*.test.jsx",
21
- "src/**/*.spec.jsx"
22
- ]
23
- }
@@ -1,22 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "../../dist/out-tsc",
5
- "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"]
6
- },
7
- "include": [
8
- "vite.config.mts",
9
- "vite.config.mts",
10
- "vitest.config.ts",
11
- "vitest.config.mts",
12
- "src/**/*.test.ts",
13
- "src/**/*.spec.ts",
14
- "src/**/*.test.tsx",
15
- "src/**/*.spec.tsx",
16
- "src/**/*.test.js",
17
- "src/**/*.spec.js",
18
- "src/**/*.test.jsx",
19
- "src/**/*.spec.jsx",
20
- "src/**/*.d.ts"
21
- ]
22
- }
package/vite.config.mts DELETED
@@ -1,31 +0,0 @@
1
- /// <reference types="vitest" />
2
- import { defineConfig } from 'vite'
3
- import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin'
4
- import tsconfigPaths from 'vite-tsconfig-paths'
5
-
6
- export default defineConfig(() => ({
7
- root: __dirname,
8
- cacheDir: '../../node_modules/.vite/generators/api',
9
- plugins: [nxCopyAssetsPlugin(['*.md']), tsconfigPaths()],
10
- // Uncomment this if you are using workers.
11
- // worker: {
12
- // plugins: [ nxViteTsPaths() ],
13
- // },
14
- test: {
15
- globals: true,
16
- environment: 'node',
17
- include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
18
- pool: 'threads',
19
- poolOptions: {
20
- forks: {
21
- singleFork: true,
22
- },
23
- },
24
- watch: false,
25
- reporters: ['default'],
26
- coverage: {
27
- reportsDirectory: '../../coverage/generators/api',
28
- provider: 'v8' as const,
29
- },
30
- },
31
- }))