@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
55 lines • 2.03 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = __importDefault(require("path"));
const fs_extra_1 = __importDefault(require("fs-extra"));
const SpruceError_1 = __importDefault(require("../errors/SpruceError"));
const tsConfigUtil = {
readConfig(dir) {
const source = dir;
const packagePath = path_1.default.join(source, 'tsconfig.json');
const contents = fs_extra_1.default.readFileSync(packagePath).toString();
try {
const parsed = JSON.parse(contents);
return parsed;
}
catch (err) {
throw new SpruceError_1.default({
code: 'FAILED_TO_IMPORT',
file: packagePath,
originalError: err,
});
}
},
setPathAlias(dir, alias, patterns) {
const contents = this.readConfig(dir);
const paths = contents.compilerOptions?.paths ?? {};
// Set new path
paths[alias] = patterns;
// Pass back to contents
if (!contents.compilerOptions) {
contents.compilerOptions = {};
}
contents.compilerOptions.paths = paths;
this.writeConfig(dir, contents);
},
writeConfig(dir, contents) {
const destination = path_1.default.join(dir, 'tsconfig.json');
fs_extra_1.default.outputFileSync(destination, JSON.stringify(contents, null, 2));
},
setCompilerOption(dir, key, value) {
const contents = this.readConfig(dir);
if (!contents.compilerOptions) {
contents.compilerOptions = {};
}
contents.compilerOptions[key] = value;
this.writeConfig(dir, contents);
},
isPathAliasSet(dir, path) {
return !!this.readConfig(dir).compilerOptions?.paths?.[path];
},
};
exports.default = tsConfigUtil;
//# sourceMappingURL=tsConfig.utility.js.map