@ts-dev-tools/core
Version:
TS dev tools Core
48 lines (46 loc) • 1.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.up = exports.MANAGED_CORE_VITEST_CONFIG = exports.VITEST_CONFIG_FILE_NAME = void 0;
const node_path_1 = require("node:path");
const FileService_1 = require("../../services/FileService");
const PackageJson_1 = require("../../services/PackageJson");
const PackageManagerService_1 = require("../../services/PackageManagerService");
exports.VITEST_CONFIG_FILE_NAME = "vitest.config.ts";
exports.MANAGED_CORE_VITEST_CONFIG = `import { defineConfig } from "vitest/config";
export default defineConfig({
test: {
coverage: {
include: ["src/**/*.{ts,tsx,js,jsx}"],
provider: "v8",
},
environment: "node",
globals: true,
},
});
`;
const up = async (absoluteProjectDir) => {
const packageManager = PackageManagerService_1.PackageManagerService.detectPackageManager(absoluteProjectDir);
const packageJson = PackageJson_1.PackageJson.fromDirPath(absoluteProjectDir);
const packageJsonContent = packageJson.getContent();
delete packageJsonContent.jest;
const scripts = {
...packageJsonContent.scripts,
test: "vitest run",
"test:ci": `${packageManager} run test:cov`,
"test:cov": "vitest run --coverage",
"test:watch": "vitest",
vitest: "vitest",
};
delete scripts.jest;
packageJsonContent.scripts = scripts;
packageJson.setContent(packageJsonContent);
putManagedVitestConfig(absoluteProjectDir, exports.MANAGED_CORE_VITEST_CONFIG);
};
exports.up = up;
function putManagedVitestConfig(absoluteProjectDir, managedContent) {
const vitestConfigFilePath = (0, node_path_1.join)(absoluteProjectDir, exports.VITEST_CONFIG_FILE_NAME);
if (FileService_1.FileService.fileExists(vitestConfigFilePath)) {
return;
}
FileService_1.FileService.putFileContent(vitestConfigFilePath, managedContent);
}