projen
Version:
CDK for software projects
58 lines • 6.37 kB
JavaScript
"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=