projen
Version:
CDK for software projects
57 lines • 6.31 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SonarqubeJavascriptProperties = 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 JavaScript projects.
*
* Provides sensible defaults for JavaScript analysis:
* - `sonar.language` = `js`
* - `sonar.sources` = `src`
* - `sonar.tests` = `test`
* - `sonar.sourceEncoding` = `UTF-8`
* - `sonar.profile` = `Sonar Way`
* - `sonar.scm.provider` = `git`
* - Typical exclusions for `node_modules`, `coverage`, and test files
* - `sonar.javascript.lcov.reportPaths` = `coverage/lcov.info`
*
* All defaults can be overridden via options. Nested options (e.g. `coverage`,
* `javascript`) are deep-merged with the defaults, so overriding one nested
* field does not drop the other defaults in that subtree.
*
* @example
* new SonarqubeJavascriptProperties(project, {
* projectKey: 'my-org_my-js-project',
* });
*/
class SonarqubeJavascriptProperties extends sonarqube_1.SonarqubeProperties {
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.sonarqube.SonarqubeJavascriptProperties", version: "0.103.12" };
constructor(scope, options) {
super(scope, (0, util_1.deepMerge)([
{
language: "js",
sources: "src",
tests: "test",
sourceEncoding: "UTF-8",
profile: "Sonar Way",
scm: { provider: "git" },
exclusions: [
"**/node_modules/**",
"**/coverage/**",
"**/test/**",
"**/__tests__/**",
"**/*.test.ts",
"**/*.spec.ts",
],
coverage: { exclusions: ["**/test/**", "**/__tests__/**"] },
cpd: { exclusions: ["**/test/**/*.json", "**/__tests__/**/*.json"] },
javascript: { lcov: { reportPaths: ["coverage/lcov.info"] } },
},
options,
]));
}
}
exports.SonarqubeJavascriptProperties = SonarqubeJavascriptProperties;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zb25hcnF1YmUvamF2YXNjcmlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsMkNBQWtEO0FBRWxELGtDQUFvQztBQVNwQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gsTUFBYSw2QkFBOEIsU0FBUSwrQkFBbUI7O0lBQ3BFLFlBQ0UsS0FBaUIsRUFDakIsT0FBNkM7UUFFN0MsS0FBSyxDQUNILEtBQUssRUFDTCxJQUFBLGdCQUFTLEVBQUM7WUFDUjtnQkFDRSxRQUFRLEVBQUUsSUFBSTtnQkFDZCxPQUFPLEVBQUUsS0FBSztnQkFDZCxLQUFLLEVBQUUsTUFBTTtnQkFDYixjQUFjLEVBQUUsT0FBTztnQkFDdkIsT0FBTyxFQUFFLFdBQVc7Z0JBQ3BCLEdBQUcsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7Z0JBQ3hCLFVBQVUsRUFBRTtvQkFDVixvQkFBb0I7b0JBQ3BCLGdCQUFnQjtvQkFDaEIsWUFBWTtvQkFDWixpQkFBaUI7b0JBQ2pCLGNBQWM7b0JBQ2QsY0FBYztpQkFDZjtnQkFDRCxRQUFRLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLENBQUMsRUFBRTtnQkFDM0QsR0FBRyxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsd0JBQXdCLENBQUMsRUFBRTtnQkFDcEUsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBRSxFQUFFO2FBQzlEO1lBQ0QsT0FBTztTQUNSLENBQXlDLENBQzNDLENBQUM7SUFDSixDQUFDOztBQTlCSCxzRUErQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgU29uYXJxdWJlUHJvcGVydGllcyB9IGZyb20gXCIuL3NvbmFycXViZVwiO1xuaW1wb3J0IHR5cGUgeyBTb25hcnF1YmVQcm9wZXJ0aWVzT3B0aW9ucyB9IGZyb20gXCIuL3NvbmFycXViZVwiO1xuaW1wb3J0IHsgZGVlcE1lcmdlIH0gZnJvbSBcIi4uL3V0aWxcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgU29uYXJxdWJlSmF2YXNjcmlwdFByb3BlcnRpZXNgLlxuICpcbiAqIEV4dGVuZHMgYmFzZSBvcHRpb25zIHdpdGggSmF2YVNjcmlwdC1zcGVjaWZpYyBkZWZhdWx0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTb25hcnF1YmVKYXZhc2NyaXB0UHJvcGVydGllc09wdGlvbnMgZXh0ZW5kcyBTb25hcnF1YmVQcm9wZXJ0aWVzT3B0aW9ucyB7fVxuXG4vKipcbiAqIEEgU29uYXJRdWJlIGNvbmZpZ3VyYXRpb24gcHJlc2V0IGZvciBKYXZhU2NyaXB0IHByb2plY3RzLlxuICpcbiAqIFByb3ZpZGVzIHNlbnNpYmxlIGRlZmF1bHRzIGZvciBKYXZhU2NyaXB0IGFuYWx5c2lzOlxuICogLSBgc29uYXIubGFuZ3VhZ2VgID0gYGpzYFxuICogLSBgc29uYXIuc291cmNlc2AgPSBgc3JjYFxuICogLSBgc29uYXIudGVzdHNgID0gYHRlc3RgXG4gKiAtIGBzb25hci5zb3VyY2VFbmNvZGluZ2AgPSBgVVRGLThgXG4gKiAtIGBzb25hci5wcm9maWxlYCA9IGBTb25hciBXYXlgXG4gKiAtIGBzb25hci5zY20ucHJvdmlkZXJgID0gYGdpdGBcbiAqIC0gVHlwaWNhbCBleGNsdXNpb25zIGZvciBgbm9kZV9tb2R1bGVzYCwgYGNvdmVyYWdlYCwgYW5kIHRlc3QgZmlsZXNcbiAqIC0gYHNvbmFyLmphdmFzY3JpcHQubGNvdi5yZXBvcnRQYXRoc2AgPSBgY292ZXJhZ2UvbGNvdi5pbmZvYFxuICpcbiAqIEFsbCBkZWZhdWx0cyBjYW4gYmUgb3ZlcnJpZGRlbiB2aWEgb3B0aW9ucy4gTmVzdGVkIG9wdGlvbnMgKGUuZy4gYGNvdmVyYWdlYCxcbiAqIGBqYXZhc2NyaXB0YCkgYXJlIGRlZXAtbWVyZ2VkIHdpdGggdGhlIGRlZmF1bHRzLCBzbyBvdmVycmlkaW5nIG9uZSBuZXN0ZWRcbiAqIGZpZWxkIGRvZXMgbm90IGRyb3AgdGhlIG90aGVyIGRlZmF1bHRzIGluIHRoYXQgc3VidHJlZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogbmV3IFNvbmFycXViZUphdmFzY3JpcHRQcm9wZXJ0aWVzKHByb2plY3QsIHtcbiAqICAgcHJvamVjdEtleTogJ215LW9yZ19teS1qcy1wcm9qZWN0JyxcbiAqIH0pO1xuICovXG5leHBvcnQgY2xhc3MgU29uYXJxdWJlSmF2YXNjcmlwdFByb3BlcnRpZXMgZXh0ZW5kcyBTb25hcnF1YmVQcm9wZXJ0aWVzIHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IElDb25zdHJ1Y3QsXG4gICAgb3B0aW9uczogU29uYXJxdWJlSmF2YXNjcmlwdFByb3BlcnRpZXNPcHRpb25zLFxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIHNjb3BlLFxuICAgICAgZGVlcE1lcmdlKFtcbiAgICAgICAge1xuICAgICAgICAgIGxhbmd1YWdlOiBcImpzXCIsXG4gICAgICAgICAgc291cmNlczogXCJzcmNcIixcbiAgICAgICAgICB0ZXN0czogXCJ0ZXN0XCIsXG4gICAgICAgICAgc291cmNlRW5jb2Rpbmc6IFwiVVRGLThcIixcbiAgICAgICAgICBwcm9maWxlOiBcIlNvbmFyIFdheVwiLFxuICAgICAgICAgIHNjbTogeyBwcm92aWRlcjogXCJnaXRcIiB9LFxuICAgICAgICAgIGV4Y2x1c2lvbnM6IFtcbiAgICAgICAgICAgIFwiKiovbm9kZV9tb2R1bGVzLyoqXCIsXG4gICAgICAgICAgICBcIioqL2NvdmVyYWdlLyoqXCIsXG4gICAgICAgICAgICBcIioqL3Rlc3QvKipcIixcbiAgICAgICAgICAgIFwiKiovX190ZXN0c19fLyoqXCIsXG4gICAgICAgICAgICBcIioqLyoudGVzdC50c1wiLFxuICAgICAgICAgICAgXCIqKi8qLnNwZWMudHNcIixcbiAgICAgICAgICBdLFxuICAgICAgICAgIGNvdmVyYWdlOiB7IGV4Y2x1c2lvbnM6IFtcIioqL3Rlc3QvKipcIiwgXCIqKi9fX3Rlc3RzX18vKipcIl0gfSxcbiAgICAgICAgICBjcGQ6IHsgZXhjbHVzaW9uczogW1wiKiovdGVzdC8qKi8qLmpzb25cIiwgXCIqKi9fX3Rlc3RzX18vKiovKi5qc29uXCJdIH0sXG4gICAgICAgICAgamF2YXNjcmlwdDogeyBsY292OiB7IHJlcG9ydFBhdGhzOiBbXCJjb3ZlcmFnZS9sY292LmluZm9cIl0gfSB9LFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgXSkgYXMgU29uYXJxdWJlSmF2YXNjcmlwdFByb3BlcnRpZXNPcHRpb25zLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==