license-check-and-add
Version:
A tool to enable the checking, inserting and removal of licenses
85 lines • 3.91 kB
JavaScript
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConfigParser = exports.TrailingWhitespaceMode = void 0;
var fs = __importStar(require("fs-extra"));
var path = __importStar(require("path"));
var constants_1 = require("../constants");
var license_manager_1 = require("./license-manager");
var TrailingWhitespaceMode;
(function (TrailingWhitespaceMode) {
TrailingWhitespaceMode[TrailingWhitespaceMode["DEFAULT"] = 0] = "DEFAULT";
TrailingWhitespaceMode[TrailingWhitespaceMode["TRIM"] = 1] = "TRIM";
})(TrailingWhitespaceMode = exports.TrailingWhitespaceMode || (exports.TrailingWhitespaceMode = {}));
var REQUIRED_FIELDS = ['license'];
var ConfigParser = /** @class */ (function () {
function ConfigParser() {
}
ConfigParser.parse = function (filePath, mode, regexReplacements) {
var fileConfig = fs.readJSONSync(filePath);
for (var _i = 0, REQUIRED_FIELDS_1 = REQUIRED_FIELDS; _i < REQUIRED_FIELDS_1.length; _i++) {
var REQUIRED_FIELD = REQUIRED_FIELDS_1[_i];
if (!fileConfig.hasOwnProperty(REQUIRED_FIELD)) {
throw new Error('Missing required field in config: ' + REQUIRED_FIELD);
}
}
var config = {
defaultFormat: fileConfig.defaultFormat || constants_1.DEFAULT_FORMAT,
ignore: [],
ignoreDefaultIgnores: fileConfig.ignoreDefaultIgnores || false,
license: fs.readFileSync(path.resolve(process.cwd(), fileConfig.license)).toString(),
licenseFormats: fileConfig.licenseFormats || {},
trailingWhitespace: TrailingWhitespaceMode.DEFAULT,
};
if (!fileConfig.ignore) {
console.debug('No ignore specified. Using []');
config.ignore = [];
}
else {
config.ignore = fileConfig.ignore;
}
if (fileConfig.ignoreFile) {
config.ignoreFile = fileConfig.ignoreFile;
}
if (!fileConfig.defaultFormat) {
console.warn("No default format specified. Using " + JSON.stringify(constants_1.DEFAULT_FORMAT) + " as backup");
}
if (fileConfig.trailingWhitespace && fileConfig.trailingWhitespace.toUpperCase() === 'TRIM') {
config.trailingWhitespace = TrailingWhitespaceMode.TRIM;
}
if (fileConfig.output) {
config.output = path.resolve(process.cwd(), fileConfig.output);
}
if (fileConfig.regexIdentifier) {
config.regex = { identifier: fileConfig.regexIdentifier };
if (!regexReplacements && mode === license_manager_1.ManagementMode.INSERT) {
throw new Error('Must supply regexReplacements option when using regexIdentifier in config when in INSERT mode');
}
else if (regexReplacements) {
config.regex.replacements = regexReplacements;
}
}
return config;
};
return ConfigParser;
}());
exports.ConfigParser = ConfigParser;
//# sourceMappingURL=config-parser.js.map
;