uranio 0.1.21 → 0.1.23

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.
@@ -28,6 +28,6 @@
28
28
  "typescript": "^5.2.2"
29
29
  },
30
30
  "dependencies": {
31
- "uranio": "0.1.21"
31
+ "uranio": "0.1.23"
32
32
  }
33
33
  }
@@ -39,6 +39,7 @@ const flag_shorts = {
39
39
  v: 'verbose',
40
40
  };
41
41
  const flag_types = {
42
+ 'database': 'string',
42
43
  'root': 'string',
43
44
  'tsconfig-path': 'string',
44
45
  'verbose': 'boolean',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/args/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/args/index.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,16 @@
2
2
  *
3
3
  * Generate index module
4
4
  *
5
+ * `generate` command do the following:
6
+ *
7
+ * - copy the directory `.uranio` from its root directory into the
8
+ * `node_modules` of the project where the command is run.
9
+ *
10
+ * - After parsing the types with `plutonio` it updates the copied typescript
11
+ * files.
12
+ *
13
+ * - It then build the updated `.uranio` files as a typescript project.
14
+ *
5
15
  * @packageDocumentation
6
16
  */
7
17
  import * as t from '../types';
@@ -3,6 +3,16 @@
3
3
  *
4
4
  * Generate index module
5
5
  *
6
+ * `generate` command do the following:
7
+ *
8
+ * - copy the directory `.uranio` from its root directory into the
9
+ * `node_modules` of the project where the command is run.
10
+ *
11
+ * - After parsing the types with `plutonio` it updates the copied typescript
12
+ * files.
13
+ *
14
+ * - It then build the updated `.uranio` files as a typescript project.
15
+ *
6
16
  * @packageDocumentation
7
17
  */
8
18
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
@@ -39,6 +49,7 @@ const plutonio_1 = __importDefault(require("plutonio"));
39
49
  const index_1 = require("../log/index");
40
50
  const utils = __importStar(require("../utils/index"));
41
51
  const common = __importStar(require("../common/index"));
52
+ const t = __importStar(require("../types"));
42
53
  async function generate(args) {
43
54
  var _a;
44
55
  const debug = ((_a = args.flags) === null || _a === void 0 ? void 0 : _a.verbose) === true;
@@ -56,7 +67,9 @@ exports.generate = generate;
56
67
  function _resolve_generate_params(args) {
57
68
  const root_path = common.resolve_param_root(args);
58
69
  const tsconfig_path = _resolve_param_tsconfig_path(root_path, args);
70
+ const database = _resolve_param_database(args);
59
71
  return {
72
+ database,
60
73
  root: root_path,
61
74
  tsconfig_path,
62
75
  };
@@ -68,6 +81,20 @@ function _resolve_param_tsconfig_path(root_path, args) {
68
81
  }
69
82
  return `${root_path}/tsconfig.json`;
70
83
  }
84
+ function _resolve_param_database(args) {
85
+ var _a;
86
+ if (args.flags && utils.valid.string((_a = args.flags) === null || _a === void 0 ? void 0 : _a['database'])) {
87
+ const db = args.flags['database'];
88
+ _assert_database(db);
89
+ return db;
90
+ }
91
+ return t.DATABASE.MONGODB;
92
+ }
93
+ function _assert_database(db) {
94
+ if (!Object.keys(t.DATABASE).includes(db)) {
95
+ throw new Error(`Invalid database flag value. Possible value are [${t.DATABASE}]`);
96
+ }
97
+ }
71
98
  async function _copy_dot_uranio(params) {
72
99
  index_1.log.spinner.text(`Coping dot uranio...`);
73
100
  const dot_path = `${params.root}/node_modules/uranio/.uranio`;
@@ -81,8 +108,10 @@ async function _copy_dot_uranio(params) {
81
108
  async function _update_dot_uranio(params) {
82
109
  index_1.log.spinner.text(`Updating dot uranio files...`);
83
110
  const uranio_extended_interfaces = _get_uranio_extended_interfaces(params);
84
- const text = _generate_uranio_client_module_text(uranio_extended_interfaces);
85
- const uranio_client_path = `${params.root}/node_modules/.uranio/src/uranio-client.ts`;
111
+ const text = params.database === t.DATABASE.MYSQL
112
+ ? _generate_mysql_uranio_client_module_text(uranio_extended_interfaces)
113
+ : _generate_mongodb_uranio_client_module_text(uranio_extended_interfaces);
114
+ const uranio_client_path = `${params.root}/node_modules/.uranio/src/client.ts`;
86
115
  fs_1.default.writeFileSync(uranio_client_path, text);
87
116
  index_1.log.debug(`Updated dot uranio files`);
88
117
  }
@@ -128,36 +157,77 @@ function _get_uranio_extended_interfaces(params) {
128
157
  }
129
158
  }
130
159
  // log.trace(uranio_extended_interfaces);
160
+ _debug_interfaces(uranio_extended_interfaces);
131
161
  return uranio_extended_interfaces;
132
162
  }
133
- function _generate_uranio_client_module_text(interfaces) {
163
+ function _generate_mongodb_uranio_client_module_text(interfaces) {
134
164
  let text = '';
135
165
  text += `/**\n`;
136
166
  text += ` *\n`;
137
167
  text += ` * [Auto-generated module by "uranio generate" command]\n`;
138
168
  text += ` *\n`;
139
- text += ` * UranioClient module\n`;
169
+ text += ` * Uranio MongoDBClient module\n`;
140
170
  text += ` *\n`;
141
171
  text += ` */\n`;
142
172
  text += `\n`;
143
- text += `import {Client, ClientParams} from './client';\n`;
144
- text += `import {AtomClient} from './atom';\n`;
145
- text += `import {atom} from './types';\n`;
173
+ text += `import {MongoDBClient, MongoDBClientParams} from './client/mongodb';`;
174
+ text += `import {MongoDBAtomClient} from './atom/mongodb';`;
175
+ text += `import * as t from './types/index';`;
176
+ text += `\n`;
177
+ text += _generate_mongodb_interface_definitions(interfaces);
178
+ text += _generate_mongodb_client(interfaces);
146
179
  text += `\n`;
147
- text += _generate_interface_definitions(interfaces);
148
- text += `export class UranioClient extends Client{\n`;
149
- text += _generate_client_class_attributes(interfaces);
150
- text += ` constructor(params: ClientParams) {\n`;
180
+ return text;
181
+ }
182
+ function _generate_mysql_uranio_client_module_text(interfaces) {
183
+ let text = '';
184
+ text += `/**\n`;
185
+ text += ` *\n`;
186
+ text += ` * [Auto-generated module by "uranio generate" command]\n`;
187
+ text += ` *\n`;
188
+ text += ` * Uranio MySQLClient module\n`;
189
+ text += ` *\n`;
190
+ text += ` */\n`;
191
+ text += `\n`;
192
+ text += `import {MongoDBClient, MongoDBClientParams} from './client/mongodb';`;
193
+ text += `import {MySQLClient, MySQLClientParams} from './client/mysql';`;
194
+ text += `\n`;
195
+ text += `import {MongoDBAtomClient} from './atom/mongodb';`;
196
+ text += `import {MySQLAtomClient} from './atom/mysql';`;
197
+ text += `\n`;
198
+ text += `import * as t from './types/index';`;
199
+ text += `\n`;
200
+ text += _generate_mysql_interface_definitions(interfaces);
201
+ text += _generate_mysql_client(interfaces);
202
+ text += `\n`;
203
+ return text;
204
+ }
205
+ function _generate_mongodb_client(interfaces) {
206
+ let text = '';
207
+ text += `export class UranioMongoDBClient extends MongoDBClient{\n`;
208
+ text += _generate_mongodb_client_attributes(interfaces);
209
+ text += ` constructor(params: MongoDBClientParams) {\n`;
210
+ text += ` super(params);\n`;
211
+ text += _generate_mongodb_client_initialization(interfaces);
212
+ text += ` }\n`;
213
+ text += `}\n`;
214
+ return text;
215
+ }
216
+ function _generate_mysql_client(interfaces) {
217
+ let text = '';
218
+ text += `export class UranioMySQLClient extends MySQLClient{\n`;
219
+ text += _generate_mysql_client_attributes(interfaces);
220
+ text += ` constructor(params: MySQLClientParams) {\n`;
151
221
  text += ` super(params);\n`;
152
- text += _generate_client_initialization(interfaces);
222
+ text += _generate_mysql_client_initialization(interfaces);
153
223
  text += ` }\n`;
154
224
  text += `}\n`;
155
225
  return text;
156
226
  }
157
- function _generate_interface_definitions(interfaces) {
227
+ function _generate_mongodb_interface_definitions(interfaces) {
158
228
  let text = '';
159
229
  for (const [name, inter] of Object.entries(interfaces)) {
160
- text += `interface ${name} extends atom {\n`;
230
+ text += `interface ${name} extends t.mongodb_atom {\n`;
161
231
  if (!inter.properties) {
162
232
  text += `}\n`;
163
233
  text += `\n`;
@@ -171,19 +241,52 @@ function _generate_interface_definitions(interfaces) {
171
241
  }
172
242
  return text;
173
243
  }
174
- function _generate_client_class_attributes(interfaces) {
244
+ function _generate_mysql_interface_definitions(interfaces) {
245
+ let text = '';
246
+ for (const [name, inter] of Object.entries(interfaces)) {
247
+ text += `interface ${name} extends t.mysql_atom {\n`;
248
+ if (!inter.properties) {
249
+ text += `}\n`;
250
+ text += `\n`;
251
+ continue;
252
+ }
253
+ for (const [prop_name, prop] of Object.entries(inter.properties)) {
254
+ text += ` ${prop_name}: ${prop.primitive};\n`;
255
+ }
256
+ text += `}\n`;
257
+ text += `\n`;
258
+ }
259
+ return text;
260
+ }
261
+ function _generate_mongodb_client_attributes(interfaces) {
262
+ let text = '';
263
+ for (const [name, _inter] of Object.entries(interfaces)) {
264
+ let lc = _first_letter_lowercase(name);
265
+ text += ` public ${lc}: MongoDBAtomClient<${name}>;\n`;
266
+ }
267
+ return text;
268
+ }
269
+ function _generate_mongodb_client_initialization(interfaces) {
175
270
  let text = '';
176
271
  for (const [name, _inter] of Object.entries(interfaces)) {
177
272
  let lc = _first_letter_lowercase(name);
178
- text += ` public ${lc}: AtomClient<${name}>;\n`;
273
+ text += ` this.${lc} = new MongoDBAtomClient<${name}>(this.db, '${lc}');\n`;
179
274
  }
180
275
  return text;
181
276
  }
182
- function _generate_client_initialization(interfaces) {
277
+ function _generate_mysql_client_attributes(interfaces) {
183
278
  let text = '';
184
279
  for (const [name, _inter] of Object.entries(interfaces)) {
185
280
  let lc = _first_letter_lowercase(name);
186
- text += ` this.${lc} = new AtomClient<${name}>(this.db, '${lc}');\n`;
281
+ text += ` public ${lc}: MySQLAtomClient<${name}>;\n`;
282
+ }
283
+ return text;
284
+ }
285
+ function _generate_mysql_client_initialization(interfaces) {
286
+ let text = '';
287
+ for (const [name, _inter] of Object.entries(interfaces)) {
288
+ let lc = _first_letter_lowercase(name);
289
+ text += ` this.${lc} = new MySQLAtomClient<${name}>(this.db, '${lc}');\n`;
187
290
  }
188
291
  return text;
189
292
  }
@@ -193,4 +296,9 @@ function _first_letter_lowercase(str) {
193
296
  }
194
297
  return str.charAt(0).toLowerCase() + str.slice(1);
195
298
  }
299
+ function _debug_interfaces(uranio_extended_interfaces) {
300
+ for (let [key, _value] of Object.entries(uranio_extended_interfaces)) {
301
+ index_1.log.info(`Processing Interface: ${key}`);
302
+ }
303
+ }
196
304
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/generate/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/generate/index.ts"],"names":[],"mappings":"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"}
@@ -5,12 +5,18 @@
5
5
  * @packageDocumentation
6
6
  */
7
7
  type ObjectValue<T> = T[keyof T];
8
+ export declare const DATABASE: {
9
+ readonly MONGODB: "mongodb";
10
+ readonly MYSQL: "mysql";
11
+ };
12
+ export type Database = ObjectValue<typeof DATABASE>;
8
13
  export declare const COMMAND: {
9
14
  readonly GENERATE: "generate";
10
15
  readonly VERSION: "version";
11
16
  };
12
17
  export type Command = ObjectValue<typeof COMMAND>;
13
18
  export declare const FLAG: {
19
+ readonly DATABASE: "database";
14
20
  readonly ROOT: "root";
15
21
  readonly TSCONFIG_PATH: "tsconfig-path";
16
22
  readonly VERBOSE: "verbose";
package/dist/cli/types.js CHANGED
@@ -6,12 +6,17 @@
6
6
  * @packageDocumentation
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.FLAG = exports.COMMAND = void 0;
9
+ exports.FLAG = exports.COMMAND = exports.DATABASE = void 0;
10
+ exports.DATABASE = {
11
+ MONGODB: 'mongodb',
12
+ MYSQL: 'mysql',
13
+ };
10
14
  exports.COMMAND = {
11
15
  GENERATE: 'generate',
12
16
  VERSION: 'version',
13
17
  };
14
18
  exports.FLAG = {
19
+ DATABASE: 'database',
15
20
  ROOT: 'root',
16
21
  TSCONFIG_PATH: 'tsconfig-path',
17
22
  VERBOSE: 'verbose',
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIU,QAAA,OAAO,GAAG;IACrB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;CACV,CAAC;AAIE,QAAA,IAAI,GAAG;IAClB,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,eAAe;IAC9B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACV,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIU,QAAA,QAAQ,GAAG;IACtB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;CACN,CAAC;AAIE,QAAA,OAAO,GAAG;IACrB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;CACV,CAAC;AAIE,QAAA,IAAI,GAAG;IAClB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,eAAe;IAC9B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACV,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uranio",
3
- "version": "0.1.21",
3
+ "version": "0.1.23",
4
4
  "description": "Uranio is a type-safe ODM for MongoDB",
5
5
  "main": "dist/index.js",
6
6
  "repository": {
@@ -26,6 +26,7 @@ type FlagTypes = {
26
26
  };
27
27
 
28
28
  const flag_types: FlagTypes = {
29
+ 'database': 'string',
29
30
  'root': 'string',
30
31
  'tsconfig-path': 'string',
31
32
  'verbose': 'boolean',
@@ -25,6 +25,7 @@ import * as t from '../types';
25
25
 
26
26
  type GenerateParams = {
27
27
  root: string;
28
+ database: t.Database;
28
29
  tsconfig_path?: string;
29
30
  };
30
31
 
@@ -44,7 +45,9 @@ export async function generate(args: t.Arguments) {
44
45
  function _resolve_generate_params(args: t.Arguments): GenerateParams {
45
46
  const root_path = common.resolve_param_root(args);
46
47
  const tsconfig_path = _resolve_param_tsconfig_path(root_path, args);
48
+ const database = _resolve_param_database(args);
47
49
  return {
50
+ database,
48
51
  root: root_path,
49
52
  tsconfig_path,
50
53
  };
@@ -60,6 +63,23 @@ function _resolve_param_tsconfig_path(
60
63
  return `${root_path}/tsconfig.json`;
61
64
  }
62
65
 
66
+ function _resolve_param_database(args: t.Arguments): t.Database {
67
+ if (args.flags && utils.valid.string(args.flags?.['database'])) {
68
+ const db = args.flags['database'];
69
+ _assert_database(db);
70
+ return db;
71
+ }
72
+ return t.DATABASE.MONGODB;
73
+ }
74
+
75
+ function _assert_database(db: unknown): asserts db is t.Database {
76
+ if (!Object.keys(t.DATABASE).includes(db as string)) {
77
+ throw new Error(
78
+ `Invalid database flag value. Possible value are [${t.DATABASE}]`
79
+ );
80
+ }
81
+ }
82
+
63
83
  async function _copy_dot_uranio(params: GenerateParams) {
64
84
  log.spinner.text(`Coping dot uranio...`);
65
85
  const dot_path = `${params.root}/node_modules/uranio/.uranio`;
@@ -74,7 +94,10 @@ async function _copy_dot_uranio(params: GenerateParams) {
74
94
  async function _update_dot_uranio(params: GenerateParams) {
75
95
  log.spinner.text(`Updating dot uranio files...`);
76
96
  const uranio_extended_interfaces = _get_uranio_extended_interfaces(params);
77
- const text = _generate_uranio_client_module_text(uranio_extended_interfaces);
97
+ const text =
98
+ params.database === t.DATABASE.MYSQL
99
+ ? _generate_mysql_uranio_client_module_text(uranio_extended_interfaces)
100
+ : _generate_mongodb_uranio_client_module_text(uranio_extended_interfaces);
78
101
  const uranio_client_path = `${params.root}/node_modules/.uranio/src/client.ts`;
79
102
  fs.writeFileSync(uranio_client_path, text);
80
103
  log.debug(`Updated dot uranio files`);
@@ -130,13 +153,37 @@ function _get_uranio_extended_interfaces(params: GenerateParams) {
130
153
  return uranio_extended_interfaces;
131
154
  }
132
155
 
133
- function _generate_uranio_client_module_text(interfaces: plutonio.Interfaces) {
156
+ function _generate_mongodb_uranio_client_module_text(
157
+ interfaces: plutonio.Interfaces
158
+ ) {
159
+ let text = '';
160
+ text += `/**\n`;
161
+ text += ` *\n`;
162
+ text += ` * [Auto-generated module by "uranio generate" command]\n`;
163
+ text += ` *\n`;
164
+ text += ` * Uranio MongoDBClient module\n`;
165
+ text += ` *\n`;
166
+ text += ` */\n`;
167
+ text += `\n`;
168
+ text += `import {MongoDBClient, MongoDBClientParams} from './client/mongodb';`;
169
+ text += `import {MongoDBAtomClient} from './atom/mongodb';`;
170
+ text += `import * as t from './types/index';`;
171
+ text += `\n`;
172
+ text += _generate_mongodb_interface_definitions(interfaces);
173
+ text += _generate_mongodb_client(interfaces);
174
+ text += `\n`;
175
+ return text;
176
+ }
177
+
178
+ function _generate_mysql_uranio_client_module_text(
179
+ interfaces: plutonio.Interfaces
180
+ ) {
134
181
  let text = '';
135
182
  text += `/**\n`;
136
183
  text += ` *\n`;
137
184
  text += ` * [Auto-generated module by "uranio generate" command]\n`;
138
185
  text += ` *\n`;
139
- text += ` * UranioClient module\n`;
186
+ text += ` * Uranio MySQLClient module\n`;
140
187
  text += ` *\n`;
141
188
  text += ` */\n`;
142
189
  text += `\n`;
@@ -148,14 +195,13 @@ function _generate_uranio_client_module_text(interfaces: plutonio.Interfaces) {
148
195
  text += `\n`;
149
196
  text += `import * as t from './types/index';`;
150
197
  text += `\n`;
151
- text += _generate_interface_definitions(interfaces);
152
- text += _generate_mongodb_client(interfaces);
198
+ text += _generate_mysql_interface_definitions(interfaces);
153
199
  text += _generate_mysql_client(interfaces);
154
200
  text += `\n`;
155
201
  return text;
156
202
  }
157
203
 
158
- function _generate_mongodb_client(interfaces: plutonio.Interfaces){
204
+ function _generate_mongodb_client(interfaces: plutonio.Interfaces) {
159
205
  let text = '';
160
206
  text += `export class UranioMongoDBClient extends MongoDBClient{\n`;
161
207
  text += _generate_mongodb_client_attributes(interfaces);
@@ -167,7 +213,7 @@ function _generate_mongodb_client(interfaces: plutonio.Interfaces){
167
213
  return text;
168
214
  }
169
215
 
170
- function _generate_mysql_client(interfaces: plutonio.Interfaces){
216
+ function _generate_mysql_client(interfaces: plutonio.Interfaces) {
171
217
  let text = '';
172
218
  text += `export class UranioMySQLClient extends MySQLClient{\n`;
173
219
  text += _generate_mysql_client_attributes(interfaces);
@@ -179,10 +225,32 @@ function _generate_mysql_client(interfaces: plutonio.Interfaces){
179
225
  return text;
180
226
  }
181
227
 
182
- function _generate_interface_definitions(interfaces: plutonio.Interfaces) {
228
+ function _generate_mongodb_interface_definitions(
229
+ interfaces: plutonio.Interfaces
230
+ ) {
231
+ let text = '';
232
+ for (const [name, inter] of Object.entries(interfaces)) {
233
+ text += `interface ${name} extends t.mongodb_atom {\n`;
234
+ if (!inter.properties) {
235
+ text += `}\n`;
236
+ text += `\n`;
237
+ continue;
238
+ }
239
+ for (const [prop_name, prop] of Object.entries(inter.properties)) {
240
+ text += ` ${prop_name}: ${prop.primitive};\n`;
241
+ }
242
+ text += `}\n`;
243
+ text += `\n`;
244
+ }
245
+ return text;
246
+ }
247
+
248
+ function _generate_mysql_interface_definitions(
249
+ interfaces: plutonio.Interfaces
250
+ ) {
183
251
  let text = '';
184
252
  for (const [name, inter] of Object.entries(interfaces)) {
185
- text += `interface ${name} extends atom {\n`;
253
+ text += `interface ${name} extends t.mysql_atom {\n`;
186
254
  if (!inter.properties) {
187
255
  text += `}\n`;
188
256
  text += `\n`;
@@ -206,7 +274,9 @@ function _generate_mongodb_client_attributes(interfaces: plutonio.Interfaces) {
206
274
  return text;
207
275
  }
208
276
 
209
- function _generate_mongodb_client_initialization(interfaces: plutonio.Interfaces) {
277
+ function _generate_mongodb_client_initialization(
278
+ interfaces: plutonio.Interfaces
279
+ ) {
210
280
  let text = '';
211
281
  for (const [name, _inter] of Object.entries(interfaces)) {
212
282
  let lc = _first_letter_lowercase(name);
@@ -224,7 +294,9 @@ function _generate_mysql_client_attributes(interfaces: plutonio.Interfaces) {
224
294
  return text;
225
295
  }
226
296
 
227
- function _generate_mysql_client_initialization(interfaces: plutonio.Interfaces) {
297
+ function _generate_mysql_client_initialization(
298
+ interfaces: plutonio.Interfaces
299
+ ) {
228
300
  let text = '';
229
301
  for (const [name, _inter] of Object.entries(interfaces)) {
230
302
  let lc = _first_letter_lowercase(name);
@@ -240,8 +312,8 @@ function _first_letter_lowercase(str: string): string {
240
312
  return str.charAt(0).toLowerCase() + str.slice(1);
241
313
  }
242
314
 
243
- function _debug_interfaces(uranio_extended_interfaces: plutonio.Interfaces){
244
- for(let [key, _value] of Object.entries(uranio_extended_interfaces)){
315
+ function _debug_interfaces(uranio_extended_interfaces: plutonio.Interfaces) {
316
+ for (let [key, _value] of Object.entries(uranio_extended_interfaces)) {
245
317
  log.info(`Processing Interface: ${key}`);
246
318
  }
247
319
  }
package/src/cli/types.ts CHANGED
@@ -7,6 +7,13 @@
7
7
 
8
8
  type ObjectValue<T> = T[keyof T];
9
9
 
10
+ export const DATABASE = {
11
+ MONGODB: 'mongodb',
12
+ MYSQL: 'mysql',
13
+ } as const;
14
+
15
+ export type Database = ObjectValue<typeof DATABASE>;
16
+
10
17
  export const COMMAND = {
11
18
  GENERATE: 'generate',
12
19
  VERSION: 'version',
@@ -15,6 +22,7 @@ export const COMMAND = {
15
22
  export type Command = ObjectValue<typeof COMMAND>;
16
23
 
17
24
  export const FLAG = {
25
+ DATABASE: 'database',
18
26
  ROOT: 'root',
19
27
  TSCONFIG_PATH: 'tsconfig-path',
20
28
  VERBOSE: 'verbose',