UNPKG

projen

Version:

CDK for software projects

61 lines 6.81 kB
"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