The-Last-Algorithms-Course-.../scripts/align-configs.js

38 lines
1.1 KiB
JavaScript

const fs = require("fs");
const path = require("path");
module.exports.package_json = function(config) {
const package_json = require("../package.json");
package_json.scripts.test = `jest ${config.dsa.join(" ")}`;
package_json.kata_stats = config.dsa.reduce((acc, ds) => {
if (!acc[ds]) {
acc[ds] = 0;
}
acc[ds]++;
return acc;
}, package_json.kata_stats || {});
fs.writeFileSync(
path.join(__dirname, "..", "package.json"),
JSON.stringify(package_json, null, 4));
}
module.exports.ts_config = function(set_to) {
const ts_config = require("../tsconfig.json");
ts_config.compilerOptions.paths["@code/*"] = [`${set_to}/*`];
fs.writeFileSync(
path.join(__dirname, "..", "tsconfig.json"),
JSON.stringify(ts_config, null, 4));
}
module.exports.jest = function(set_to) {
const jest = require("../.jest.config.json");
jest.moduleNameMapper["@code/(.*)"] = [`<rootDir>/src/${set_to}/$1`];
fs.writeFileSync(
path.join(__dirname, "..", ".jest.config.json"),
JSON.stringify(jest, null, 4));
}