@appxdigital/appx-core 0.1.68
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/appx-core.module.d.ts +7 -0
- package/dist/appx-core.module.d.ts.map +1 -0
- package/dist/appx-core.module.js +46 -0
- package/dist/common/config/default-permissions.config.d.ts +3 -0
- package/dist/common/config/default-permissions.config.d.ts.map +1 -0
- package/dist/common/config/default-permissions.config.js +6 -0
- package/dist/common/config/permissions.config.provider.d.ts +8 -0
- package/dist/common/config/permissions.config.provider.d.ts.map +1 -0
- package/dist/common/config/permissions.config.provider.js +12 -0
- package/dist/common/config/permissions.service.d.ts +7 -0
- package/dist/common/config/permissions.service.d.ts.map +1 -0
- package/dist/common/config/permissions.service.js +31 -0
- package/dist/common/config/permissionsConfigTypes.d.ts +18 -0
- package/dist/common/config/permissionsConfigTypes.d.ts.map +1 -0
- package/dist/common/config/permissionsConfigTypes.js +2 -0
- package/dist/common/contants.d.ts +3 -0
- package/dist/common/contants.d.ts.map +1 -0
- package/dist/common/contants.js +5 -0
- package/dist/common/decorators/guard.decorator.d.ts +5 -0
- package/dist/common/decorators/guard.decorator.d.ts.map +1 -0
- package/dist/common/decorators/guard.decorator.js +22 -0
- package/dist/common/decorators/permission.decorator.d.ts +3 -0
- package/dist/common/decorators/permission.decorator.d.ts.map +1 -0
- package/dist/common/decorators/permission.decorator.js +7 -0
- package/dist/common/decorators/transaction.decorator.d.ts +8 -0
- package/dist/common/decorators/transaction.decorator.d.ts.map +1 -0
- package/dist/common/decorators/transaction.decorator.js +12 -0
- package/dist/common/enums/role.enum.d.ts +6 -0
- package/dist/common/enums/role.enum.d.ts.map +1 -0
- package/dist/common/enums/role.enum.js +9 -0
- package/dist/common/guards/rbac.guard.d.ts +10 -0
- package/dist/common/guards/rbac.guard.d.ts.map +1 -0
- package/dist/common/guards/rbac.guard.js +56 -0
- package/dist/common/guards/role.guard.d.ts +12 -0
- package/dist/common/guards/role.guard.d.ts.map +1 -0
- package/dist/common/guards/role.guard.js +44 -0
- package/dist/common/interceptors/file.interceptor.d.ts +9 -0
- package/dist/common/interceptors/file.interceptor.d.ts.map +1 -0
- package/dist/common/interceptors/file.interceptor.js +74 -0
- package/dist/common/interceptors/prisma.interceptor.d.ts +14 -0
- package/dist/common/interceptors/prisma.interceptor.d.ts.map +1 -0
- package/dist/common/interceptors/prisma.interceptor.js +82 -0
- package/dist/common/interfaces/file-upload.interface.d.ts +13 -0
- package/dist/common/interfaces/file-upload.interface.d.ts.map +1 -0
- package/dist/common/interfaces/file-upload.interface.js +2 -0
- package/dist/common/interfaces/storage-service.interface.d.ts +4 -0
- package/dist/common/interfaces/storage-service.interface.d.ts.map +1 -0
- package/dist/common/interfaces/storage-service.interface.js +2 -0
- package/dist/common/interfaces/user.interface.d.ts +12 -0
- package/dist/common/interfaces/user.interface.d.ts.map +1 -0
- package/dist/common/interfaces/user.interface.js +2 -0
- package/dist/common/providers/aws-storage.service.d.ts +10 -0
- package/dist/common/providers/aws-storage.service.d.ts.map +1 -0
- package/dist/common/providers/aws-storage.service.js +60 -0
- package/dist/common/providers/gcp-storage.service.d.ts +10 -0
- package/dist/common/providers/gcp-storage.service.d.ts.map +1 -0
- package/dist/common/providers/gcp-storage.service.js +87 -0
- package/dist/common/providers/local-storage.service.d.ts +7 -0
- package/dist/common/providers/local-storage.service.d.ts.map +1 -0
- package/dist/common/providers/local-storage.service.js +80 -0
- package/dist/common/types.d.ts +21 -0
- package/dist/common/types.d.ts.map +1 -0
- package/dist/common/types.js +3 -0
- package/dist/common/utils/context-transformer.util.d.ts +6 -0
- package/dist/common/utils/context-transformer.util.d.ts.map +1 -0
- package/dist/common/utils/context-transformer.util.js +28 -0
- package/dist/common/utils/error-handler.d.ts +2 -0
- package/dist/common/utils/error-handler.d.ts.map +1 -0
- package/dist/common/utils/error-handler.js +38 -0
- package/dist/config/admin/create.d.ts +2 -0
- package/dist/config/admin/create.d.ts.map +1 -0
- package/dist/config/admin/create.js +25 -0
- package/dist/config/admin/generate-admin.d.ts +2 -0
- package/dist/config/admin/generate-admin.d.ts.map +1 -0
- package/dist/config/admin/generate-admin.js +75 -0
- package/dist/config/admin/templates/admin.template.d.ts +2 -0
- package/dist/config/admin/templates/admin.template.d.ts.map +1 -0
- package/dist/config/admin/templates/admin.template.js +131 -0
- package/dist/config/admin/templates/component-loader.template.d.ts +2 -0
- package/dist/config/admin/templates/component-loader.template.d.ts.map +1 -0
- package/dist/config/admin/templates/component-loader.template.js +17 -0
- package/dist/config/admin/templates/dashboard.template.d.ts +2 -0
- package/dist/config/admin/templates/dashboard.template.d.ts.map +1 -0
- package/dist/config/admin/templates/dashboard.template.js +40 -0
- package/dist/config/admin/templates/utils.template.d.ts +2 -0
- package/dist/config/admin/templates/utils.template.d.ts.map +1 -0
- package/dist/config/admin/templates/utils.template.js +135 -0
- package/dist/config/generate-all.d.ts +3 -0
- package/dist/config/generate-all.d.ts.map +1 -0
- package/dist/config/generate-all.js +64 -0
- package/dist/config/generate-controllers.d.ts +2 -0
- package/dist/config/generate-controllers.d.ts.map +1 -0
- package/dist/config/generate-controllers.js +83 -0
- package/dist/config/generate-modules.d.ts +2 -0
- package/dist/config/generate-modules.d.ts.map +1 -0
- package/dist/config/generate-modules.js +158 -0
- package/dist/config/generate-resolvers.d.ts +2 -0
- package/dist/config/generate-resolvers.d.ts.map +1 -0
- package/dist/config/generate-resolvers.js +97 -0
- package/dist/config/generate-services.d.ts +2 -0
- package/dist/config/generate-services.d.ts.map +1 -0
- package/dist/config/generate-services.js +72 -0
- package/dist/config/generate-session-schema.d.ts +2 -0
- package/dist/config/generate-session-schema.d.ts.map +1 -0
- package/dist/config/generate-session-schema.js +78 -0
- package/dist/config/setup-fileupload.d.ts +3 -0
- package/dist/config/setup-fileupload.d.ts.map +1 -0
- package/dist/config/setup-fileupload.js +265 -0
- package/dist/config/utils.d.ts +3 -0
- package/dist/config/utils.d.ts.map +1 -0
- package/dist/config/utils.js +55 -0
- package/dist/graphql/batch.payload.d.ts +4 -0
- package/dist/graphql/batch.payload.d.ts.map +1 -0
- package/dist/graphql/batch.payload.js +23 -0
- package/dist/graphql/generic.resolver.d.ts +15 -0
- package/dist/graphql/generic.resolver.d.ts.map +1 -0
- package/dist/graphql/generic.resolver.js +107 -0
- package/dist/graphql/graphql.module.d.ts +3 -0
- package/dist/graphql/graphql.module.d.ts.map +1 -0
- package/dist/graphql/graphql.module.js +28 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/modules/auth/auth-field.decorator.d.ts +10 -0
- package/dist/modules/auth/auth-field.decorator.d.ts.map +1 -0
- package/dist/modules/auth/auth-field.decorator.js +18 -0
- package/dist/modules/auth/auth.controller.d.ts +25 -0
- package/dist/modules/auth/auth.controller.d.ts.map +1 -0
- package/dist/modules/auth/auth.controller.js +158 -0
- package/dist/modules/auth/auth.module.d.ts +3 -0
- package/dist/modules/auth/auth.module.d.ts.map +1 -0
- package/dist/modules/auth/auth.module.js +28 -0
- package/dist/modules/auth/auth.resolver.d.ts +6 -0
- package/dist/modules/auth/auth.resolver.d.ts.map +1 -0
- package/dist/modules/auth/auth.resolver.js +24 -0
- package/dist/modules/auth/auth.service.d.ts +28 -0
- package/dist/modules/auth/auth.service.d.ts.map +1 -0
- package/dist/modules/auth/auth.service.js +197 -0
- package/dist/modules/auth/authenticated.guard.d.ts +5 -0
- package/dist/modules/auth/authenticated.guard.d.ts.map +1 -0
- package/dist/modules/auth/authenticated.guard.js +20 -0
- package/dist/modules/auth/dto/register.dto.d.ts +6 -0
- package/dist/modules/auth/dto/register.dto.d.ts.map +1 -0
- package/dist/modules/auth/dto/register.dto.js +21 -0
- package/dist/modules/auth/dto/user.dto.d.ts +5 -0
- package/dist/modules/auth/dto/user.dto.d.ts.map +1 -0
- package/dist/modules/auth/dto/user.dto.js +36 -0
- package/dist/modules/auth/local-auth.guard.d.ts +7 -0
- package/dist/modules/auth/local-auth.guard.d.ts.map +1 -0
- package/dist/modules/auth/local-auth.guard.js +31 -0
- package/dist/modules/auth/local.strategy.d.ts +15 -0
- package/dist/modules/auth/local.strategy.d.ts.map +1 -0
- package/dist/modules/auth/local.strategy.js +48 -0
- package/dist/modules/auth/session/session-auth.guard.d.ts +5 -0
- package/dist/modules/auth/session/session-auth.guard.d.ts.map +1 -0
- package/dist/modules/auth/session/session-auth.guard.js +30 -0
- package/dist/modules/auth/session/session-serializer.d.ts +9 -0
- package/dist/modules/auth/session/session-serializer.d.ts.map +1 -0
- package/dist/modules/auth/session/session-serializer.js +44 -0
- package/dist/modules/auth/session/session-store.d.ts +11 -0
- package/dist/modules/auth/session/session-store.d.ts.map +1 -0
- package/dist/modules/auth/session/session-store.js +97 -0
- package/dist/modules/common.module.d.ts +3 -0
- package/dist/modules/common.module.d.ts.map +1 -0
- package/dist/modules/common.module.js +20 -0
- package/dist/modules/core/core.controller.d.ts +14 -0
- package/dist/modules/core/core.controller.d.ts.map +1 -0
- package/dist/modules/core/core.controller.js +114 -0
- package/dist/modules/core/core.module.d.ts +3 -0
- package/dist/modules/core/core.module.d.ts.map +1 -0
- package/dist/modules/core/core.module.js +22 -0
- package/dist/modules/core/core.service.d.ts +44 -0
- package/dist/modules/core/core.service.d.ts.map +1 -0
- package/dist/modules/core/core.service.js +121 -0
- package/dist/modules/file/file-upload.controller.d.ts +11 -0
- package/dist/modules/file/file-upload.controller.d.ts.map +1 -0
- package/dist/modules/file/file-upload.controller.js +52 -0
- package/dist/modules/file/file-upload.module.d.ts +6 -0
- package/dist/modules/file/file-upload.module.d.ts.map +1 -0
- package/dist/modules/file/file-upload.module.js +62 -0
- package/dist/modules/file/file-upload.service.d.ts +27 -0
- package/dist/modules/file/file-upload.service.d.ts.map +1 -0
- package/dist/modules/file/file-upload.service.js +69 -0
- package/dist/modules/user/user.module.d.ts +3 -0
- package/dist/modules/user/user.module.d.ts.map +1 -0
- package/dist/modules/user/user.module.js +20 -0
- package/dist/modules/user/user.service.d.ts +10 -0
- package/dist/modules/user/user.service.d.ts.map +1 -0
- package/dist/modules/user/user.service.js +49 -0
- package/dist/prisma/prisma.service.d.ts +128 -0
- package/dist/prisma/prisma.service.d.ts.map +1 -0
- package/dist/prisma/prisma.service.js +512 -0
- package/dist/tasks/session-cleanup.service.d.ts +7 -0
- package/dist/tasks/session-cleanup.service.d.ts.map +1 -0
- package/dist/tasks/session-cleanup.service.js +38 -0
- package/package.json +66 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const fs = __importStar(require("fs"));
|
|
37
|
+
const path = __importStar(require("path"));
|
|
38
|
+
const utils_1 = require("./utils");
|
|
39
|
+
const modelsPath = path.join(process.cwd(), 'src/generated');
|
|
40
|
+
const modulesOutputPath = path.join(process.cwd(), 'src/modules');
|
|
41
|
+
const appModulePath = path.join(process.cwd(), 'src/app.module.ts');
|
|
42
|
+
/**
|
|
43
|
+
* Generic module template for a given model
|
|
44
|
+
* @param model
|
|
45
|
+
* @param folder
|
|
46
|
+
*/
|
|
47
|
+
const moduleTemplate = (model, folder) => `
|
|
48
|
+
import { Module } from '@nestjs/common';
|
|
49
|
+
import { PrismaModule } from '../../prisma/prisma.module';
|
|
50
|
+
import { ${model}Controller } from './${folder}.controller';
|
|
51
|
+
import { ${model}Service } from './${folder}.service';
|
|
52
|
+
import { ${model}Resolver } from './${folder}.resolver';
|
|
53
|
+
|
|
54
|
+
@Module({
|
|
55
|
+
imports: [PrismaModule],
|
|
56
|
+
controllers: [${model}Controller],
|
|
57
|
+
providers: [${model}Service, ${model}Resolver],
|
|
58
|
+
})
|
|
59
|
+
export class ${model}Module {}
|
|
60
|
+
`;
|
|
61
|
+
/**
|
|
62
|
+
* Create or update the module file for a given model
|
|
63
|
+
* @param model
|
|
64
|
+
* @param modulePath
|
|
65
|
+
* @param folder
|
|
66
|
+
*/
|
|
67
|
+
const createModuleFile = (model, modulePath, folder) => {
|
|
68
|
+
const moduleContent = moduleTemplate(model, folder);
|
|
69
|
+
fs.writeFileSync(modulePath, moduleContent);
|
|
70
|
+
console.log(`Module for ${model} created or updated.`);
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Update the AppModule with new module imports
|
|
74
|
+
*/
|
|
75
|
+
const updateAppModule = () => {
|
|
76
|
+
let appModuleContent = fs.readFileSync(appModulePath, 'utf8');
|
|
77
|
+
/**
|
|
78
|
+
* Regex to extract existing module imports from the AppModule
|
|
79
|
+
*/
|
|
80
|
+
const importRegex = /import { (\w+)Module } from '.\/modules\/\w+\/\w+.module';/g;
|
|
81
|
+
const existingImports = new Set();
|
|
82
|
+
let match;
|
|
83
|
+
while ((match = importRegex.exec(appModuleContent)) !== null) {
|
|
84
|
+
existingImports.add(match[1]);
|
|
85
|
+
}
|
|
86
|
+
const newImports = [];
|
|
87
|
+
const newModules = [];
|
|
88
|
+
/**
|
|
89
|
+
* Regex to extract the imports array from the AppModule to prevent duplicates
|
|
90
|
+
*/
|
|
91
|
+
const importsArrayRegex = /(imports:\s*\[)([^]*?)(\])/;
|
|
92
|
+
const importsArrayMatch = appModuleContent.match(importsArrayRegex);
|
|
93
|
+
const existingModuleNames = new Set();
|
|
94
|
+
if (importsArrayMatch) {
|
|
95
|
+
const currentImportsArray = importsArrayMatch[2]
|
|
96
|
+
.split(',')
|
|
97
|
+
.map((m) => m.trim().replace(/\s/g, ''))
|
|
98
|
+
.filter((m) => m);
|
|
99
|
+
currentImportsArray.forEach((moduleName) => {
|
|
100
|
+
existingModuleNames.add(moduleName);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Iterate over the modules directory and add new imports to the AppModule
|
|
105
|
+
*/
|
|
106
|
+
fs.readdirSync(modulesOutputPath).forEach((folder) => {
|
|
107
|
+
if (folder === 'prisma' || folder === 'schema.gql' || folder === 'session')
|
|
108
|
+
return;
|
|
109
|
+
const modelName = (0, utils_1.kebabToPascalCase)(folder);
|
|
110
|
+
const moduleName = `${modelName}Module`;
|
|
111
|
+
// Ensure no duplicate imports and no duplicate entries in the imports array
|
|
112
|
+
if (!existingImports.has(moduleName) && !existingModuleNames.has(moduleName)) {
|
|
113
|
+
newImports.push(`import { ${modelName}Module } from './modules/${folder}/${folder}.module';`);
|
|
114
|
+
newModules.push(moduleName);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
if (newImports.length === 0) {
|
|
118
|
+
console.log('No new modules to add.');
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
// Add new imports to AppModule and update the imports array without duplicates
|
|
122
|
+
appModuleContent = appModuleContent.replace(/(imports:\s*\[)([^]*?)(\])/, (_, prefix, currentImports, suffix) => {
|
|
123
|
+
const currentModules = currentImports
|
|
124
|
+
.split(',')
|
|
125
|
+
.map((m) => m.trim())
|
|
126
|
+
.filter((m) => m);
|
|
127
|
+
newModules.forEach((newModule) => {
|
|
128
|
+
if (!currentModules.includes(newModule)) {
|
|
129
|
+
currentModules.push(newModule);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
return `${prefix}${currentModules.join(', ')}${suffix}`;
|
|
133
|
+
});
|
|
134
|
+
const finalContent = newImports.join('\n') + '\n' + appModuleContent;
|
|
135
|
+
fs.writeFileSync(appModulePath, finalContent);
|
|
136
|
+
console.log('AppModule updated successfully.');
|
|
137
|
+
};
|
|
138
|
+
/**
|
|
139
|
+
* Generate modules for each model
|
|
140
|
+
*/
|
|
141
|
+
fs.readdirSync(modelsPath).forEach((folder) => {
|
|
142
|
+
if (folder === 'prisma' || folder === 'schema.gql' || folder === 'session')
|
|
143
|
+
return;
|
|
144
|
+
const modelName = (0, utils_1.kebabToPascalCase)(folder);
|
|
145
|
+
const modelOutputPath = path.join(modulesOutputPath, folder);
|
|
146
|
+
if (!fs.existsSync(modelOutputPath)) {
|
|
147
|
+
fs.mkdirSync(modelOutputPath, { recursive: true });
|
|
148
|
+
console.log(`Folder for model ${modelName} created.`);
|
|
149
|
+
}
|
|
150
|
+
const modulePath = path.join(modelOutputPath, `${folder}.module.ts`);
|
|
151
|
+
if (!fs.existsSync(modulePath)) {
|
|
152
|
+
createModuleFile(modelName, modulePath, folder);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
console.log(`Module for ${modelName} already exists, skipping.`);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
updateAppModule();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-resolvers.d.ts","sourceRoot":"","sources":["../../src/config/generate-resolvers.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const fs = __importStar(require("fs"));
|
|
37
|
+
const path = __importStar(require("path"));
|
|
38
|
+
const utils_1 = require("./utils");
|
|
39
|
+
const modelsPath = path.join(process.cwd(), 'src/generated');
|
|
40
|
+
const outputPath = path.join(process.cwd(), 'src/modules');
|
|
41
|
+
/**
|
|
42
|
+
* Generic resolver template for a given model
|
|
43
|
+
* @param model
|
|
44
|
+
* @param folder
|
|
45
|
+
*/
|
|
46
|
+
const genericResolverTemplate = (model, folder) => `import { Resolver } from '@nestjs/graphql';
|
|
47
|
+
import { GenericResolverFactory, PrismaService } from 'appx-core';
|
|
48
|
+
import { ${model} } from '../../generated/${folder}/${folder}.model';
|
|
49
|
+
import { ${model}CreateInput } from '../../generated/${folder}/${folder}-create.input';
|
|
50
|
+
import { ${model}UpdateInput } from '../../generated/${folder}/${folder}-update.input';
|
|
51
|
+
import { ${model}WhereInput } from '../../generated/${folder}/${folder}-where.input';
|
|
52
|
+
import { ${model}WhereUniqueInput } from '../../generated/${folder}/${folder}-where-unique.input';
|
|
53
|
+
import { FindMany${model}Args } from '../../generated/${folder}/find-many-${folder}.args';
|
|
54
|
+
import { ${model}AggregateArgs } from '../../generated/${folder}/${folder}-aggregate.args';
|
|
55
|
+
import { Aggregate${model} } from '../../generated/${folder}/aggregate-${folder}.output';
|
|
56
|
+
import { CreateMany${model}Args } from '../../generated/${folder}/create-many-${folder}.args';
|
|
57
|
+
import { ${model}CreateManyInput } from '../../generated/${folder}/${folder}-create-many.input';
|
|
58
|
+
|
|
59
|
+
const ${model}GenericResolver = GenericResolverFactory(
|
|
60
|
+
'${model}',
|
|
61
|
+
${model},
|
|
62
|
+
${model}CreateInput,
|
|
63
|
+
${model}UpdateInput,
|
|
64
|
+
${model}WhereInput,
|
|
65
|
+
${model}WhereUniqueInput,
|
|
66
|
+
FindMany${model}Args,
|
|
67
|
+
${model}AggregateArgs,
|
|
68
|
+
Aggregate${model},
|
|
69
|
+
CreateMany${model}Args,
|
|
70
|
+
${model}CreateManyInput,
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
@Resolver(() => ${model})
|
|
74
|
+
export class ${model}Resolver extends ${model}GenericResolver {
|
|
75
|
+
constructor(prisma: PrismaService) {
|
|
76
|
+
super(prisma);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
`;
|
|
80
|
+
/**
|
|
81
|
+
* Generate resolvers for each model
|
|
82
|
+
*/
|
|
83
|
+
fs.readdirSync(modelsPath).forEach((folder) => {
|
|
84
|
+
if (folder === 'prisma' || folder === 'schema.gql' || folder === 'session')
|
|
85
|
+
return;
|
|
86
|
+
const modelName = (0, utils_1.kebabToPascalCase)(folder);
|
|
87
|
+
const modelOutputPath = path.join(outputPath, folder);
|
|
88
|
+
if (!fs.existsSync(modelOutputPath)) {
|
|
89
|
+
fs.mkdirSync(modelOutputPath, { recursive: true });
|
|
90
|
+
console.log(`Folder for model ${modelName} created.`);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
console.log(`Folder for model ${modelName} already exists, skipping creation.`);
|
|
94
|
+
}
|
|
95
|
+
const resolverPath = path.join(modelOutputPath, `${folder}.resolver.ts`);
|
|
96
|
+
(0, utils_1.createFileIfNotExists)(resolverPath, genericResolverTemplate(modelName, folder));
|
|
97
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-services.d.ts","sourceRoot":"","sources":["../../src/config/generate-services.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const fs = __importStar(require("fs"));
|
|
37
|
+
const path = __importStar(require("path"));
|
|
38
|
+
const utils_1 = require("./utils");
|
|
39
|
+
const modelsPath = path.join(process.cwd(), 'src/generated');
|
|
40
|
+
const servicesOutputPath = path.join(process.cwd(), 'src/modules');
|
|
41
|
+
/**
|
|
42
|
+
* Generic service template for a given model
|
|
43
|
+
* @param model
|
|
44
|
+
*/
|
|
45
|
+
const genericServiceTemplate = (model) => `import { Injectable } from '@nestjs/common';
|
|
46
|
+
import { CoreService, PrismaService } from 'appx-core';
|
|
47
|
+
import { ${model} } from '@prisma/client';
|
|
48
|
+
|
|
49
|
+
@Injectable()
|
|
50
|
+
export class ${model}Service extends CoreService<${model}> {
|
|
51
|
+
constructor(prisma: PrismaService) {
|
|
52
|
+
super(prisma.model.${model[0].toLowerCase() + model.slice(1)});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Override methods or add custom logic as needed
|
|
56
|
+
}
|
|
57
|
+
`;
|
|
58
|
+
/**
|
|
59
|
+
* Generate services for each model
|
|
60
|
+
*/
|
|
61
|
+
fs.readdirSync(modelsPath).forEach((folder) => {
|
|
62
|
+
if (folder === 'prisma' || folder === 'schema.gql' || folder === 'session')
|
|
63
|
+
return;
|
|
64
|
+
const modelName = (0, utils_1.kebabToPascalCase)(folder);
|
|
65
|
+
const modelOutputPath = path.join(servicesOutputPath, folder);
|
|
66
|
+
if (!fs.existsSync(modelOutputPath)) {
|
|
67
|
+
fs.mkdirSync(modelOutputPath, { recursive: true });
|
|
68
|
+
console.log(`Folder for model ${modelName} created.`);
|
|
69
|
+
}
|
|
70
|
+
const servicePath = path.join(modelOutputPath, `${folder}.service.ts`);
|
|
71
|
+
(0, utils_1.createFileIfNotExists)(servicePath, genericServiceTemplate(modelName));
|
|
72
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-session-schema.d.ts","sourceRoot":"","sources":["../../src/config/generate-session-schema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const path = __importStar(require("path"));
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const schemaPath = path.join(process.cwd(), 'prisma/schema/schema.prisma');
|
|
39
|
+
const sessionSchemaPath = path.join(process.cwd(), 'prisma/schema/session.prisma');
|
|
40
|
+
/**
|
|
41
|
+
* Check if the "Session" model exists in schema.prisma
|
|
42
|
+
* @returns {boolean} - True if the Session model exists, otherwise false.
|
|
43
|
+
*/
|
|
44
|
+
const doesSessionModelExist = () => {
|
|
45
|
+
if (fs.existsSync(schemaPath)) {
|
|
46
|
+
const schemaContent = fs.readFileSync(schemaPath, 'utf-8');
|
|
47
|
+
const sessionModelRegex = /model\s+session\s*{[\s\S]*?}/i;
|
|
48
|
+
return sessionModelRegex.test(schemaContent);
|
|
49
|
+
}
|
|
50
|
+
return false;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Ensure that the session schema exists if it is not already defined in schema.prisma
|
|
54
|
+
*/
|
|
55
|
+
const ensureSessionSchemaExists = () => {
|
|
56
|
+
if (doesSessionModelExist()) {
|
|
57
|
+
console.log('Session model already exists in schema.prisma. Skipping creation of session.prisma.');
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (!fs.existsSync(sessionSchemaPath)) {
|
|
61
|
+
console.log('Session schema not found in session.prisma. Creating it...');
|
|
62
|
+
const sessionSchemaContent = `
|
|
63
|
+
model Session {
|
|
64
|
+
id String @id
|
|
65
|
+
sid String @unique
|
|
66
|
+
data String
|
|
67
|
+
expiresAt DateTime
|
|
68
|
+
userId Int?
|
|
69
|
+
}
|
|
70
|
+
`;
|
|
71
|
+
fs.writeFileSync(sessionSchemaPath, sessionSchemaContent);
|
|
72
|
+
console.log('Session schema created successfully in session.prisma.');
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
console.log('Session schema already exists in session.prisma.');
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
ensureSessionSchemaExists();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-fileupload.d.ts","sourceRoot":"","sources":["../../src/config/setup-fileupload.ts"],"names":[],"mappings":""}
|