@slingr/cli 0.0.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/README.md +320 -0
- package/bin/dev.cmd +3 -0
- package/bin/dev.js +5 -0
- package/bin/run.cmd +3 -0
- package/bin/run.js +5 -0
- package/dist/commands/cli-build.d.ts +9 -0
- package/dist/commands/cli-build.d.ts.map +1 -0
- package/dist/commands/cli-build.js +36 -0
- package/dist/commands/cli-build.js.map +1 -0
- package/dist/commands/create-app.d.ts +20 -0
- package/dist/commands/create-app.d.ts.map +1 -0
- package/dist/commands/create-app.js +246 -0
- package/dist/commands/create-app.js.map +1 -0
- package/dist/commands/ds.d.ts +28 -0
- package/dist/commands/ds.d.ts.map +1 -0
- package/dist/commands/ds.js +529 -0
- package/dist/commands/ds.js.map +1 -0
- package/dist/commands/gql.d.ts +22 -0
- package/dist/commands/gql.d.ts.map +1 -0
- package/dist/commands/gql.js +340 -0
- package/dist/commands/gql.js.map +1 -0
- package/dist/commands/infra/down.d.ts +13 -0
- package/dist/commands/infra/down.d.ts.map +1 -0
- package/dist/commands/infra/down.js +80 -0
- package/dist/commands/infra/down.js.map +1 -0
- package/dist/commands/infra/up.d.ts +13 -0
- package/dist/commands/infra/up.d.ts.map +1 -0
- package/dist/commands/infra/up.js +69 -0
- package/dist/commands/infra/up.js.map +1 -0
- package/dist/commands/infra/update.d.ts +14 -0
- package/dist/commands/infra/update.d.ts.map +1 -0
- package/dist/commands/infra/update.js +321 -0
- package/dist/commands/infra/update.js.map +1 -0
- package/dist/commands/run.d.ts +19 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +315 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/setup.d.ts +18 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +189 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/projectStructure.d.ts +10 -0
- package/dist/projectStructure.d.ts.map +1 -0
- package/dist/projectStructure.js +153 -0
- package/dist/projectStructure.js.map +1 -0
- package/dist/scripts/generate-schema.d.ts +10 -0
- package/dist/scripts/generate-schema.d.ts.map +1 -0
- package/dist/scripts/generate-schema.js +130 -0
- package/dist/scripts/generate-schema.js.map +1 -0
- package/dist/scripts/generate-schema.ts +143 -0
- package/dist/templates/.github/copilot-instructions.md.template +17 -0
- package/dist/templates/config/datasource.ts.template +9 -0
- package/dist/templates/config/jest.config.ts +30 -0
- package/dist/templates/config/jest.setup.ts +1 -0
- package/dist/templates/config/tsconfig.json.template +30 -0
- package/dist/templates/dataSources/mysql.ts.template +13 -0
- package/dist/templates/dataSources/postgres.ts.template +13 -0
- package/dist/templates/dataset-generator-script.ts.template +140 -0
- package/dist/templates/datasets/mysql-default/Address.jsonl.template +4 -0
- package/dist/templates/datasets/mysql-default/App.jsonl.template +5 -0
- package/dist/templates/datasets/mysql-default/Company.jsonl.template +4 -0
- package/dist/templates/datasets/mysql-default/Person.jsonl.template +3 -0
- package/dist/templates/datasets/postgres-default/Address.jsonl.template +4 -0
- package/dist/templates/datasets/postgres-default/App.jsonl.template +5 -0
- package/dist/templates/datasets/postgres-default/Company.jsonl.template +4 -0
- package/dist/templates/datasets/postgres-default/Person.jsonl.template +3 -0
- package/dist/templates/docs/app-description.md.template +34 -0
- package/dist/templates/gql/codegen.yml.template +25 -0
- package/dist/templates/gql/index.ts.template +24 -0
- package/dist/templates/gql/operations.graphql.template +30 -0
- package/dist/templates/package.json.template +38 -0
- package/dist/templates/prompt-analysis.md.template +111 -0
- package/dist/templates/prompt-script-generation.md.template +259 -0
- package/dist/templates/src/Address.ts.template +31 -0
- package/dist/templates/src/App.ts.template +61 -0
- package/dist/templates/src/Company.ts.template +48 -0
- package/dist/templates/src/Models.test.ts.template +655 -0
- package/dist/templates/src/Person.test.ts.template +289 -0
- package/dist/templates/src/Person.ts.template +105 -0
- package/dist/templates/src/actions/index.ts.template +12 -0
- package/dist/templates/src/index.ts +66 -0
- package/dist/templates/src/types/gql.d.ts.template +18 -0
- package/dist/templates/vscode/extensions.json +3 -0
- package/dist/templates/vscode/settings.json +11 -0
- package/dist/utils/datasourceParser.d.ts +12 -0
- package/dist/utils/datasourceParser.d.ts.map +1 -0
- package/dist/utils/datasourceParser.js +91 -0
- package/dist/utils/datasourceParser.js.map +1 -0
- package/dist/utils/jsonlLoader.d.ts +140 -0
- package/dist/utils/jsonlLoader.d.ts.map +1 -0
- package/dist/utils/jsonlLoader.js +583 -0
- package/dist/utils/jsonlLoader.js.map +1 -0
- package/dist/utils/model-analyzer.d.ts +86 -0
- package/dist/utils/model-analyzer.d.ts.map +1 -0
- package/dist/utils/model-analyzer.js +458 -0
- package/dist/utils/model-analyzer.js.map +1 -0
- package/dist/utils/portChecker.d.ts +36 -0
- package/dist/utils/portChecker.d.ts.map +1 -0
- package/dist/utils/portChecker.js +308 -0
- package/dist/utils/portChecker.js.map +1 -0
- package/dist/utils/synthetic-data-generator.d.ts +74 -0
- package/dist/utils/synthetic-data-generator.d.ts.map +1 -0
- package/dist/utils/synthetic-data-generator.js +443 -0
- package/dist/utils/synthetic-data-generator.js.map +1 -0
- package/oclif.manifest.json +435 -0
- package/package.json +118 -0
- package/src/templates/.github/copilot-instructions.md.template +17 -0
- package/src/templates/config/datasource.ts.template +9 -0
- package/src/templates/config/jest.config.ts +30 -0
- package/src/templates/config/jest.setup.ts +1 -0
- package/src/templates/config/tsconfig.json.template +30 -0
- package/src/templates/dataSources/mysql.ts.template +13 -0
- package/src/templates/dataSources/postgres.ts.template +13 -0
- package/src/templates/dataset-generator-script.ts.template +140 -0
- package/src/templates/datasets/mysql-default/Address.jsonl.template +4 -0
- package/src/templates/datasets/mysql-default/App.jsonl.template +5 -0
- package/src/templates/datasets/mysql-default/Company.jsonl.template +4 -0
- package/src/templates/datasets/mysql-default/Person.jsonl.template +3 -0
- package/src/templates/datasets/postgres-default/Address.jsonl.template +4 -0
- package/src/templates/datasets/postgres-default/App.jsonl.template +5 -0
- package/src/templates/datasets/postgres-default/Company.jsonl.template +4 -0
- package/src/templates/datasets/postgres-default/Person.jsonl.template +3 -0
- package/src/templates/docs/app-description.md.template +34 -0
- package/src/templates/gql/codegen.yml.template +25 -0
- package/src/templates/gql/index.ts.template +24 -0
- package/src/templates/gql/operations.graphql.template +30 -0
- package/src/templates/package.json.template +38 -0
- package/src/templates/prompt-analysis.md.template +111 -0
- package/src/templates/prompt-script-generation.md.template +259 -0
- package/src/templates/src/Address.ts.template +31 -0
- package/src/templates/src/App.ts.template +61 -0
- package/src/templates/src/Company.ts.template +48 -0
- package/src/templates/src/Models.test.ts.template +655 -0
- package/src/templates/src/Person.test.ts.template +289 -0
- package/src/templates/src/Person.ts.template +105 -0
- package/src/templates/src/actions/index.ts.template +12 -0
- package/src/templates/src/index.ts +66 -0
- package/src/templates/src/types/gql.d.ts.template +18 -0
- package/src/templates/vscode/extensions.json +3 -0
- package/src/templates/vscode/settings.json +11 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../src/commands/create-app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
export default class Ds extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
datasource: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
action: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
+
dataset: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
9
|
+
};
|
|
10
|
+
run(): Promise<void>;
|
|
11
|
+
private generateCode;
|
|
12
|
+
private ensureDatabaseDependencies;
|
|
13
|
+
private prepareEnvironment;
|
|
14
|
+
private loadDataset;
|
|
15
|
+
private resetDatasource;
|
|
16
|
+
private ensureDockerIsRunning;
|
|
17
|
+
private getComposeCommand;
|
|
18
|
+
private listComposeServices;
|
|
19
|
+
private collectComposeContainerIds;
|
|
20
|
+
private resolveDeclaredVolumes;
|
|
21
|
+
private deriveComposeProjectName;
|
|
22
|
+
private runComposeCommand;
|
|
23
|
+
/**
|
|
24
|
+
* Validate that Docker is running and PostgreSQL container is available
|
|
25
|
+
*/
|
|
26
|
+
private validateDockerInfrastructure;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=ds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ds.d.ts","sourceRoot":"","sources":["../../src/commands/ds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,aAAa,CAAC;AAQ5C,MAAM,CAAC,OAAO,OAAO,EAAG,SAAQ,OAAO;IACrC,MAAM,CAAC,WAAW,SAAqC;IAEvD,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,IAAI;;;;MAeT;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAkCZ,YAAY;YAMZ,0BAA0B;YA2D1B,kBAAkB;YAyBlB,WAAW;YAyKX,eAAe;IAiF7B,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,0BAA0B;YAyBpB,sBAAsB;IAwCpC,OAAO,CAAC,wBAAwB;IAShC,OAAO,CAAC,iBAAiB;IAazB;;OAEG;YACW,4BAA4B;CAiD3C"}
|
|
@@ -0,0 +1,529 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const core_1 = require("@oclif/core");
|
|
40
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
41
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
42
|
+
const child_process_1 = require("child_process");
|
|
43
|
+
const yaml = __importStar(require("js-yaml"));
|
|
44
|
+
const jsonlLoader_js_1 = require("../utils/jsonlLoader.js");
|
|
45
|
+
class Ds extends core_1.Command {
|
|
46
|
+
static description = 'Manage datasets for datasources';
|
|
47
|
+
static examples = [
|
|
48
|
+
'slingr ds postgres load',
|
|
49
|
+
'slingr ds postgres load custom-dataset',
|
|
50
|
+
'slingr ds mysql load default',
|
|
51
|
+
'slingr ds postgres reset',
|
|
52
|
+
];
|
|
53
|
+
static args = {
|
|
54
|
+
datasource: core_1.Args.string({
|
|
55
|
+
description: 'Name of the datasource to manage',
|
|
56
|
+
required: true,
|
|
57
|
+
}),
|
|
58
|
+
action: core_1.Args.string({
|
|
59
|
+
description: 'Action to perform (load or reset)',
|
|
60
|
+
options: ['load', 'reset'],
|
|
61
|
+
required: true,
|
|
62
|
+
}),
|
|
63
|
+
dataset: core_1.Args.string({
|
|
64
|
+
description: 'Name of the dataset to load (defaults to "default")',
|
|
65
|
+
required: false,
|
|
66
|
+
default: 'default',
|
|
67
|
+
}),
|
|
68
|
+
};
|
|
69
|
+
async run() {
|
|
70
|
+
const { args } = await this.parse(Ds);
|
|
71
|
+
const { datasource, action, dataset } = args;
|
|
72
|
+
// Verify we're in a Slingr app directory
|
|
73
|
+
const pkgPath = node_path_1.default.join(process.cwd(), 'package.json');
|
|
74
|
+
if (!(await fs_extra_1.default.pathExists(pkgPath))) {
|
|
75
|
+
this.error("Not in a Slingr application directory. Please run this command from your app's root directory.");
|
|
76
|
+
}
|
|
77
|
+
// Check if the datasource exists
|
|
78
|
+
const dsPath = node_path_1.default.join(process.cwd(), 'src', 'dataSources', `${datasource}.ts`);
|
|
79
|
+
if (!(await fs_extra_1.default.pathExists(dsPath))) {
|
|
80
|
+
this.error(`Datasource ${datasource} not found. Expected file at: ${dsPath}`);
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
switch (action) {
|
|
84
|
+
case 'load':
|
|
85
|
+
// Prepare the environment before loading
|
|
86
|
+
await this.prepareEnvironment();
|
|
87
|
+
await this.loadDataset(datasource, dataset);
|
|
88
|
+
break;
|
|
89
|
+
case 'reset':
|
|
90
|
+
await this.resetDatasource(datasource);
|
|
91
|
+
break;
|
|
92
|
+
default:
|
|
93
|
+
this.error(`Unknown action: ${action}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
this.error(`Failed to ${action} dataset: ${error.message}`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
async generateCode() {
|
|
101
|
+
// Compile TypeScript code
|
|
102
|
+
this.log('Compiling TypeScript code...');
|
|
103
|
+
(0, child_process_1.execSync)('npm run build', { stdio: 'inherit' });
|
|
104
|
+
}
|
|
105
|
+
async ensureDatabaseDependencies(datasource) {
|
|
106
|
+
// Get the datasource type by reading the datasource file
|
|
107
|
+
const dsPath = node_path_1.default.join(process.cwd(), 'src', 'dataSources', `${datasource}.ts`);
|
|
108
|
+
const content = await fs_extra_1.default.readFile(dsPath, 'utf-8');
|
|
109
|
+
// Extract database type from the configuration
|
|
110
|
+
const typeMatch = content.match(/type:\s*['"]([^'"]+)['"]/);
|
|
111
|
+
if (!typeMatch) {
|
|
112
|
+
this.log('Could not determine database type from datasource configuration');
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
let dbType = typeMatch[1].toLowerCase();
|
|
116
|
+
if (dbType === 'postgresql') {
|
|
117
|
+
dbType = 'postgres';
|
|
118
|
+
}
|
|
119
|
+
// Check package.json for required dependencies
|
|
120
|
+
const packageJsonPath = node_path_1.default.join(process.cwd(), 'package.json');
|
|
121
|
+
const packageJson = await fs_extra_1.default.readJSON(packageJsonPath);
|
|
122
|
+
const dependencies = {
|
|
123
|
+
...packageJson.dependencies,
|
|
124
|
+
...packageJson.devDependencies,
|
|
125
|
+
};
|
|
126
|
+
let packageToInstall = null;
|
|
127
|
+
// Determine which package is needed based on database type
|
|
128
|
+
switch (dbType) {
|
|
129
|
+
case 'mysql':
|
|
130
|
+
if (!dependencies['mysql2'] && !dependencies['mysql']) {
|
|
131
|
+
packageToInstall = 'mysql2';
|
|
132
|
+
}
|
|
133
|
+
break;
|
|
134
|
+
case 'postgres':
|
|
135
|
+
if (!dependencies['pg']) {
|
|
136
|
+
packageToInstall = 'pg';
|
|
137
|
+
}
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
// Install the required package if missing
|
|
141
|
+
if (packageToInstall) {
|
|
142
|
+
this.log(`Installing required database driver: ${packageToInstall}`);
|
|
143
|
+
try {
|
|
144
|
+
(0, child_process_1.execSync)(`npm install ${packageToInstall}`, {
|
|
145
|
+
stdio: 'inherit',
|
|
146
|
+
cwd: process.cwd(),
|
|
147
|
+
});
|
|
148
|
+
this.log(`Successfully installed ${packageToInstall}`);
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
this.error(`Failed to install ${packageToInstall}: ${error.message}`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
this.log(`Database driver for ${dbType} is already installed`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
async prepareEnvironment() {
|
|
159
|
+
// Check if we have package.json with slingr-framework dependency
|
|
160
|
+
const packageJsonPath = node_path_1.default.join(process.cwd(), 'package.json');
|
|
161
|
+
const packageJson = await fs_extra_1.default.readJSON(packageJsonPath);
|
|
162
|
+
if (!packageJson.dependencies?.['slingr-framework']) {
|
|
163
|
+
this.error('This directory does not contain a Slingr application.');
|
|
164
|
+
}
|
|
165
|
+
// Check if node_modules exists, if not tell user to install dependencies
|
|
166
|
+
const nodeModulesPath = node_path_1.default.join(process.cwd(), 'node_modules');
|
|
167
|
+
if (!(await fs_extra_1.default.pathExists(nodeModulesPath))) {
|
|
168
|
+
this.error('Dependencies not found. Please run "npm install" first to install the required dependencies.');
|
|
169
|
+
}
|
|
170
|
+
// Check if slingr-framework is specifically installed
|
|
171
|
+
const frameworkPath = node_path_1.default.join(nodeModulesPath, 'slingr-framework');
|
|
172
|
+
if (!(await fs_extra_1.default.pathExists(frameworkPath))) {
|
|
173
|
+
this.error('slingr-framework not found in node_modules. Please run "npm install" to install dependencies.');
|
|
174
|
+
}
|
|
175
|
+
// Generate code
|
|
176
|
+
await this.generateCode();
|
|
177
|
+
}
|
|
178
|
+
async loadDataset(datasource, dataset) {
|
|
179
|
+
this.log(`Loading dataset '${dataset}' into datasource '${datasource}'...`);
|
|
180
|
+
// Check if the dataset directory exists using the convention: dataSourceName-datasetName
|
|
181
|
+
const datasetPath = node_path_1.default.join(process.cwd(), 'src', 'datasets', `${datasource}-${dataset}`);
|
|
182
|
+
if (!(await fs_extra_1.default.pathExists(datasetPath))) {
|
|
183
|
+
this.error(`Dataset not found at: ${datasetPath}`);
|
|
184
|
+
}
|
|
185
|
+
// Initialize the JSONL loader
|
|
186
|
+
const loader = new jsonlLoader_js_1.JsonlDatasetLoader();
|
|
187
|
+
// Path to the compiled JavaScript files
|
|
188
|
+
const distPath = node_path_1.default.join(process.cwd(), 'dist');
|
|
189
|
+
// Auto-discover models from compiled JS files
|
|
190
|
+
const modelMap = await (0, jsonlLoader_js_1.discoverModels)(distPath);
|
|
191
|
+
if (Object.keys(modelMap).length === 0) {
|
|
192
|
+
this.error('No models found. Please ensure your models are compiled (run npm run build) and extend BaseModel.');
|
|
193
|
+
}
|
|
194
|
+
this.log(`Discovered ${Object.keys(modelMap).length} models:`, Object.keys(modelMap));
|
|
195
|
+
// Load dataset using the new JSONL loader
|
|
196
|
+
const loadResults = await loader.loadDataset({
|
|
197
|
+
datasetPath,
|
|
198
|
+
modelMap,
|
|
199
|
+
validateRecords: true,
|
|
200
|
+
verbose: true,
|
|
201
|
+
});
|
|
202
|
+
if (loadResults.length === 0) {
|
|
203
|
+
this.error('No compatible JSONL files found or no models matched the file names.');
|
|
204
|
+
}
|
|
205
|
+
// Import the datasource module from compiled JS
|
|
206
|
+
const dsModulePath = node_path_1.default.join(process.cwd(), 'dist', 'dataSources', `${datasource}.js`);
|
|
207
|
+
const dsModule = require(dsModulePath);
|
|
208
|
+
// Try different possible export names
|
|
209
|
+
let dsConfig = dsModule[`${datasource}`];
|
|
210
|
+
if (!dsConfig) {
|
|
211
|
+
dsConfig = dsModule[`mainDs`];
|
|
212
|
+
}
|
|
213
|
+
if (!dsConfig) {
|
|
214
|
+
const availableExports = Object.keys(dsModule);
|
|
215
|
+
this.error(`Could not find datasource instance. Tried: '${datasource}', '${datasource}DataSource'. Available exports: ${availableExports.join(', ')} in ${dsModulePath}`);
|
|
216
|
+
}
|
|
217
|
+
// Validate Docker is running and PostgreSQL container is available
|
|
218
|
+
await this.validateDockerInfrastructure(datasource);
|
|
219
|
+
// Ensure the required database dependencies are installed
|
|
220
|
+
await this.ensureDatabaseDependencies(datasource);
|
|
221
|
+
// Initialize the datasource with its configuration
|
|
222
|
+
try {
|
|
223
|
+
this.log(`Attempting to connect to database: ${JSON.stringify(dsConfig.getOptions(), null, 2)}`);
|
|
224
|
+
await dsConfig.initialize();
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
const errorMessage = error.message;
|
|
228
|
+
this.log(`Connection failed with error: ${errorMessage}`);
|
|
229
|
+
// Check if docker-compose.yml exists
|
|
230
|
+
const dockerComposePath = node_path_1.default.join(process.cwd(), 'docker-compose.yml');
|
|
231
|
+
const hasDockerCompose = await fs_extra_1.default.pathExists(dockerComposePath);
|
|
232
|
+
// Helper function to check if error contains connection refused
|
|
233
|
+
const isConnectionRefused = (err) => {
|
|
234
|
+
// Check the main error
|
|
235
|
+
if (err.code === 'ECONNREFUSED') {
|
|
236
|
+
return true;
|
|
237
|
+
}
|
|
238
|
+
if (err.message?.includes('ECONNREFUSED')) {
|
|
239
|
+
return true;
|
|
240
|
+
}
|
|
241
|
+
if (err.message?.includes('connection refused')) {
|
|
242
|
+
return true;
|
|
243
|
+
}
|
|
244
|
+
// Check nested errors in AggregateError
|
|
245
|
+
if (err.errors && Array.isArray(err.errors)) {
|
|
246
|
+
return err.errors.some((nestedErr) => isConnectionRefused(nestedErr));
|
|
247
|
+
}
|
|
248
|
+
// Check cause property
|
|
249
|
+
if (err.cause) {
|
|
250
|
+
return isConnectionRefused(err.cause);
|
|
251
|
+
}
|
|
252
|
+
return false;
|
|
253
|
+
};
|
|
254
|
+
// Check for TypeORM initialization failures (usually connection issues)
|
|
255
|
+
if (errorMessage.includes('Failed to initialize TypeORM DataSource')) {
|
|
256
|
+
if (hasDockerCompose) {
|
|
257
|
+
this.error(`Cannot connect to database server. The database infrastructure exists but is not running.\n\nTo fix this, run one of the following commands:\n - slingr run (to start the full application with infrastructure)\n - docker-compose up -d (to start just the infrastructure services)`);
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
this.error(`Cannot connect to database server. The database infrastructure has not been set up yet.\n\nTo fix this, you have two options:\n\n1. Simple option:\n - slingr run (automatically generates infrastructure and starts the application)\n\n2. Step-by-step option:\n - slingr infra:update --all (to generate docker-compose.yml and infrastructure files)\n - Then run: slingr run OR docker-compose up -d`);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
// Check for connection refused errors
|
|
264
|
+
if (isConnectionRefused(error)) {
|
|
265
|
+
if (hasDockerCompose) {
|
|
266
|
+
this.error(`Cannot connect to database server. The database infrastructure exists but is not running.\n\nTo fix this, run one of the following commands:\n - slingr run (to start the full application with infrastructure)\n - docker-compose up -d (to start just the infrastructure services)`);
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
this.error(`Cannot connect to database server. The database infrastructure has not been set up yet.\n\nTo fix this, you have two options:\n\n1. Simple option:\n - slingr run (automatically generates infrastructure and starts the application)\n\n2. Step-by-step option:\n - slingr infra:update --all (to generate docker-compose.yml and infrastructure files)\n - Then run: slingr run OR docker-compose up -d`);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
// Check for database not found errors
|
|
273
|
+
if (errorMessage.includes('database') && errorMessage.includes('does not exist')) {
|
|
274
|
+
this.error(`Database infrastructure not found. The database server is not running or the database does not exist.\n\nTo fix this, run the following command:\n - slingr run (to start the full application with infrastructure)`);
|
|
275
|
+
}
|
|
276
|
+
// Re-throw other errors
|
|
277
|
+
throw error;
|
|
278
|
+
}
|
|
279
|
+
const dataSource = dsConfig.getTypeOrmDataSource();
|
|
280
|
+
if (!dataSource || !dataSource.isInitialized) {
|
|
281
|
+
this.error('DataSource failed to initialize');
|
|
282
|
+
}
|
|
283
|
+
this.log('DataSource initialized successfully');
|
|
284
|
+
// Process each load result using TypeORM repositories (database-agnostic)
|
|
285
|
+
try {
|
|
286
|
+
// Use the new generic loader method
|
|
287
|
+
await loader.loadDatasetToDatabase(loadResults, dsConfig, true);
|
|
288
|
+
// Print summary
|
|
289
|
+
const totalSuccess = loadResults.reduce((sum, r) => sum + r.successCount, 0);
|
|
290
|
+
const totalErrors = loadResults.reduce((sum, r) => sum + r.errorCount, 0);
|
|
291
|
+
this.log(`
|
|
292
|
+
🎉 Successfully loaded dataset '${dataset}' into datasource '${datasource}'`);
|
|
293
|
+
this.log(`📈 Summary: ${totalSuccess} records loaded, ${totalErrors} errors`);
|
|
294
|
+
}
|
|
295
|
+
catch (error) {
|
|
296
|
+
this.error(`Failed to load dataset: ${error.message}`);
|
|
297
|
+
}
|
|
298
|
+
finally {
|
|
299
|
+
// Clean up by closing the datasource connection
|
|
300
|
+
if (dataSource.isInitialized) {
|
|
301
|
+
// Add delay to ensure all operations complete
|
|
302
|
+
this.log('⏳ Finalizing database operations...');
|
|
303
|
+
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
304
|
+
await dataSource.destroy();
|
|
305
|
+
this.log('🔌 Database connection closed');
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
async resetDatasource(datasource) {
|
|
310
|
+
this.log(`Resetting datasource '${datasource}' infrastructure...`);
|
|
311
|
+
this.ensureDockerIsRunning();
|
|
312
|
+
const composeFile = node_path_1.default.join(process.cwd(), 'docker-compose.yml');
|
|
313
|
+
if (!(await fs_extra_1.default.pathExists(composeFile))) {
|
|
314
|
+
this.error(`Docker infrastructure not found. Missing docker-compose.yml file.\n\nTo fix this, run one of the following commands:\n - slingr infra:update --all (to generate infrastructure files)\n - slingr run (to automatically generate and start infrastructure)`);
|
|
315
|
+
}
|
|
316
|
+
const composeCommand = this.getComposeCommand();
|
|
317
|
+
const serviceName = `${datasource}-db`;
|
|
318
|
+
const cwd = process.cwd();
|
|
319
|
+
const services = this.listComposeServices(composeCommand, cwd);
|
|
320
|
+
if (!services.includes(serviceName)) {
|
|
321
|
+
this.error(`Service '${serviceName}' was not found in docker-compose.yml. Please ensure the datasource infrastructure has been generated.`);
|
|
322
|
+
}
|
|
323
|
+
let projectName;
|
|
324
|
+
const discoveredVolumes = new Set();
|
|
325
|
+
const containerIds = this.collectComposeContainerIds(composeCommand, serviceName, cwd);
|
|
326
|
+
for (const id of containerIds) {
|
|
327
|
+
try {
|
|
328
|
+
const inspectRaw = (0, child_process_1.execSync)(`docker inspect ${id}`, { encoding: 'utf8', stdio: 'pipe' });
|
|
329
|
+
const [inspectData] = JSON.parse(inspectRaw);
|
|
330
|
+
const containerProject = inspectData?.Config?.Labels?.['com.docker.compose.project'];
|
|
331
|
+
if (containerProject && !projectName) {
|
|
332
|
+
projectName = containerProject;
|
|
333
|
+
}
|
|
334
|
+
if (Array.isArray(inspectData?.Mounts)) {
|
|
335
|
+
for (const mount of inspectData.Mounts) {
|
|
336
|
+
if (mount?.Type === 'volume' && mount?.Name) {
|
|
337
|
+
discoveredVolumes.add(mount.Name);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
catch (error) {
|
|
343
|
+
this.warn(`Could not inspect container ${id}: ${error.message}`);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
const declaredVolumes = await this.resolveDeclaredVolumes(composeFile, serviceName, projectName);
|
|
347
|
+
for (const vol of declaredVolumes) {
|
|
348
|
+
discoveredVolumes.add(vol);
|
|
349
|
+
}
|
|
350
|
+
this.log(`Stopping service '${serviceName}'...`);
|
|
351
|
+
this.runComposeCommand(composeCommand, `stop ${serviceName}`, cwd, true);
|
|
352
|
+
this.log(`Removing containers for '${serviceName}'...`);
|
|
353
|
+
this.runComposeCommand(composeCommand, `rm -f ${serviceName}`, cwd, true);
|
|
354
|
+
if (discoveredVolumes.size > 0) {
|
|
355
|
+
this.log('Removing associated volumes...');
|
|
356
|
+
for (const volumeName of discoveredVolumes) {
|
|
357
|
+
try {
|
|
358
|
+
(0, child_process_1.execSync)(`docker volume rm ${volumeName}`, { stdio: 'inherit' });
|
|
359
|
+
}
|
|
360
|
+
catch (error) {
|
|
361
|
+
this.warn(`Could not remove volume ${volumeName}: ${error.message}`);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
else {
|
|
366
|
+
this.log('No named volumes detected for this datasource. Skipping volume removal.');
|
|
367
|
+
}
|
|
368
|
+
this.log(`Starting service '${serviceName}'...`);
|
|
369
|
+
this.runComposeCommand(composeCommand, `up -d ${serviceName}`, cwd);
|
|
370
|
+
await this.validateDockerInfrastructure(datasource);
|
|
371
|
+
this.log(`✅ Datasource '${datasource}' has been reset successfully.`);
|
|
372
|
+
}
|
|
373
|
+
ensureDockerIsRunning() {
|
|
374
|
+
try {
|
|
375
|
+
(0, child_process_1.execSync)('docker info', { stdio: 'pipe' });
|
|
376
|
+
}
|
|
377
|
+
catch (error) {
|
|
378
|
+
this.error(`Docker is not running. Please start Docker Desktop before running dataset commands.\n\nThe dataset command requires Docker to run the PostgreSQL infrastructure.`);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
getComposeCommand() {
|
|
382
|
+
try {
|
|
383
|
+
(0, child_process_1.execSync)('docker compose version', { stdio: 'pipe' });
|
|
384
|
+
return 'docker compose';
|
|
385
|
+
}
|
|
386
|
+
catch {
|
|
387
|
+
try {
|
|
388
|
+
(0, child_process_1.execSync)('docker-compose --version', { stdio: 'pipe' });
|
|
389
|
+
return 'docker-compose';
|
|
390
|
+
}
|
|
391
|
+
catch {
|
|
392
|
+
this.error('Docker Compose is not installed. Please install Docker Compose to manage infrastructure services.');
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
return 'docker compose';
|
|
396
|
+
}
|
|
397
|
+
listComposeServices(composeCommand, cwd) {
|
|
398
|
+
try {
|
|
399
|
+
const output = (0, child_process_1.execSync)(`${composeCommand} config --services`, {
|
|
400
|
+
cwd,
|
|
401
|
+
encoding: 'utf8',
|
|
402
|
+
stdio: 'pipe',
|
|
403
|
+
});
|
|
404
|
+
return output
|
|
405
|
+
.split(/\r?\n/)
|
|
406
|
+
.map(line => line.trim())
|
|
407
|
+
.filter(line => line.length > 0);
|
|
408
|
+
}
|
|
409
|
+
catch (error) {
|
|
410
|
+
this.error(`Could not read docker-compose services. Ensure Docker Compose is installed correctly.\n${error.message}`);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
collectComposeContainerIds(composeCommand, serviceName, cwd) {
|
|
414
|
+
const ids = new Set();
|
|
415
|
+
const attempts = [`${composeCommand} ps -q ${serviceName}`, `${composeCommand} ps -a -q ${serviceName}`];
|
|
416
|
+
for (const command of attempts) {
|
|
417
|
+
try {
|
|
418
|
+
const result = (0, child_process_1.execSync)(command, {
|
|
419
|
+
cwd,
|
|
420
|
+
encoding: 'utf8',
|
|
421
|
+
stdio: 'pipe',
|
|
422
|
+
});
|
|
423
|
+
for (const id of result.split(/\r?\n/).map(line => line.trim())) {
|
|
424
|
+
if (id) {
|
|
425
|
+
ids.add(id);
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
catch {
|
|
430
|
+
// Ignore failures in ps commands; service may not have containers yet
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
return Array.from(ids);
|
|
434
|
+
}
|
|
435
|
+
async resolveDeclaredVolumes(composeFile, serviceName, projectName) {
|
|
436
|
+
try {
|
|
437
|
+
const composeContent = await fs_extra_1.default.readFile(composeFile, 'utf8');
|
|
438
|
+
const composeSpec = yaml.load(composeContent);
|
|
439
|
+
const serviceSpec = composeSpec?.services?.[serviceName];
|
|
440
|
+
if (!serviceSpec || !Array.isArray(serviceSpec.volumes)) {
|
|
441
|
+
return [];
|
|
442
|
+
}
|
|
443
|
+
const declaredVolumeNames = new Set();
|
|
444
|
+
for (const entry of serviceSpec.volumes) {
|
|
445
|
+
if (typeof entry === 'string') {
|
|
446
|
+
const source = entry.split(':')[0]?.trim();
|
|
447
|
+
if (source && !source.startsWith('./') && !source.includes('/') && !source.includes('\\')) {
|
|
448
|
+
declaredVolumeNames.add(source);
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
else if (entry && typeof entry === 'object' && entry.source) {
|
|
452
|
+
declaredVolumeNames.add(String(entry.source));
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
if (declaredVolumeNames.size === 0) {
|
|
456
|
+
return [];
|
|
457
|
+
}
|
|
458
|
+
const resolvedProject = projectName ?? this.deriveComposeProjectName();
|
|
459
|
+
return Array.from(declaredVolumeNames).map(name => `${resolvedProject}_${name}`);
|
|
460
|
+
}
|
|
461
|
+
catch (error) {
|
|
462
|
+
this.warn(`Could not parse docker-compose.yml for volume information: ${error.message}`);
|
|
463
|
+
return [];
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
deriveComposeProjectName() {
|
|
467
|
+
const baseName = node_path_1.default.basename(process.cwd()).trim();
|
|
468
|
+
const sanitized = baseName
|
|
469
|
+
.toLowerCase()
|
|
470
|
+
.replace(/[^0-9a-z_.-]+/g, '-')
|
|
471
|
+
.replace(/^-+|-+$/g, '');
|
|
472
|
+
return sanitized || 'default';
|
|
473
|
+
}
|
|
474
|
+
runComposeCommand(composeCommand, args, cwd, allowFailure = false) {
|
|
475
|
+
try {
|
|
476
|
+
(0, child_process_1.execSync)(`${composeCommand} ${args}`, {
|
|
477
|
+
cwd,
|
|
478
|
+
stdio: 'inherit',
|
|
479
|
+
});
|
|
480
|
+
}
|
|
481
|
+
catch (error) {
|
|
482
|
+
if (!allowFailure) {
|
|
483
|
+
throw error;
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
/**
|
|
488
|
+
* Validate that Docker is running and PostgreSQL container is available
|
|
489
|
+
*/
|
|
490
|
+
async validateDockerInfrastructure(datasource) {
|
|
491
|
+
// Check if Docker is running
|
|
492
|
+
try {
|
|
493
|
+
(0, child_process_1.execSync)('docker info', { stdio: 'pipe' });
|
|
494
|
+
}
|
|
495
|
+
catch (error) {
|
|
496
|
+
this.error(`Docker is not running. Please start Docker Desktop before running dataset commands.\n\nThe dataset command requires Docker to run the PostgreSQL infrastructure.`);
|
|
497
|
+
}
|
|
498
|
+
// Check if docker-compose.yml exists
|
|
499
|
+
const dockerComposePath = node_path_1.default.join(process.cwd(), 'docker-compose.yml');
|
|
500
|
+
if (!(await fs_extra_1.default.pathExists(dockerComposePath))) {
|
|
501
|
+
this.error(`Docker infrastructure not found. Missing docker-compose.yml file.\n\nTo fix this, run one of the following commands:\n - slingr infra:update --all (to generate infrastructure files)\n - slingr run (to automatically generate and start infrastructure)`);
|
|
502
|
+
}
|
|
503
|
+
// Check if PostgreSQL container is running
|
|
504
|
+
const serviceName = `${datasource}-db`; // Docker service name format
|
|
505
|
+
try {
|
|
506
|
+
const result = (0, child_process_1.execSync)(`docker-compose ps -q ${serviceName}`, {
|
|
507
|
+
stdio: 'pipe',
|
|
508
|
+
encoding: 'utf8',
|
|
509
|
+
});
|
|
510
|
+
if (!result.trim()) {
|
|
511
|
+
this.error(`PostgreSQL container '${serviceName}' is not running.\n\nTo fix this, run one of the following commands:\n - slingr run (to start the full application with infrastructure)\n - docker-compose up -d ${serviceName} (to start just the PostgreSQL service)`);
|
|
512
|
+
}
|
|
513
|
+
// Verify the container is actually running (not just exists)
|
|
514
|
+
const statusResult = (0, child_process_1.execSync)(`docker-compose ps ${serviceName}`, {
|
|
515
|
+
stdio: 'pipe',
|
|
516
|
+
encoding: 'utf8',
|
|
517
|
+
});
|
|
518
|
+
if (!statusResult.includes('Up')) {
|
|
519
|
+
this.error(`PostgreSQL container '${serviceName}' exists but is not running.\n\nTo fix this, run one of the following commands:\n - slingr run (to start the full application with infrastructure)\n - docker-compose up -d ${serviceName} (to start just the PostgreSQL service)`);
|
|
520
|
+
}
|
|
521
|
+
this.log(`✅ Docker infrastructure validated: PostgreSQL container '${serviceName}' is running`);
|
|
522
|
+
}
|
|
523
|
+
catch (error) {
|
|
524
|
+
this.error(`Could not verify PostgreSQL container status.\n\nTo fix this, run one of the following commands:\n - slingr run (to start the full application with infrastructure)\n - docker-compose up -d (to start all infrastructure services)`);
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
exports.default = Ds;
|
|
529
|
+
//# sourceMappingURL=ds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ds.js","sourceRoot":"","sources":["../../src/commands/ds.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
export default class Gql extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
action: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
static flags: {
|
|
9
|
+
'no-exit': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
};
|
|
11
|
+
run(): Promise<void>;
|
|
12
|
+
private prepareEnvironment;
|
|
13
|
+
private compileForSchemaGeneration;
|
|
14
|
+
private generateSchema;
|
|
15
|
+
private generateSDK;
|
|
16
|
+
private ensureCodegenDependencies;
|
|
17
|
+
private createCodegenConfig;
|
|
18
|
+
private createBarrelExport;
|
|
19
|
+
private setupModuleAlias;
|
|
20
|
+
private removeTemporaryTypeDeclaration;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=gql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gql.d.ts","sourceRoot":"","sources":["../../src/commands/gql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAKnD,MAAM,CAAC,OAAO,OAAO,GAAI,SAAQ,OAAO;IACtC,MAAM,CAAC,WAAW,SAAiE;IAEnF,MAAM,CAAC,QAAQ,WAAqG;IAEpH,MAAM,CAAC,IAAI;;MAMT;IAEF,MAAM,CAAC,KAAK;;MAKV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAgCZ,kBAAkB;YAoBlB,0BAA0B;YAqE1B,cAAc;YAqCd,WAAW;YAgDX,yBAAyB;YAgCzB,mBAAmB;YAsBnB,kBAAkB;YAgClB,gBAAgB;YA+ChB,8BAA8B;CAoB7C"}
|