{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {IClone, IOptions, IStatistic} from '@jscpd/core';\nimport {IReporter} from \"@jscpd/finder\";\nimport {badgen} from \"badgen\";\nimport {join} from 'path';\nimport {ensureDirSync, writeFileSync} from \"fs-extra\";\nimport {green} from \"colors/safe\";\n\nexport default class BadgeReporter implements IReporter {\n constructor(private options: IOptions) {\n }\n\n // @ts-ignore\n public report(clones: IClone[], statistic: IStatistic): void {\n const badgeOptions = this.options.reportersOptions ? this.options.reportersOptions.badge || {} : {};\n if (this.options.output) {\n const badge = badgen({\n color: this.getColor(statistic),\n status: this.getStatus(statistic),\n subject: 'Copy/Paste',\n ...badgeOptions\n });\n const path = badgeOptions.path ? badgeOptions.path : join(this.options.output, 'jscpd-badge.svg');\n ensureDirSync(this.options.output);\n writeFileSync(path, badge);\n console.log(green(`Badge saved to ${path}`));\n }\n }\n\n public getStatus(statistic: IStatistic): string {\n return statistic ? statistic.total.percentage + '%' : 'N/A'\n }\n\n public getColor(statistic: IStatistic): string {\n if (this.options.threshold === undefined) {\n return 'grey';\n }\n return statistic.total.percentage < this.options.threshold ? 'green' : 'red';\n }\n}\n"],"mappings":";AAEA,SAAQ,cAAa;AACrB,SAAQ,YAAW;AACnB,SAAQ,eAAe,qBAAoB;AAC3C,SAAQ,aAAY;AAEpB,IAAqB,gBAArB,MAAwD;AAAA,EACtD,YAAoB,SAAmB;AAAnB;AAAA,EACpB;AAAA;AAAA,EAGO,OAAO,QAAkB,WAA6B;AAC3D,UAAM,eAAe,KAAK,QAAQ,mBAAmB,KAAK,QAAQ,iBAAiB,SAAS,CAAC,IAAI,CAAC;AAClG,QAAI,KAAK,QAAQ,QAAQ;AACvB,YAAM,QAAQ,OAAO;AAAA,QACnB,OAAO,KAAK,SAAS,SAAS;AAAA,QAC9B,QAAQ,KAAK,UAAU,SAAS;AAAA,QAChC,SAAS;AAAA,QACT,GAAG;AAAA,MACL,CAAC;AACD,YAAM,OAAO,aAAa,OAAO,aAAa,OAAO,KAAK,KAAK,QAAQ,QAAQ,iBAAiB;AAChG,oBAAc,KAAK,QAAQ,MAAM;AACjC,oBAAc,MAAM,KAAK;AACzB,cAAQ,IAAI,MAAM,kBAAkB,IAAI,EAAE,CAAC;AAAA,IAC7C;AAAA,EACF;AAAA,EAEO,UAAU,WAA+B;AAC9C,WAAO,YAAY,UAAU,MAAM,aAAa,MAAM;AAAA,EACxD;AAAA,EAEO,SAAS,WAA+B;AAC7C,QAAI,KAAK,QAAQ,cAAc,QAAW;AACxC,aAAO;AAAA,IACT;AACA,WAAO,UAAU,MAAM,aAAa,KAAK,QAAQ,YAAY,UAAU;AAAA,EACzE;AACF;","names":[]}