projen
Version:
CDK for software projects
61 lines • 6.81 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SonarqubeTypescriptProperties = 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 TypeScript projects.
*
* Provides sensible defaults for TypeScript analysis:
* - `sonar.language` = `ts`
* - `sonar.sources` = `src`
* - `sonar.tests` = `test`
* - `sonar.sourceEncoding` = `UTF-8`
* - `sonar.profile` = `Sonar Way`
* - `sonar.scm.provider` = `git`
* - `sonar.typescript.tsconfigPath` = `tsconfig.json`
* - Typical exclusions for `node_modules`, `coverage`, 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 SonarqubeTypescriptProperties(project, {
* projectKey: 'my-org_my-ts-project',
* });
*/
class SonarqubeTypescriptProperties extends sonarqube_1.SonarqubeProperties {
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.sonarqube.SonarqubeTypescriptProperties", version: "0.103.12" };
constructor(scope, options) {
super(scope, (0, util_1.deepMerge)([
{
language: "ts",
sources: "src",
tests: "test",
sourceEncoding: "UTF-8",
profile: "Sonar Way",
scm: { provider: "git" },
exclusions: [
"**/node_modules/**",
"**/coverage/**",
"**/test/**",
"**/__tests__/**",
"**/*.test.ts",
"**/*.spec.ts",
"**/dist/**",
"**/build/**",
],
coverage: { exclusions: ["**/test/**", "**/__tests__/**"] },
cpd: { exclusions: ["**/test/**/*.json", "**/__tests__/**/*.json"] },
javascript: { lcov: { reportPaths: ["coverage/lcov.info"] } },
typescript: { tsconfigPath: "tsconfig.json" },
},
options,
]));
}
}
exports.SonarqubeTypescriptProperties = SonarqubeTypescriptProperties;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zb25hcnF1YmUvdHlwZXNjcmlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsMkNBQWtEO0FBRWxELGtDQUFvQztBQVNwQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILE1BQWEsNkJBQThCLFNBQVEsK0JBQW1COztJQUNwRSxZQUNFLEtBQWlCLEVBQ2pCLE9BQTZDO1FBRTdDLEtBQUssQ0FDSCxLQUFLLEVBQ0wsSUFBQSxnQkFBUyxFQUFDO1lBQ1I7Z0JBQ0UsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsY0FBYyxFQUFFLE9BQU87Z0JBQ3ZCLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUN4QixVQUFVLEVBQUU7b0JBQ1Ysb0JBQW9CO29CQUNwQixnQkFBZ0I7b0JBQ2hCLFlBQVk7b0JBQ1osaUJBQWlCO29CQUNqQixjQUFjO29CQUNkLGNBQWM7b0JBQ2QsWUFBWTtvQkFDWixhQUFhO2lCQUNkO2dCQUNELFFBQVEsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxFQUFFO2dCQUMzRCxHQUFHLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSx3QkFBd0IsQ0FBQyxFQUFFO2dCQUNwRSxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLEVBQUU7Z0JBQzdELFVBQVUsRUFBRSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUU7YUFDOUM7WUFDRCxPQUFPO1NBQ1IsQ0FBeUMsQ0FDM0MsQ0FBQztJQUNKLENBQUM7O0FBakNILHNFQWtDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSUNvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBTb25hcnF1YmVQcm9wZXJ0aWVzIH0gZnJvbSBcIi4vc29uYXJxdWJlXCI7XG5pbXBvcnQgdHlwZSB7IFNvbmFycXViZVByb3BlcnRpZXNPcHRpb25zIH0gZnJvbSBcIi4vc29uYXJxdWJlXCI7XG5pbXBvcnQgeyBkZWVwTWVyZ2UgfSBmcm9tIFwiLi4vdXRpbFwiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBTb25hcnF1YmVUeXBlc2NyaXB0UHJvcGVydGllc2AuXG4gKlxuICogRXh0ZW5kcyBiYXNlIG9wdGlvbnMgd2l0aCBUeXBlU2NyaXB0LXNwZWNpZmljIGRlZmF1bHRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNvbmFycXViZVR5cGVzY3JpcHRQcm9wZXJ0aWVzT3B0aW9ucyBleHRlbmRzIFNvbmFycXViZVByb3BlcnRpZXNPcHRpb25zIHt9XG5cbi8qKlxuICogQSBTb25hclF1YmUgY29uZmlndXJhdGlvbiBwcmVzZXQgZm9yIFR5cGVTY3JpcHQgcHJvamVjdHMuXG4gKlxuICogUHJvdmlkZXMgc2Vuc2libGUgZGVmYXVsdHMgZm9yIFR5cGVTY3JpcHQgYW5hbHlzaXM6XG4gKiAtIGBzb25hci5sYW5ndWFnZWAgPSBgdHNgXG4gKiAtIGBzb25hci5zb3VyY2VzYCA9IGBzcmNgXG4gKiAtIGBzb25hci50ZXN0c2AgPSBgdGVzdGBcbiAqIC0gYHNvbmFyLnNvdXJjZUVuY29kaW5nYCA9IGBVVEYtOGBcbiAqIC0gYHNvbmFyLnByb2ZpbGVgID0gYFNvbmFyIFdheWBcbiAqIC0gYHNvbmFyLnNjbS5wcm92aWRlcmAgPSBgZ2l0YFxuICogLSBgc29uYXIudHlwZXNjcmlwdC50c2NvbmZpZ1BhdGhgID0gYHRzY29uZmlnLmpzb25gXG4gKiAtIFR5cGljYWwgZXhjbHVzaW9ucyBmb3IgYG5vZGVfbW9kdWxlc2AsIGBjb3ZlcmFnZWAsIHRlc3QgZmlsZXNcbiAqIC0gYHNvbmFyLmphdmFzY3JpcHQubGNvdi5yZXBvcnRQYXRoc2AgPSBgY292ZXJhZ2UvbGNvdi5pbmZvYFxuICpcbiAqIEFsbCBkZWZhdWx0cyBjYW4gYmUgb3ZlcnJpZGRlbiB2aWEgb3B0aW9ucy4gTmVzdGVkIG9wdGlvbnMgKGUuZy4gYGNvdmVyYWdlYCxcbiAqIGBqYXZhc2NyaXB0YCkgYXJlIGRlZXAtbWVyZ2VkIHdpdGggdGhlIGRlZmF1bHRzLCBzbyBvdmVycmlkaW5nIG9uZSBuZXN0ZWRcbiAqIGZpZWxkIGRvZXMgbm90IGRyb3AgdGhlIG90aGVyIGRlZmF1bHRzIGluIHRoYXQgc3VidHJlZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogbmV3IFNvbmFycXViZVR5cGVzY3JpcHRQcm9wZXJ0aWVzKHByb2plY3QsIHtcbiAqICAgcHJvamVjdEtleTogJ215LW9yZ19teS10cy1wcm9qZWN0JyxcbiAqIH0pO1xuICovXG5leHBvcnQgY2xhc3MgU29uYXJxdWJlVHlwZXNjcmlwdFByb3BlcnRpZXMgZXh0ZW5kcyBTb25hcnF1YmVQcm9wZXJ0aWVzIHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IElDb25zdHJ1Y3QsXG4gICAgb3B0aW9uczogU29uYXJxdWJlVHlwZXNjcmlwdFByb3BlcnRpZXNPcHRpb25zLFxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIHNjb3BlLFxuICAgICAgZGVlcE1lcmdlKFtcbiAgICAgICAge1xuICAgICAgICAgIGxhbmd1YWdlOiBcInRzXCIsXG4gICAgICAgICAgc291cmNlczogXCJzcmNcIixcbiAgICAgICAgICB0ZXN0czogXCJ0ZXN0XCIsXG4gICAgICAgICAgc291cmNlRW5jb2Rpbmc6IFwiVVRGLThcIixcbiAgICAgICAgICBwcm9maWxlOiBcIlNvbmFyIFdheVwiLFxuICAgICAgICAgIHNjbTogeyBwcm92aWRlcjogXCJnaXRcIiB9LFxuICAgICAgICAgIGV4Y2x1c2lvbnM6IFtcbiAgICAgICAgICAgIFwiKiovbm9kZV9tb2R1bGVzLyoqXCIsXG4gICAgICAgICAgICBcIioqL2NvdmVyYWdlLyoqXCIsXG4gICAgICAgICAgICBcIioqL3Rlc3QvKipcIixcbiAgICAgICAgICAgIFwiKiovX190ZXN0c19fLyoqXCIsXG4gICAgICAgICAgICBcIioqLyoudGVzdC50c1wiLFxuICAgICAgICAgICAgXCIqKi8qLnNwZWMudHNcIixcbiAgICAgICAgICAgIFwiKiovZGlzdC8qKlwiLFxuICAgICAgICAgICAgXCIqKi9idWlsZC8qKlwiLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgY292ZXJhZ2U6IHsgZXhjbHVzaW9uczogW1wiKiovdGVzdC8qKlwiLCBcIioqL19fdGVzdHNfXy8qKlwiXSB9LFxuICAgICAgICAgIGNwZDogeyBleGNsdXNpb25zOiBbXCIqKi90ZXN0LyoqLyouanNvblwiLCBcIioqL19fdGVzdHNfXy8qKi8qLmpzb25cIl0gfSxcbiAgICAgICAgICBqYXZhc2NyaXB0OiB7IGxjb3Y6IHsgcmVwb3J0UGF0aHM6IFtcImNvdmVyYWdlL2xjb3YuaW5mb1wiXSB9IH0sXG4gICAgICAgICAgdHlwZXNjcmlwdDogeyB0c2NvbmZpZ1BhdGg6IFwidHNjb25maWcuanNvblwiIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICBdKSBhcyBTb25hcnF1YmVUeXBlc2NyaXB0UHJvcGVydGllc09wdGlvbnMsXG4gICAgKTtcbiAgfVxufVxuIl19