@rws-framework/db 2.3.2 → 2.4.1
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/.bin/add-v.sh +9 -9
- package/.bin/emerge.sh +10 -10
- package/.eslintrc.json +53 -53
- package/README.md +404 -367
- package/dist/decorators/InverseRelation.d.ts +0 -0
- package/dist/decorators/InverseRelation.js +0 -0
- package/dist/decorators/InverseTimeSeries.d.ts +0 -0
- package/dist/decorators/InverseTimeSeries.js +0 -0
- package/dist/decorators/RWSCollection.d.ts +0 -0
- package/dist/decorators/RWSCollection.js +0 -0
- package/dist/decorators/Relation.d.ts +0 -0
- package/dist/decorators/Relation.js +0 -0
- package/dist/decorators/TrackType.d.ts +0 -0
- package/dist/decorators/TrackType.js +0 -0
- package/dist/decorators/index.d.ts +0 -0
- package/dist/decorators/index.js +0 -0
- package/dist/helper/DbHelper.d.ts +0 -0
- package/dist/helper/DbHelper.js +7 -7
- package/dist/helper/FieldsHelper.d.ts +0 -0
- package/dist/helper/FieldsHelper.js +0 -0
- package/dist/index.d.ts +0 -0
- package/dist/index.js +0 -0
- package/dist/models/TimeSeriesModel.d.ts +7 -7
- package/dist/models/TimeSeriesModel.js +33 -33
- package/dist/models/_model.d.ts +0 -0
- package/dist/models/_model.js +0 -0
- package/dist/models/core/RWSModel.d.ts +0 -0
- package/dist/models/core/RWSModel.js +0 -0
- package/dist/models/core/TimeSeriesModel.d.ts +0 -0
- package/dist/models/core/TimeSeriesModel.js +0 -0
- package/dist/models/index.d.ts +0 -0
- package/dist/models/index.js +0 -0
- package/dist/models/interfaces/IModel.d.ts +0 -0
- package/dist/models/interfaces/IModel.js +0 -0
- package/dist/models/interfaces/IRWSModelServices.d.ts +0 -0
- package/dist/models/interfaces/IRWSModelServices.js +0 -0
- package/dist/models/interfaces/OpModelType.d.ts +0 -0
- package/dist/models/interfaces/OpModelType.js +0 -0
- package/dist/models/types/RelationTypes.d.ts +0 -0
- package/dist/models/types/RelationTypes.js +0 -0
- package/dist/models/utils/ModelUtils.d.ts +0 -0
- package/dist/models/utils/ModelUtils.js +0 -0
- package/dist/models/utils/PaginationUtils.d.ts +0 -0
- package/dist/models/utils/PaginationUtils.js +0 -0
- package/dist/models/utils/RelationUtils.d.ts +0 -0
- package/dist/models/utils/RelationUtils.js +0 -0
- package/dist/models/utils/TimeSeriesUtils.d.ts +0 -0
- package/dist/models/utils/TimeSeriesUtils.js +0 -0
- package/dist/services/DBService.d.ts +1 -1
- package/dist/services/DBService.js +6 -6
- package/dist/types/DbConfigHandler.d.ts +3 -2
- package/dist/types/DbConfigHandler.js +0 -0
- package/dist/types/FindParams.d.ts +0 -0
- package/dist/types/FindParams.js +0 -0
- package/dist/types/IRWSModel.d.ts +0 -0
- package/dist/types/IRWSModel.js +0 -0
- package/dist/types/ITimeSeries.d.ts +0 -0
- package/dist/types/ITimeSeries.js +0 -0
- package/exec/console.js +110 -110
- package/exec/db.rws.webpack.config.js +168 -168
- package/exec/src/cli.ts +75 -73
- package/exec/tsconfig.json +32 -32
- package/exec/webpackFilters.js +17 -17
- package/package.json +36 -36
- package/src/decorators/InverseRelation.ts +36 -36
- package/src/decorators/InverseTimeSeries.ts +21 -21
- package/src/decorators/RWSCollection.ts +27 -27
- package/src/decorators/Relation.ts +47 -47
- package/src/decorators/TrackType.ts +69 -69
- package/src/decorators/index.ts +7 -7
- package/src/empty.js +0 -0
- package/src/helper/DbHelper.ts +177 -177
- package/src/helper/FieldsHelper.ts +34 -34
- package/src/index.ts +36 -36
- package/src/models/_model.ts +29 -29
- package/src/models/core/RWSModel.ts +520 -520
- package/src/models/core/TimeSeriesModel.ts +19 -19
- package/src/models/index.ts +20 -20
- package/src/models/interfaces/IModel.ts +12 -12
- package/src/models/interfaces/IRWSModelServices.ts +7 -7
- package/src/models/interfaces/OpModelType.ts +49 -49
- package/src/models/types/RelationTypes.ts +25 -25
- package/src/models/utils/ModelUtils.ts +65 -65
- package/src/models/utils/PaginationUtils.ts +42 -42
- package/src/models/utils/RelationUtils.ts +76 -76
- package/src/models/utils/TimeSeriesUtils.ts +38 -38
- package/src/services/DBService.ts +277 -277
- package/src/types/DbConfigHandler.ts +12 -11
- package/src/types/FindParams.ts +13 -13
- package/src/types/IRWSModel.ts +2 -2
- package/src/types/ITimeSeries.ts +5 -5
- package/tsconfig.json +22 -22
|
@@ -1,168 +1,168 @@
|
|
|
1
|
-
const path = require('path');
|
|
2
|
-
const chalk = require('chalk');
|
|
3
|
-
const webpackFilters = require('./webpackFilters');
|
|
4
|
-
const webpack = require('webpack');
|
|
5
|
-
const { rwsPath } = require('@rws-framework/console');
|
|
6
|
-
// Get CLI arguments
|
|
7
|
-
const args = process.argv.slice(2);
|
|
8
|
-
const fs = require('fs');
|
|
9
|
-
const appRootPath = args[4] || process.cwd();
|
|
10
|
-
const modelsDir = args[5] || '';
|
|
11
|
-
|
|
12
|
-
const internalCwd = process.cwd()
|
|
13
|
-
const rootPackageNodeModules = path.resolve(rwsPath.findRootWorkspacePath(), 'node_modules');
|
|
14
|
-
const thisPackage = path.resolve(__dirname, '..');
|
|
15
|
-
const WEBPACK_PLUGINS = [new webpack.optimize.ModuleConcatenationPlugin()];
|
|
16
|
-
|
|
17
|
-
const modules_setup = [rootPackageNodeModules, appRootPath];
|
|
18
|
-
const isDev = true;
|
|
19
|
-
|
|
20
|
-
function prettyLog(data){
|
|
21
|
-
for(const key of Object.keys(data)){
|
|
22
|
-
const valObject = data[key];
|
|
23
|
-
|
|
24
|
-
console.log(`${chalk.yellow('[Log]')} ${chalk.blue(key)}:`, valObject)
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const mainEntry = './' + path.relative(appRootPath, path.join(internalCwd, '/src/cli.ts'));
|
|
31
|
-
const vPath = path.relative(__dirname, path.join(__dirname, '../build/vendors'));
|
|
32
|
-
|
|
33
|
-
prettyLog({ buildPaths:{
|
|
34
|
-
thisPackage,
|
|
35
|
-
rootPackageNodeModules,
|
|
36
|
-
appRootPath,
|
|
37
|
-
internalCwd,
|
|
38
|
-
vPath
|
|
39
|
-
}});
|
|
40
|
-
|
|
41
|
-
if(!fs.existsSync(path.join(appRootPath, modelsDir, 'index.ts'))){
|
|
42
|
-
console.log(`${chalk.red('[RWS Structure Error] ')} ${chalk.blue(`
|
|
43
|
-
No index.ts in "${path.join(appRootPath, modelsDir)}"\n
|
|
44
|
-
RWS DB requires "index.ts" that has default export with array of your models:\n
|
|
45
|
-
|
|
46
|
-
${chalk.blue('import')} RWSModel${chalk.blue(',')} OpModelType ${chalk.blue('from')} ${chalk.green('./src/models/user.model.ts')}${chalk.blue(';')}
|
|
47
|
-
|
|
48
|
-
RWSModel<ModelDataInterface> is instance type and
|
|
49
|
-
OpModelType<ModelDataInterface> is type for static methods that navigate through db to populate instanced models.`)}\n
|
|
50
|
-
|
|
51
|
-
Example: \n
|
|
52
|
-
|
|
53
|
-
${chalk.blue('import')} User ${chalk.blue('from')} ${chalk.green('\'./src/models/user.model.ts\'')}${chalk.blue(';')}
|
|
54
|
-
${chalk.blue('import')} ApiKey ${chalk.blue('from')} ${chalk.green('\'./src/models/apiKey.model.ts\'')}${chalk.blue(';')}
|
|
55
|
-
|
|
56
|
-
${chalk.blue('export')} default ${chalk.magenta('[')}
|
|
57
|
-
User${chalk.blue(',')}
|
|
58
|
-
ApiKey
|
|
59
|
-
${chalk.magenta(']')}${chalk.blue(';')}
|
|
60
|
-
`);
|
|
61
|
-
|
|
62
|
-
throw new Error("Build stopped.")
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const cfgExport = {
|
|
66
|
-
context: appRootPath,
|
|
67
|
-
entry: mainEntry,
|
|
68
|
-
mode: isDev ? 'development' : 'production',
|
|
69
|
-
target: 'node',
|
|
70
|
-
devtool: isDev ? 'source-map' : false,
|
|
71
|
-
output: {
|
|
72
|
-
path: path.resolve(internalCwd, 'build'), // Resolve output path relative to config directory
|
|
73
|
-
filename: '[name].cli.rws.js',
|
|
74
|
-
sourceMapFilename: '[file].map',
|
|
75
|
-
chunkFilename: "[name].chunk.js",
|
|
76
|
-
libraryTarget: 'commonjs2',
|
|
77
|
-
clean: false
|
|
78
|
-
},
|
|
79
|
-
resolve: {
|
|
80
|
-
extensions: ['.ts', '.js'],
|
|
81
|
-
modules: modules_setup,
|
|
82
|
-
alias: {
|
|
83
|
-
'@V': vPath,
|
|
84
|
-
'src': path.resolve(appRootPath, 'src'), // Add explicit resolution for src directory
|
|
85
|
-
},
|
|
86
|
-
fallback: {
|
|
87
|
-
"kerberos": false,
|
|
88
|
-
"mongodb-client-encryption": false
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
module: {
|
|
92
|
-
rules: [
|
|
93
|
-
{
|
|
94
|
-
test: /\.(ts)$/,
|
|
95
|
-
use: [
|
|
96
|
-
{
|
|
97
|
-
loader: 'ts-loader',
|
|
98
|
-
options: {
|
|
99
|
-
transpileOnly: true,
|
|
100
|
-
configFile: path.resolve(__dirname, 'tsconfig.json'),
|
|
101
|
-
compilerOptions: {
|
|
102
|
-
outDir: path.resolve(internalCwd, 'build'),
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
],
|
|
107
|
-
include: [
|
|
108
|
-
path.resolve(appRootPath),
|
|
109
|
-
path.resolve(thisPackage),
|
|
110
|
-
path.resolve(rootPackageNodeModules, '@rws-framework')
|
|
111
|
-
],
|
|
112
|
-
exclude: [
|
|
113
|
-
/node_modules\/(?!(@rws-framework)\/).*/,
|
|
114
|
-
/\.d\.ts$/
|
|
115
|
-
]
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
test: /\.node$/,
|
|
119
|
-
use: 'node-loader',
|
|
120
|
-
}
|
|
121
|
-
],
|
|
122
|
-
},
|
|
123
|
-
plugins: [
|
|
124
|
-
...WEBPACK_PLUGINS,
|
|
125
|
-
new webpack.DefinePlugin({
|
|
126
|
-
'process.env.APP_ROOT': JSON.stringify(appRootPath),
|
|
127
|
-
'process.env.DB_CLI': JSON.stringify(1)
|
|
128
|
-
}),
|
|
129
|
-
new webpack.IgnorePlugin({
|
|
130
|
-
resourceRegExp: /^kerberos$/,
|
|
131
|
-
}),
|
|
132
|
-
new webpack.NormalModuleReplacementPlugin(
|
|
133
|
-
/.*\/build\/Debug\/kerberos\.node$/,
|
|
134
|
-
'@rws-framework/db/src/empty.js'
|
|
135
|
-
)
|
|
136
|
-
],
|
|
137
|
-
ignoreWarnings: webpackFilters,
|
|
138
|
-
optimization: {
|
|
139
|
-
minimize: false
|
|
140
|
-
},
|
|
141
|
-
experiments: {
|
|
142
|
-
topLevelAwait: true, // Enable top-level await if needed
|
|
143
|
-
}
|
|
144
|
-
// stats: 'verbose'
|
|
145
|
-
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
cfgExport.externals = {
|
|
149
|
-
'@nestjs/common': 'commonjs @nestjs/common',
|
|
150
|
-
'@nestjs/core': 'commonjs @nestjs/core',
|
|
151
|
-
'@nestjs/config': 'commonjs @nestjs/config',
|
|
152
|
-
'@anthropic-ai/sdk': 'commonjs @anthropic-ai/sdk',
|
|
153
|
-
'@zip.js/zip.js': 'commonjs @zip.js/zip.js',
|
|
154
|
-
'mongodb-client-encryption': 'commonjs mongodb-client-encryption',
|
|
155
|
-
'uuid': 'commonjs uuid',
|
|
156
|
-
'source-map-support': 'commonjs source-map-support'
|
|
157
|
-
};
|
|
158
|
-
|
|
159
|
-
cfgExport.plugins.push(
|
|
160
|
-
new webpack.BannerPlugin({
|
|
161
|
-
banner: 'require("source-map-support").install();',
|
|
162
|
-
raw: true
|
|
163
|
-
})
|
|
164
|
-
);
|
|
165
|
-
|
|
166
|
-
// console.log('Final config', cfgExport);
|
|
167
|
-
|
|
168
|
-
module.exports = cfgExport;
|
|
1
|
+
const path = require('path');
|
|
2
|
+
const chalk = require('chalk');
|
|
3
|
+
const webpackFilters = require('./webpackFilters');
|
|
4
|
+
const webpack = require('webpack');
|
|
5
|
+
const { rwsPath } = require('@rws-framework/console');
|
|
6
|
+
// Get CLI arguments
|
|
7
|
+
const args = process.argv.slice(2);
|
|
8
|
+
const fs = require('fs');
|
|
9
|
+
const appRootPath = args[4] || process.cwd();
|
|
10
|
+
const modelsDir = args[5] || '';
|
|
11
|
+
|
|
12
|
+
const internalCwd = process.cwd()
|
|
13
|
+
const rootPackageNodeModules = path.resolve(rwsPath.findRootWorkspacePath(), 'node_modules');
|
|
14
|
+
const thisPackage = path.resolve(__dirname, '..');
|
|
15
|
+
const WEBPACK_PLUGINS = [new webpack.optimize.ModuleConcatenationPlugin()];
|
|
16
|
+
|
|
17
|
+
const modules_setup = [rootPackageNodeModules, appRootPath];
|
|
18
|
+
const isDev = true;
|
|
19
|
+
|
|
20
|
+
function prettyLog(data){
|
|
21
|
+
for(const key of Object.keys(data)){
|
|
22
|
+
const valObject = data[key];
|
|
23
|
+
|
|
24
|
+
console.log(`${chalk.yellow('[Log]')} ${chalk.blue(key)}:`, valObject)
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
const mainEntry = './' + path.relative(appRootPath, path.join(internalCwd, '/src/cli.ts'));
|
|
31
|
+
const vPath = path.relative(__dirname, path.join(__dirname, '../build/vendors'));
|
|
32
|
+
|
|
33
|
+
prettyLog({ buildPaths:{
|
|
34
|
+
thisPackage,
|
|
35
|
+
rootPackageNodeModules,
|
|
36
|
+
appRootPath,
|
|
37
|
+
internalCwd,
|
|
38
|
+
vPath
|
|
39
|
+
}});
|
|
40
|
+
|
|
41
|
+
if(!fs.existsSync(path.join(appRootPath, modelsDir, 'index.ts'))){
|
|
42
|
+
console.log(`${chalk.red('[RWS Structure Error] ')} ${chalk.blue(`
|
|
43
|
+
No index.ts in "${path.join(appRootPath, modelsDir)}"\n
|
|
44
|
+
RWS DB requires "index.ts" that has default export with array of your models:\n
|
|
45
|
+
|
|
46
|
+
${chalk.blue('import')} RWSModel${chalk.blue(',')} OpModelType ${chalk.blue('from')} ${chalk.green('./src/models/user.model.ts')}${chalk.blue(';')}
|
|
47
|
+
|
|
48
|
+
RWSModel<ModelDataInterface> is instance type and
|
|
49
|
+
OpModelType<ModelDataInterface> is type for static methods that navigate through db to populate instanced models.`)}\n
|
|
50
|
+
|
|
51
|
+
Example: \n
|
|
52
|
+
|
|
53
|
+
${chalk.blue('import')} User ${chalk.blue('from')} ${chalk.green('\'./src/models/user.model.ts\'')}${chalk.blue(';')}
|
|
54
|
+
${chalk.blue('import')} ApiKey ${chalk.blue('from')} ${chalk.green('\'./src/models/apiKey.model.ts\'')}${chalk.blue(';')}
|
|
55
|
+
|
|
56
|
+
${chalk.blue('export')} default ${chalk.magenta('[')}
|
|
57
|
+
User${chalk.blue(',')}
|
|
58
|
+
ApiKey
|
|
59
|
+
${chalk.magenta(']')}${chalk.blue(';')}
|
|
60
|
+
`);
|
|
61
|
+
|
|
62
|
+
throw new Error("Build stopped.")
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const cfgExport = {
|
|
66
|
+
context: appRootPath,
|
|
67
|
+
entry: mainEntry,
|
|
68
|
+
mode: isDev ? 'development' : 'production',
|
|
69
|
+
target: 'node',
|
|
70
|
+
devtool: isDev ? 'source-map' : false,
|
|
71
|
+
output: {
|
|
72
|
+
path: path.resolve(internalCwd, 'build'), // Resolve output path relative to config directory
|
|
73
|
+
filename: '[name].cli.rws.js',
|
|
74
|
+
sourceMapFilename: '[file].map',
|
|
75
|
+
chunkFilename: "[name].chunk.js",
|
|
76
|
+
libraryTarget: 'commonjs2',
|
|
77
|
+
clean: false
|
|
78
|
+
},
|
|
79
|
+
resolve: {
|
|
80
|
+
extensions: ['.ts', '.js'],
|
|
81
|
+
modules: modules_setup,
|
|
82
|
+
alias: {
|
|
83
|
+
'@V': vPath,
|
|
84
|
+
'src': path.resolve(appRootPath, 'src'), // Add explicit resolution for src directory
|
|
85
|
+
},
|
|
86
|
+
fallback: {
|
|
87
|
+
"kerberos": false,
|
|
88
|
+
"mongodb-client-encryption": false
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
module: {
|
|
92
|
+
rules: [
|
|
93
|
+
{
|
|
94
|
+
test: /\.(ts)$/,
|
|
95
|
+
use: [
|
|
96
|
+
{
|
|
97
|
+
loader: 'ts-loader',
|
|
98
|
+
options: {
|
|
99
|
+
transpileOnly: true,
|
|
100
|
+
configFile: path.resolve(__dirname, 'tsconfig.json'),
|
|
101
|
+
compilerOptions: {
|
|
102
|
+
outDir: path.resolve(internalCwd, 'build'),
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
],
|
|
107
|
+
include: [
|
|
108
|
+
path.resolve(appRootPath),
|
|
109
|
+
path.resolve(thisPackage),
|
|
110
|
+
path.resolve(rootPackageNodeModules, '@rws-framework')
|
|
111
|
+
],
|
|
112
|
+
exclude: [
|
|
113
|
+
/node_modules\/(?!(@rws-framework)\/).*/,
|
|
114
|
+
/\.d\.ts$/
|
|
115
|
+
]
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
test: /\.node$/,
|
|
119
|
+
use: 'node-loader',
|
|
120
|
+
}
|
|
121
|
+
],
|
|
122
|
+
},
|
|
123
|
+
plugins: [
|
|
124
|
+
...WEBPACK_PLUGINS,
|
|
125
|
+
new webpack.DefinePlugin({
|
|
126
|
+
'process.env.APP_ROOT': JSON.stringify(appRootPath),
|
|
127
|
+
'process.env.DB_CLI': JSON.stringify(1)
|
|
128
|
+
}),
|
|
129
|
+
new webpack.IgnorePlugin({
|
|
130
|
+
resourceRegExp: /^kerberos$/,
|
|
131
|
+
}),
|
|
132
|
+
new webpack.NormalModuleReplacementPlugin(
|
|
133
|
+
/.*\/build\/Debug\/kerberos\.node$/,
|
|
134
|
+
'@rws-framework/db/src/empty.js'
|
|
135
|
+
)
|
|
136
|
+
],
|
|
137
|
+
ignoreWarnings: webpackFilters,
|
|
138
|
+
optimization: {
|
|
139
|
+
minimize: false
|
|
140
|
+
},
|
|
141
|
+
experiments: {
|
|
142
|
+
topLevelAwait: true, // Enable top-level await if needed
|
|
143
|
+
}
|
|
144
|
+
// stats: 'verbose'
|
|
145
|
+
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
cfgExport.externals = {
|
|
149
|
+
'@nestjs/common': 'commonjs @nestjs/common',
|
|
150
|
+
'@nestjs/core': 'commonjs @nestjs/core',
|
|
151
|
+
'@nestjs/config': 'commonjs @nestjs/config',
|
|
152
|
+
'@anthropic-ai/sdk': 'commonjs @anthropic-ai/sdk',
|
|
153
|
+
'@zip.js/zip.js': 'commonjs @zip.js/zip.js',
|
|
154
|
+
'mongodb-client-encryption': 'commonjs mongodb-client-encryption',
|
|
155
|
+
'uuid': 'commonjs uuid',
|
|
156
|
+
'source-map-support': 'commonjs source-map-support'
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
cfgExport.plugins.push(
|
|
160
|
+
new webpack.BannerPlugin({
|
|
161
|
+
banner: 'require("source-map-support").install();',
|
|
162
|
+
raw: true
|
|
163
|
+
})
|
|
164
|
+
);
|
|
165
|
+
|
|
166
|
+
// console.log('Final config', cfgExport);
|
|
167
|
+
|
|
168
|
+
module.exports = cfgExport;
|
package/exec/src/cli.ts
CHANGED
|
@@ -1,73 +1,75 @@
|
|
|
1
|
-
import 'reflect-metadata';
|
|
2
|
-
|
|
3
|
-
const args: string[] = process.argv.slice(2).filter(cmd => cmd !== '--rebuild');
|
|
4
|
-
import fs from 'fs';
|
|
5
|
-
import path from 'path';
|
|
6
|
-
import { DbHelper, DBService, OpModelType, RWSModel } from '../../src';
|
|
7
|
-
import { IDbConfigHandler, IDbConfigParams } from '../../src/types/DbConfigHandler';
|
|
8
|
-
import chalk from 'chalk';
|
|
9
|
-
|
|
10
|
-
class Config implements IDbConfigHandler {
|
|
11
|
-
private data: IDbConfigParams = {
|
|
12
|
-
db_models: [],
|
|
13
|
-
mongo_db: null,
|
|
14
|
-
mongo_url: null
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
private modelsDir: string;
|
|
18
|
-
private cliExecRoot: string;
|
|
19
|
-
private static _instance: Config = null;
|
|
20
|
-
|
|
21
|
-
private constructor(){}
|
|
22
|
-
|
|
23
|
-
static async getInstance(): Promise<Config>
|
|
24
|
-
{
|
|
25
|
-
if(!this._instance){
|
|
26
|
-
this._instance = new Config();
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
await this._instance.fill();
|
|
30
|
-
|
|
31
|
-
return this._instance;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
async fill(): Promise<void>
|
|
36
|
-
{
|
|
37
|
-
this.data.
|
|
38
|
-
this.data.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
this.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
|
|
3
|
+
const args: string[] = process.argv.slice(2).filter(cmd => cmd !== '--rebuild');
|
|
4
|
+
import fs from 'fs';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
import { DbHelper, DBService, OpModelType, RWSModel } from '../../src';
|
|
7
|
+
import { IDbConfigHandler, IDbConfigParams } from '../../src/types/DbConfigHandler';
|
|
8
|
+
import chalk from 'chalk';
|
|
9
|
+
|
|
10
|
+
class Config implements IDbConfigHandler {
|
|
11
|
+
private data: IDbConfigParams = {
|
|
12
|
+
db_models: [],
|
|
13
|
+
mongo_db: null,
|
|
14
|
+
mongo_url: null
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
private modelsDir: string;
|
|
18
|
+
private cliExecRoot: string;
|
|
19
|
+
private static _instance: Config = null;
|
|
20
|
+
|
|
21
|
+
private constructor(){}
|
|
22
|
+
|
|
23
|
+
static async getInstance(): Promise<Config>
|
|
24
|
+
{
|
|
25
|
+
if(!this._instance){
|
|
26
|
+
this._instance = new Config();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
await this._instance.fill();
|
|
30
|
+
|
|
31
|
+
return this._instance;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
async fill(): Promise<void>
|
|
36
|
+
{
|
|
37
|
+
this.data.db_url = args[0];
|
|
38
|
+
this.data.db_name = args[1];
|
|
39
|
+
this.data.db_type = args[2];
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
this.modelsDir = args[3];
|
|
43
|
+
this.cliExecRoot = args[4];
|
|
44
|
+
|
|
45
|
+
console.log({args})
|
|
46
|
+
|
|
47
|
+
// this.data.db_models = (await import('@V/index')).default;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
getModelsDir(): string
|
|
51
|
+
{
|
|
52
|
+
return this.modelsDir
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
getCliExecRoot(): string
|
|
56
|
+
{
|
|
57
|
+
return this.cliExecRoot
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
get<K extends keyof IDbConfigParams>(key: K): IDbConfigParams[K] {
|
|
61
|
+
return this.data[key];
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
async function main(): Promise<void>
|
|
66
|
+
{
|
|
67
|
+
console.log('INSTALL PRISMA');
|
|
68
|
+
const cfg = await Config.getInstance();
|
|
69
|
+
process.env.PRISMA_DB_URL = cfg.get('db_url');
|
|
70
|
+
DbHelper.installPrisma(cfg, new DBService(cfg), false);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
console.log(chalk.bgGreen('[RWS DB CLI] Starting systems...'));
|
|
74
|
+
|
|
75
|
+
main();
|
package/exec/tsconfig.json
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"baseUrl": "./",
|
|
4
|
-
"experimentalDecorators": true,
|
|
5
|
-
"emitDecoratorMetadata": true,
|
|
6
|
-
"emitDeclarationOnly": false,
|
|
7
|
-
"target": "ES2018",
|
|
8
|
-
"module": "commonjs",
|
|
9
|
-
"moduleResolution": "node",
|
|
10
|
-
"strict": true,
|
|
11
|
-
"skipLibCheck": true,
|
|
12
|
-
"esModuleInterop": true,
|
|
13
|
-
"resolveJsonModule": true,
|
|
14
|
-
"strictNullChecks": false,
|
|
15
|
-
"allowSyntheticDefaultImports": true,
|
|
16
|
-
"sourceMap": true,
|
|
17
|
-
"declaration": true,
|
|
18
|
-
"outDir": "build/vendors",
|
|
19
|
-
"preserveWatchOutput": true,
|
|
20
|
-
"allowJs": true,
|
|
21
|
-
"paths": {
|
|
22
|
-
"@V/*": ["./build/vendors/*"]
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"include": [
|
|
26
|
-
"src/cli.ts",
|
|
27
|
-
"../src/*"
|
|
28
|
-
],
|
|
29
|
-
"exclude": [
|
|
30
|
-
"node_modules"
|
|
31
|
-
]
|
|
32
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"baseUrl": "./",
|
|
4
|
+
"experimentalDecorators": true,
|
|
5
|
+
"emitDecoratorMetadata": true,
|
|
6
|
+
"emitDeclarationOnly": false,
|
|
7
|
+
"target": "ES2018",
|
|
8
|
+
"module": "commonjs",
|
|
9
|
+
"moduleResolution": "node",
|
|
10
|
+
"strict": true,
|
|
11
|
+
"skipLibCheck": true,
|
|
12
|
+
"esModuleInterop": true,
|
|
13
|
+
"resolveJsonModule": true,
|
|
14
|
+
"strictNullChecks": false,
|
|
15
|
+
"allowSyntheticDefaultImports": true,
|
|
16
|
+
"sourceMap": true,
|
|
17
|
+
"declaration": true,
|
|
18
|
+
"outDir": "build/vendors",
|
|
19
|
+
"preserveWatchOutput": true,
|
|
20
|
+
"allowJs": true,
|
|
21
|
+
"paths": {
|
|
22
|
+
"@V/*": ["./build/vendors/*"]
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"include": [
|
|
26
|
+
"src/cli.ts",
|
|
27
|
+
"../src/*"
|
|
28
|
+
],
|
|
29
|
+
"exclude": [
|
|
30
|
+
"node_modules"
|
|
31
|
+
]
|
|
32
|
+
}
|
package/exec/webpackFilters.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
module.exports = [
|
|
2
|
-
/aws-crt/,
|
|
3
|
-
/express\/lib\/view/,
|
|
4
|
-
/mongodb-client-encryption\/lib\/providers\/gcp/,
|
|
5
|
-
/mongodb/,
|
|
6
|
-
/nest-commander/,
|
|
7
|
-
/snappy/,
|
|
8
|
-
/mongodb-js\/zstd/,
|
|
9
|
-
/puppeteer/,
|
|
10
|
-
/kerberos/,
|
|
11
|
-
/@zip\.js\/zip.js/,
|
|
12
|
-
/Module not found: Error: Can't resolve 'fsevents' in/,
|
|
13
|
-
/Critical dependency: the request of a dependency is an expression/,
|
|
14
|
-
/Module not found: Error: Can't resolve 'aws4'/,
|
|
15
|
-
/Critical dependency: require function is used in a way in which dependencies cannot be statically extracted/,
|
|
16
|
-
/Can't resolve .* in '.*kerberos.*'/,
|
|
17
|
-
/Can't resolve .* in '.*mongodb-client-encryption.*'/
|
|
1
|
+
module.exports = [
|
|
2
|
+
/aws-crt/,
|
|
3
|
+
/express\/lib\/view/,
|
|
4
|
+
/mongodb-client-encryption\/lib\/providers\/gcp/,
|
|
5
|
+
/mongodb/,
|
|
6
|
+
/nest-commander/,
|
|
7
|
+
/snappy/,
|
|
8
|
+
/mongodb-js\/zstd/,
|
|
9
|
+
/puppeteer/,
|
|
10
|
+
/kerberos/,
|
|
11
|
+
/@zip\.js\/zip.js/,
|
|
12
|
+
/Module not found: Error: Can't resolve 'fsevents' in/,
|
|
13
|
+
/Critical dependency: the request of a dependency is an expression/,
|
|
14
|
+
/Module not found: Error: Can't resolve 'aws4'/,
|
|
15
|
+
/Critical dependency: require function is used in a way in which dependencies cannot be statically extracted/,
|
|
16
|
+
/Can't resolve .* in '.*kerberos.*'/,
|
|
17
|
+
/Can't resolve .* in '.*mongodb-client-encryption.*'/
|
|
18
18
|
];
|
package/package.json
CHANGED
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@rws-framework/db",
|
|
3
|
-
"private": false,
|
|
4
|
-
"version": "2.
|
|
5
|
-
"description": "",
|
|
6
|
-
"main": "dist/index.js",
|
|
7
|
-
"types": "dist/index.d.ts",
|
|
8
|
-
"scripts": {},
|
|
9
|
-
"author": "papablack",
|
|
10
|
-
"license": "ISC",
|
|
11
|
-
"bin": {
|
|
12
|
-
"rws-db": "./exec/console.js"
|
|
13
|
-
},
|
|
14
|
-
"dependencies": {
|
|
15
|
-
"@rws-framework/console": "*",
|
|
16
|
-
"@prisma/client": "^5.1.1",
|
|
17
|
-
"@mongodb-js/zstd": "^1.2.0",
|
|
18
|
-
"mongodb": "^6.8.1",
|
|
19
|
-
"mongodb-client-encryption": "^6.1.1",
|
|
20
|
-
"xml2js": "^0.6.2",
|
|
21
|
-
"crypto": "^1.0.1",
|
|
22
|
-
"source-map-support": "^0.5.21",
|
|
23
|
-
"tsconfig-paths": "^4.2.0",
|
|
24
|
-
"tsconfig-paths-webpack-plugin": "^4.1.0"
|
|
25
|
-
},
|
|
26
|
-
"devDependencies": {
|
|
27
|
-
"@types/xml2js": "^0.4.14",
|
|
28
|
-
"typescript": "^5.7.2"
|
|
29
|
-
|
|
30
|
-
},
|
|
31
|
-
"repository": {
|
|
32
|
-
"type": "git",
|
|
33
|
-
"url": "https://github.com/rws-framework/db.git"
|
|
34
|
-
},
|
|
35
|
-
"_rws": true
|
|
36
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@rws-framework/db",
|
|
3
|
+
"private": false,
|
|
4
|
+
"version": "2.4.1",
|
|
5
|
+
"description": "",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"scripts": {},
|
|
9
|
+
"author": "papablack",
|
|
10
|
+
"license": "ISC",
|
|
11
|
+
"bin": {
|
|
12
|
+
"rws-db": "./exec/console.js"
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"@rws-framework/console": "*",
|
|
16
|
+
"@prisma/client": "^5.1.1",
|
|
17
|
+
"@mongodb-js/zstd": "^1.2.0",
|
|
18
|
+
"mongodb": "^6.8.1",
|
|
19
|
+
"mongodb-client-encryption": "^6.1.1",
|
|
20
|
+
"xml2js": "^0.6.2",
|
|
21
|
+
"crypto": "^1.0.1",
|
|
22
|
+
"source-map-support": "^0.5.21",
|
|
23
|
+
"tsconfig-paths": "^4.2.0",
|
|
24
|
+
"tsconfig-paths-webpack-plugin": "^4.1.0"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@types/xml2js": "^0.4.14",
|
|
28
|
+
"typescript": "^5.7.2"
|
|
29
|
+
|
|
30
|
+
},
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "https://github.com/rws-framework/db.git"
|
|
34
|
+
},
|
|
35
|
+
"_rws": true
|
|
36
|
+
}
|