ruch
Version:
Revolutionary React TypeScript CLI with hexagonal architecture & AI-powered development assistance. Create maintainable, scalable applications with domain-driven design and integrated AI tooling.
39 lines • 2.04 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createHttpClient = void 0;
const fs_extra_1 = __importDefault(require("fs-extra"));
const path_1 = __importDefault(require("path"));
const logger_1 = require("../utils/logger");
const http_client_1 = require("../templates/http-client");
const file_operations_1 = require("../utils/file-operations");
const logging_1 = require("../utils/logging");
const buildHttpClientFilePath = () => (0, file_operations_1.buildFilePath)(process.cwd(), 'src/lib/http-client.ts');
const logHttpClientGenerationSuccess = (log, targetPath) => {
(0, logging_1.logSuccess)(log, 'HTTP client generated successfully!');
(0, logging_1.logInfo)(log, 'Location: ' + targetPath);
(0, logging_1.logInfo)(log, '💡 You can now import it with: import { httpClient } from \'./lib/http-client\'');
};
const createHttpClient = async (fileSystem = fs_extra_1.default, log = logger_1.logger, getTemplate = http_client_1.getHttpClientTemplate) => {
const config = {
targetPath: buildHttpClientFilePath(),
template: getTemplate()
};
try {
const fileExists = await (0, file_operations_1.validateFileExists)(fileSystem, config.targetPath);
if (fileExists) {
(0, logging_1.logError)(log, 'HTTP client already exists at ' + config.targetPath);
return;
}
await (0, file_operations_1.createDirectory)(fileSystem, path_1.default.dirname(config.targetPath));
await (0, file_operations_1.writeFile)(fileSystem, config.targetPath, config.template);
logHttpClientGenerationSuccess(log, config.targetPath);
}
catch (error) {
(0, logging_1.logError)(log, `Error creating HTTP client: ${error instanceof Error ? error.message : 'Unknown error'}`);
}
};
exports.createHttpClient = createHttpClient;
//# sourceMappingURL=http-client.js.map