UNPKG

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
"use strict"; // 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