UNPKG

projen

Version:

CDK for software projects

58 lines 6.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SonarqubeRustProperties = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const sonarqube_1 = require("./sonarqube"); const util_1 = require("../util"); /** * A SonarQube configuration preset for Rust projects. * * Provides sensible defaults for Rust analysis: * - `sonar.language` = `rust` * - `sonar.sources` = `src` * - `sonar.tests` = `tests` * - `sonar.sourceEncoding` = `UTF-8` * - `sonar.profile` = `Sonar Way` * - `sonar.scm.provider` = `git` * - Typical exclusions for `coverage`, test, and `target` dirs * - `sonar.rust.lcov.reportPaths` = `target/lcov.info` * - `sonar.rust.clippy.enabled` = `false` * - `sonar.rust.clippyReport.reportPaths` = `target/clippy.json` * * All defaults can be overridden via options. Nested options (e.g. `coverage`, * `rust`) are deep-merged with the defaults, so overriding one nested field * does not drop the other defaults in that subtree. * * @example * new SonarqubeRustProperties(project, { * projectKey: 'my-org_my-rust-project', * }); */ class SonarqubeRustProperties extends sonarqube_1.SonarqubeProperties { static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.sonarqube.SonarqubeRustProperties", version: "0.103.12" }; constructor(scope, options) { super(scope, (0, util_1.deepMerge)([ { language: "rust", sources: "src", tests: "tests", sourceEncoding: "UTF-8", profile: "Sonar Way", scm: { provider: "git" }, exclusions: ["**/coverage/**", "**/tests/**", "**/target/**"], coverage: { exclusions: ["**/tests/**", "**/target/**"], }, cpd: { exclusions: ["**/tests/**/*.json"] }, rust: { lcov: { reportPaths: ["target/lcov.info"] }, clippy: { enabled: false }, clippyReport: { reportPaths: ["target/clippy.json"] }, }, }, options, ])); } } exports.SonarqubeRustProperties = SonarqubeRustProperties; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zb25hcnF1YmUvcnVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsMkNBQWtEO0FBRWxELGtDQUFvQztBQVNwQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxNQUFhLHVCQUF3QixTQUFRLCtCQUFtQjs7SUFDOUQsWUFBWSxLQUFpQixFQUFFLE9BQXVDO1FBQ3BFLEtBQUssQ0FDSCxLQUFLLEVBQ0wsSUFBQSxnQkFBUyxFQUFDO1lBQ1I7Z0JBQ0UsUUFBUSxFQUFFLE1BQU07Z0JBQ2hCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLEtBQUssRUFBRSxPQUFPO2dCQUNkLGNBQWMsRUFBRSxPQUFPO2dCQUN2QixPQUFPLEVBQUUsV0FBVztnQkFDcEIsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtnQkFDeEIsVUFBVSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGNBQWMsQ0FBQztnQkFDN0QsUUFBUSxFQUFFO29CQUNSLFVBQVUsRUFBRSxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUM7aUJBQzVDO2dCQUNELEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLEVBQUU7Z0JBQzNDLElBQUksRUFBRTtvQkFDSixJQUFJLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO29CQUMzQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO29CQUMxQixZQUFZLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFO2lCQUN0RDthQUNGO1lBQ0QsT0FBTztTQUNSLENBQW1DLENBQ3JDLENBQUM7SUFDSixDQUFDOztBQTFCSCwwREEyQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgU29uYXJxdWJlUHJvcGVydGllcyB9IGZyb20gXCIuL3NvbmFycXViZVwiO1xuaW1wb3J0IHR5cGUgeyBTb25hcnF1YmVQcm9wZXJ0aWVzT3B0aW9ucyB9IGZyb20gXCIuL3NvbmFycXViZVwiO1xuaW1wb3J0IHsgZGVlcE1lcmdlIH0gZnJvbSBcIi4uL3V0aWxcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgU29uYXJxdWJlUnVzdFByb3BlcnRpZXNgLlxuICpcbiAqIEV4dGVuZHMgYmFzZSBvcHRpb25zIHdpdGggUnVzdC1zcGVjaWZpYyBkZWZhdWx0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTb25hcnF1YmVSdXN0UHJvcGVydGllc09wdGlvbnMgZXh0ZW5kcyBTb25hcnF1YmVQcm9wZXJ0aWVzT3B0aW9ucyB7fVxuXG4vKipcbiAqIEEgU29uYXJRdWJlIGNvbmZpZ3VyYXRpb24gcHJlc2V0IGZvciBSdXN0IHByb2plY3RzLlxuICpcbiAqIFByb3ZpZGVzIHNlbnNpYmxlIGRlZmF1bHRzIGZvciBSdXN0IGFuYWx5c2lzOlxuICogLSBgc29uYXIubGFuZ3VhZ2VgID0gYHJ1c3RgXG4gKiAtIGBzb25hci5zb3VyY2VzYCA9IGBzcmNgXG4gKiAtIGBzb25hci50ZXN0c2AgPSBgdGVzdHNgXG4gKiAtIGBzb25hci5zb3VyY2VFbmNvZGluZ2AgPSBgVVRGLThgXG4gKiAtIGBzb25hci5wcm9maWxlYCA9IGBTb25hciBXYXlgXG4gKiAtIGBzb25hci5zY20ucHJvdmlkZXJgID0gYGdpdGBcbiAqIC0gVHlwaWNhbCBleGNsdXNpb25zIGZvciBgY292ZXJhZ2VgLCB0ZXN0LCBhbmQgYHRhcmdldGAgZGlyc1xuICogLSBgc29uYXIucnVzdC5sY292LnJlcG9ydFBhdGhzYCA9IGB0YXJnZXQvbGNvdi5pbmZvYFxuICogLSBgc29uYXIucnVzdC5jbGlwcHkuZW5hYmxlZGAgPSBgZmFsc2VgXG4gKiAtIGBzb25hci5ydXN0LmNsaXBweVJlcG9ydC5yZXBvcnRQYXRoc2AgPSBgdGFyZ2V0L2NsaXBweS5qc29uYFxuICpcbiAqIEFsbCBkZWZhdWx0cyBjYW4gYmUgb3ZlcnJpZGRlbiB2aWEgb3B0aW9ucy4gTmVzdGVkIG9wdGlvbnMgKGUuZy4gYGNvdmVyYWdlYCxcbiAqIGBydXN0YCkgYXJlIGRlZXAtbWVyZ2VkIHdpdGggdGhlIGRlZmF1bHRzLCBzbyBvdmVycmlkaW5nIG9uZSBuZXN0ZWQgZmllbGRcbiAqIGRvZXMgbm90IGRyb3AgdGhlIG90aGVyIGRlZmF1bHRzIGluIHRoYXQgc3VidHJlZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogbmV3IFNvbmFycXViZVJ1c3RQcm9wZXJ0aWVzKHByb2plY3QsIHtcbiAqICAgcHJvamVjdEtleTogJ215LW9yZ19teS1ydXN0LXByb2plY3QnLFxuICogfSk7XG4gKi9cbmV4cG9ydCBjbGFzcyBTb25hcnF1YmVSdXN0UHJvcGVydGllcyBleHRlbmRzIFNvbmFycXViZVByb3BlcnRpZXMge1xuICBjb25zdHJ1Y3RvcihzY29wZTogSUNvbnN0cnVjdCwgb3B0aW9uczogU29uYXJxdWJlUnVzdFByb3BlcnRpZXNPcHRpb25zKSB7XG4gICAgc3VwZXIoXG4gICAgICBzY29wZSxcbiAgICAgIGRlZXBNZXJnZShbXG4gICAgICAgIHtcbiAgICAgICAgICBsYW5ndWFnZTogXCJydXN0XCIsXG4gICAgICAgICAgc291cmNlczogXCJzcmNcIixcbiAgICAgICAgICB0ZXN0czogXCJ0ZXN0c1wiLFxuICAgICAgICAgIHNvdXJjZUVuY29kaW5nOiBcIlVURi04XCIsXG4gICAgICAgICAgcHJvZmlsZTogXCJTb25hciBXYXlcIixcbiAgICAgICAgICBzY206IHsgcHJvdmlkZXI6IFwiZ2l0XCIgfSxcbiAgICAgICAgICBleGNsdXNpb25zOiBbXCIqKi9jb3ZlcmFnZS8qKlwiLCBcIioqL3Rlc3RzLyoqXCIsIFwiKiovdGFyZ2V0LyoqXCJdLFxuICAgICAgICAgIGNvdmVyYWdlOiB7XG4gICAgICAgICAgICBleGNsdXNpb25zOiBbXCIqKi90ZXN0cy8qKlwiLCBcIioqL3RhcmdldC8qKlwiXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNwZDogeyBleGNsdXNpb25zOiBbXCIqKi90ZXN0cy8qKi8qLmpzb25cIl0gfSxcbiAgICAgICAgICBydXN0OiB7XG4gICAgICAgICAgICBsY292OiB7IHJlcG9ydFBhdGhzOiBbXCJ0YXJnZXQvbGNvdi5pbmZvXCJdIH0sXG4gICAgICAgICAgICBjbGlwcHk6IHsgZW5hYmxlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIGNsaXBweVJlcG9ydDogeyByZXBvcnRQYXRoczogW1widGFyZ2V0L2NsaXBweS5qc29uXCJdIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIF0pIGFzIFNvbmFycXViZVJ1c3RQcm9wZXJ0aWVzT3B0aW9ucyxcbiAgICApO1xuICB9XG59XG4iXX0=