@tsed/cli
Version:
CLI to bootstrap your Ts.ED project
28 lines (27 loc) • 1.42 kB
JavaScript
import { __decorate } from "tslib";
import { dirname, join } from "node:path";
import { inject, Injectable, ProjectPackageJson } from "@tsed/cli-core";
import { Inject } from "@tsed/di";
import { ArchitectureConvention, ProjectConvention } from "../interfaces/index.js";
import { ProvidersInfoService } from "../services/ProvidersInfoService.js";
import { ClassNamePipe } from "./ClassNamePipe.js";
let OutputFilePathPipe = class OutputFilePathPipe {
constructor() {
this.providers = inject(ProvidersInfoService);
this.projectPackageJson = inject(ProjectPackageJson);
this.classNamePipe = inject(ClassNamePipe);
}
transform(options) {
options.format = options.format || this.projectPackageJson.preferences.convention || ProjectConvention.DEFAULT;
const featureDir = dirname(options.name);
if (options.type === "server" || this.projectPackageJson.preferences.architecture === ArchitectureConvention.FEATURE) {
return join(options.subDir || "", featureDir, this.classNamePipe.transform(options));
}
const baseDir = (options.baseDir || this.providers.get(options.type)?.baseDir || `${options.type}s`).split(":").at(-1);
return join(baseDir, options.subDir || "", featureDir, this.classNamePipe.transform(options));
}
};
OutputFilePathPipe = __decorate([
Injectable()
], OutputFilePathPipe);
export { OutputFilePathPipe };