pcf-scripts
Version:
This package contains a module for building PowerApps Component Framework (PCF) controls. See project homepage how to install.
79 lines (77 loc) • 3.1 kB
JavaScript
;
// Copyright (C) Microsoft Corporation. All rights reserved.
Object.defineProperty(exports, "__esModule", { value: true });
exports.EslintValidateTask = exports.ValidateManifestTask = exports.ValidateSourceTask = void 0;
const path = require("node:path");
const diagnosticMessages_generated_1 = require("../diagnosticMessages.generated");
const eslintValidator_1 = require("../eslintValidator");
const locale_1 = require("../generated/locale");
const manifestSchemaValidator_1 = require("../manifestSchemaValidator");
const sourceCodeValidator_1 = require("../sourceCodeValidator");
class ValidateSourceTask {
constructor() {
this._options = {};
}
getDescription() {
return (0, locale_1.translate)(diagnosticMessages_generated_1.strings.task_validate_control_source.key);
}
setOptions(options) {
this._options = { ...this._options, ...options };
}
run(context) {
return context.mapControls((control) => {
const codePath = path.resolve(control.getControlPath(), control.getCodeRelativePath());
if (!(0, sourceCodeValidator_1.ValidateCode)(context.getDiagnostic(), codePath, control.getControlName())) {
return Promise.reject(new Error());
}
return Promise.resolve();
});
}
}
exports.ValidateSourceTask = ValidateSourceTask;
class ValidateManifestTask {
constructor() {
this._options = {};
}
getDescription() {
return (0, locale_1.translate)(diagnosticMessages_generated_1.strings.task_validate_manifest.key);
}
setOptions(options) {
this._options = { ...this._options, ...options };
}
run(context) {
return context.mapControls((control) => {
const validator = new manifestSchemaValidator_1.ManifestSchemaValidator(control.getParsedManifest(), context.getDiagnostic());
validator.validateManifest();
if (validator.diag.hasErrors()) {
return Promise.reject(new Error());
}
return Promise.resolve();
});
}
}
exports.ValidateManifestTask = ValidateManifestTask;
class EslintValidateTask {
constructor(fix = false, isBuildTask = false) {
this._options = {};
this._fix = fix;
this._isBuildTask = isBuildTask;
}
getDescription() {
return (0, locale_1.translate)(diagnosticMessages_generated_1.strings.task_validate_eslint.key);
}
setOptions(options) {
this._options = { ...this._options, ...options };
}
run(context) {
if (context.getSkipBuildLinting() && this._isBuildTask) {
console.log((0, locale_1.translate)(diagnosticMessages_generated_1.strings.task_skip_build_validate_eslint.key));
return Promise.resolve();
}
return context.mapControls((control) => {
return (0, eslintValidator_1.EslintValidate)(context.getDiagnostic(), control.getControlName(), this._fix);
});
}
}
exports.EslintValidateTask = EslintValidateTask;
//# sourceMappingURL=validateTask.js.map