work to update init to be package focused

Signed-off-by: Aramis <sennyeyaramis@gmail.com>
This commit is contained in:
Aramis
2024-01-23 10:09:09 -05:00
parent e16864039b
commit 9c1c15fe1b
2 changed files with 29 additions and 18 deletions
@@ -21,20 +21,23 @@ import { paths as cliPaths } from '../../../../lib/paths';
import { runner } from '../../../../lib/runner';
import chalk from 'chalk';
import { exec } from '../../../../lib/exec';
import { getPathToCurrentOpenApiSpec } from '../../../../lib/openapi/helpers';
const ROUTER_TEST_PATHS = [
'src/service/router.test.ts',
'src/service/createRouter.test.ts',
];
async function init(directoryPath: string) {
const openapiPath = join(directoryPath, YAML_SCHEMA_PATH);
if (!(await fs.pathExists(openapiPath))) {
async function init() {
try {
await getPathToCurrentOpenApiSpec();
} catch (err) {
throw new Error(
`You do not have an OpenAPI YAML file at ${openapiPath}. Please create one and retry this command. If you already have existing test cases for your router, see 'backstage-repo-tools package schema openapi test --update'`,
`OpenAPI.yaml not found in ${YAML_SCHEMA_PATH}. Please create one and retry this command.`,
);
}
const opticConfigFilePath = join(directoryPath, 'optic.yml');
const opticConfigFilePath = await getPathTo;
if (await fs.pathExists(opticConfigFilePath)) {
throw new Error(`This directory already has an optic.yml file. Exiting.`);
}
@@ -65,6 +68,12 @@ capture:
}
export default async function initCommand(paths: string[] = []) {
try {
await init();
} catch (err) {
console.log(chalk.red(`OpenAPI tooling initialization failed.`));
console.log(err.message);
}
const resultsList = await runner(paths, dir => init(dir), {
concurrencyLimit: 5,
});
@@ -72,12 +81,6 @@ export default async function initCommand(paths: string[] = []) {
let failed = false;
for (const { relativeDir, resultText } of resultsList) {
if (resultText) {
console.log();
console.log(
chalk.red(`Failed to initialize ${relativeDir} for OpenAPI commands.`),
);
console.log(resultText.trimStart());
failed = true;
}
}
+15 -7
View File
@@ -17,16 +17,24 @@
import { pathExists } from 'fs-extra';
import { paths } from '../paths';
import { YAML_SCHEMA_PATH } from './constants';
import { resolve } from 'path';
import { join, resolve } from 'path';
export const getPathToFile = async (directory: string, filename: string) => {
const path = resolve(directory, filename);
if (!(await pathExists(path))) {
throw new Error(`Could not find ${join(directory, filename)}.`);
}
return path;
};
export const getRelativePathToFile = async (filename: string) => {
return await getPathToFile(paths.targetDir, filename);
};
export const getPathToOpenApiSpec = async (directory: string) => {
const openapiPath = resolve(directory, YAML_SCHEMA_PATH);
if (!(await pathExists(openapiPath))) {
throw new Error(`Could not find ${YAML_SCHEMA_PATH}.`);
}
return openapiPath;
return await getPathToFile(directory, YAML_SCHEMA_PATH);
};
export const getPathToCurrentOpenApiSpec = async () => {
return await getPathToOpenApiSpec(paths.targetDir);
return await getRelativePathToFile(YAML_SCHEMA_PATH);
};