@form8ion/codecov 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -26,6 +26,7 @@ code coverage service plugin for form8ion
26
26
  * [`apiAccessToken` __string__ (_optional_)](#apiaccesstoken-string-optional)
27
27
  * [lift](#lift-1)
28
28
  * [`projectRoot` __string__ (_required_)](#projectroot-string-required)
29
+ * [`packageManager` __string__ (_required_)](#packagemanager-string-required)
29
30
  * [Contributing](#contributing)
30
31
  * [Dependencies](#dependencies)
31
32
  * [Verification](#verification)
@@ -66,6 +67,7 @@ $ npm install @form8ion/codecov --save
66
67
  #### Import
67
68
 
68
69
  ```javascript
70
+ import {packageManagers} from '@form8ion/javascript-core';
69
71
  import {scaffold, lift} from '@form8ion/codecov';
70
72
  ```
71
73
 
@@ -92,7 +94,7 @@ import {scaffold, lift} from '@form8ion/codecov';
92
94
  apiAccessToken: 'XXXXXX'
93
95
  });
94
96
 
95
- await lift({projectRoot: process.cwd()});
97
+ await lift({projectRoot: process.cwd(), packageManager: packageManagers.NPM});
96
98
  })();
97
99
  ```
98
100
 
@@ -141,6 +143,11 @@ Takes a single options object as an argument, containing:
141
143
 
142
144
  path to the root of the project
143
145
 
146
+ ##### `packageManager` __string__ (_required_)
147
+
148
+ chosen [package manager](https://github.com/form8ion/javascript-core#packagemanagers)
149
+ to be used for the project
150
+
144
151
  ## Contributing
145
152
 
146
153
  <!--contribution-badges start -->
package/example.js CHANGED
@@ -3,6 +3,7 @@
3
3
  import stubbedFs from 'mock-fs';
4
4
  import nock from 'nock';
5
5
  import {StatusCodes} from 'http-status-codes';
6
+ import {packageManagers} from '@form8ion/javascript-core';
6
7
  import {scaffold, lift} from './lib/index.cjs';
7
8
 
8
9
  // remark-usage-ignore-next 5
@@ -34,5 +35,5 @@ nock('https://codecov.io/')
34
35
  apiAccessToken: 'XXXXXX'
35
36
  });
36
37
 
37
- await lift({projectRoot: process.cwd()});
38
+ await lift({projectRoot: process.cwd(), packageManager: packageManagers.NPM});
38
39
  })();
package/lib/index.cjs.js CHANGED
@@ -4,10 +4,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var got = require('got');
6
6
  var fs = require('fs');
7
+ var execa = require('execa');
7
8
 
8
9
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
10
 
10
11
  var got__default = /*#__PURE__*/_interopDefaultLegacy(got);
12
+ var execa__default = /*#__PURE__*/_interopDefaultLegacy(execa);
11
13
 
12
14
  function ownKeys(object, enumerableOnly) {
13
15
  var keys = Object.keys(object);
@@ -106,7 +108,8 @@ function scaffold$2() {
106
108
  const _excluded = ["scripts"],
107
109
  _excluded2 = ["coverage:report"];
108
110
  async function liftReporting ({
109
- projectRoot
111
+ projectRoot,
112
+ packageManager
110
113
  }) {
111
114
  const pathToPackageJson = `${projectRoot}/package.json`;
112
115
  const existingPackageContents = await fs.promises.readFile(pathToPackageJson, 'utf-8');
@@ -123,6 +126,7 @@ async function liftReporting ({
123
126
  await fs.promises.writeFile(pathToPackageJson, JSON.stringify(_objectSpread2(_objectSpread2({}, otherTopLevelProperties), {}, {
124
127
  scripts: otherScripts
125
128
  })));
129
+ await execa__default["default"](packageManager, ['remove', 'codecov']);
126
130
  return {
127
131
  nextSteps: [{
128
132
  summary: 'Configure modern reporting to Codecov on your CI service',
@@ -188,10 +192,12 @@ async function scaffold({
188
192
  }
189
193
 
190
194
  function lift({
191
- projectRoot
195
+ projectRoot,
196
+ packageManager
192
197
  }) {
193
198
  return liftReporting({
194
- projectRoot
199
+ projectRoot,
200
+ packageManager
195
201
  });
196
202
  }
197
203
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../src/predicates.js","../src/reporter/scaffolder.js","../src/reporter/lifter.js","../src/badge/repository-details-fetcher.js","../src/badge/scaffolder.js","../src/scaffolder.js","../src/lifter.js"],"sourcesContent":["export function coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken}) {\n return !!('Public' === visibility || (apiAccessToken && 'github' === vcs.host));\n}\n","export function scaffold() {\n return {\n devDependencies: ['codecov'],\n scripts: {'coverage:report': 'c8 report --reporter=text-lcov > coverage.lcov && codecov'}\n };\n}\n","import {promises as fs} from 'fs';\n\nexport default async function ({projectRoot}) {\n const pathToPackageJson = `${projectRoot}/package.json`;\n\n const existingPackageContents = await fs.readFile(pathToPackageJson, 'utf-8');\n const {scripts, ...otherTopLevelProperties} = JSON.parse(existingPackageContents);\n const {'coverage:report': reportCoverageScript, ...otherScripts} = scripts;\n\n if (scripts['coverage:report']) {\n await fs.writeFile(pathToPackageJson, JSON.stringify({...otherTopLevelProperties, scripts: otherScripts}));\n\n return {\n nextSteps: [{\n summary: 'Configure modern reporting to Codecov on your CI service',\n description: 'Configure the [Codecov Uploader](https://docs.codecov.com/docs/codecov-uploader) appropriately'\n + ' for your CI Provider. If available for your provider, prefer one of the dedicated wrappers.'\n }]\n };\n }\n\n return {};\n}\n","import got from '../../thirdparty-wrappers/got';\n\nexport default async function ({vcs, apiAccessToken}) {\n const {body: {repo}} = await got(\n `https://codecov.io/api/gh/${vcs.owner}/${vcs.name}`,\n {headers: {Authorization: apiAccessToken}, responseType: 'json'}\n );\n\n return repo;\n}\n","import fetchRepositoryDetails from './repository-details-fetcher';\n\nexport async function scaffold({vcs, apiAccessToken}) {\n return {\n ...['github', 'gitlab', 'bitbucket'].includes(vcs?.host) && {\n badges: {\n status: {\n coverage: {\n img: `https://img.shields.io/codecov/c/${vcs.host}/${vcs.owner}/${vcs.name}?logo=codecov${\n apiAccessToken\n ? `&token=${(await fetchRepositoryDetails({vcs, apiAccessToken})).image_token}`\n : ''\n }`,\n link: `https://codecov.io/${vcs.host}/${vcs.owner}/${vcs.name}`,\n text: 'Codecov'\n }\n }\n }\n }\n };\n}\n","import {coverageShouldBeReportedToCodecov} from './predicates';\nimport {scaffold as scaffoldReporter} from './reporter';\nimport {scaffold as scaffoldBadge} from './badge';\n\nexport async function scaffold({vcs, visibility, apiAccessToken}) {\n if (!coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken})) return {};\n\n return {\n ...scaffoldReporter(),\n ...await scaffoldBadge({vcs, apiAccessToken})\n };\n}\n","import {lift as liftReporting} from './reporter';\n\nexport function lift({projectRoot}) {\n return liftReporting({projectRoot});\n}\n"],"names":["coverageShouldBeReportedToCodecov","vcs","visibility","apiAccessToken","host","scaffold","devDependencies","scripts","projectRoot","pathToPackageJson","existingPackageContents","fs","readFile","JSON","parse","otherTopLevelProperties","otherScripts","writeFile","stringify","nextSteps","summary","description","body","repo","got","owner","name","headers","Authorization","responseType","includes","badges","status","coverage","img","fetchRepositoryDetails","image_token","link","text","scaffoldReporter","scaffoldBadge","lift","liftReporting"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/predicates.js","../src/reporter/scaffolder.js","../src/reporter/lifter.js","../src/badge/repository-details-fetcher.js","../src/badge/scaffolder.js","../src/scaffolder.js","../src/lifter.js"],"sourcesContent":["export function coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken}) {\n return !!('Public' === visibility || (apiAccessToken && 'github' === vcs.host));\n}\n","export function scaffold() {\n return {\n devDependencies: ['codecov'],\n scripts: {'coverage:report': 'c8 report --reporter=text-lcov > coverage.lcov && codecov'}\n };\n}\n","import {promises as fs} from 'fs';\n\nimport execa from '../../thirdparty-wrappers/execa';\n\nexport default async function ({projectRoot, packageManager}) {\n const pathToPackageJson = `${projectRoot}/package.json`;\n\n const existingPackageContents = await fs.readFile(pathToPackageJson, 'utf-8');\n const {scripts, ...otherTopLevelProperties} = JSON.parse(existingPackageContents);\n const {'coverage:report': reportCoverageScript, ...otherScripts} = scripts;\n\n if (scripts['coverage:report']) {\n await fs.writeFile(pathToPackageJson, JSON.stringify({...otherTopLevelProperties, scripts: otherScripts}));\n\n await execa(packageManager, ['remove', 'codecov']);\n\n return {\n nextSteps: [{\n summary: 'Configure modern reporting to Codecov on your CI service',\n description: 'Configure the [Codecov Uploader](https://docs.codecov.com/docs/codecov-uploader) appropriately'\n + ' for your CI Provider. If available for your provider, prefer one of the dedicated wrappers.'\n }]\n };\n }\n\n return {};\n}\n","import got from '../../thirdparty-wrappers/got';\n\nexport default async function ({vcs, apiAccessToken}) {\n const {body: {repo}} = await got(\n `https://codecov.io/api/gh/${vcs.owner}/${vcs.name}`,\n {headers: {Authorization: apiAccessToken}, responseType: 'json'}\n );\n\n return repo;\n}\n","import fetchRepositoryDetails from './repository-details-fetcher';\n\nexport async function scaffold({vcs, apiAccessToken}) {\n return {\n ...['github', 'gitlab', 'bitbucket'].includes(vcs?.host) && {\n badges: {\n status: {\n coverage: {\n img: `https://img.shields.io/codecov/c/${vcs.host}/${vcs.owner}/${vcs.name}?logo=codecov${\n apiAccessToken\n ? `&token=${(await fetchRepositoryDetails({vcs, apiAccessToken})).image_token}`\n : ''\n }`,\n link: `https://codecov.io/${vcs.host}/${vcs.owner}/${vcs.name}`,\n text: 'Codecov'\n }\n }\n }\n }\n };\n}\n","import {coverageShouldBeReportedToCodecov} from './predicates';\nimport {scaffold as scaffoldReporter} from './reporter';\nimport {scaffold as scaffoldBadge} from './badge';\n\nexport async function scaffold({vcs, visibility, apiAccessToken}) {\n if (!coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken})) return {};\n\n return {\n ...scaffoldReporter(),\n ...await scaffoldBadge({vcs, apiAccessToken})\n };\n}\n","import {lift as liftReporting} from './reporter';\n\nexport function lift({projectRoot, packageManager}) {\n return liftReporting({projectRoot, packageManager});\n}\n"],"names":["coverageShouldBeReportedToCodecov","vcs","visibility","apiAccessToken","host","scaffold","devDependencies","scripts","projectRoot","packageManager","pathToPackageJson","existingPackageContents","fs","readFile","JSON","parse","otherTopLevelProperties","otherScripts","writeFile","stringify","execa","nextSteps","summary","description","body","repo","got","owner","name","headers","Authorization","responseType","includes","badges","status","coverage","img","fetchRepositoryDetails","image_token","link","text","scaffoldReporter","scaffoldBadge","lift","liftReporting"],"mappings":"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"}
package/lib/index.es.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import got from 'got';
2
2
  import { promises } from 'fs';
3
+ import execa from 'execa';
3
4
 
4
5
  function ownKeys(object, enumerableOnly) {
5
6
  var keys = Object.keys(object);
@@ -98,7 +99,8 @@ function scaffold$2() {
98
99
  const _excluded = ["scripts"],
99
100
  _excluded2 = ["coverage:report"];
100
101
  async function liftReporting ({
101
- projectRoot
102
+ projectRoot,
103
+ packageManager
102
104
  }) {
103
105
  const pathToPackageJson = `${projectRoot}/package.json`;
104
106
  const existingPackageContents = await promises.readFile(pathToPackageJson, 'utf-8');
@@ -115,6 +117,7 @@ async function liftReporting ({
115
117
  await promises.writeFile(pathToPackageJson, JSON.stringify(_objectSpread2(_objectSpread2({}, otherTopLevelProperties), {}, {
116
118
  scripts: otherScripts
117
119
  })));
120
+ await execa(packageManager, ['remove', 'codecov']);
118
121
  return {
119
122
  nextSteps: [{
120
123
  summary: 'Configure modern reporting to Codecov on your CI service',
@@ -180,10 +183,12 @@ async function scaffold({
180
183
  }
181
184
 
182
185
  function lift({
183
- projectRoot
186
+ projectRoot,
187
+ packageManager
184
188
  }) {
185
189
  return liftReporting({
186
- projectRoot
190
+ projectRoot,
191
+ packageManager
187
192
  });
188
193
  }
189
194
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/predicates.js","../src/reporter/scaffolder.js","../src/reporter/lifter.js","../src/badge/repository-details-fetcher.js","../src/badge/scaffolder.js","../src/scaffolder.js","../src/lifter.js"],"sourcesContent":["export function coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken}) {\n return !!('Public' === visibility || (apiAccessToken && 'github' === vcs.host));\n}\n","export function scaffold() {\n return {\n devDependencies: ['codecov'],\n scripts: {'coverage:report': 'c8 report --reporter=text-lcov > coverage.lcov && codecov'}\n };\n}\n","import {promises as fs} from 'fs';\n\nexport default async function ({projectRoot}) {\n const pathToPackageJson = `${projectRoot}/package.json`;\n\n const existingPackageContents = await fs.readFile(pathToPackageJson, 'utf-8');\n const {scripts, ...otherTopLevelProperties} = JSON.parse(existingPackageContents);\n const {'coverage:report': reportCoverageScript, ...otherScripts} = scripts;\n\n if (scripts['coverage:report']) {\n await fs.writeFile(pathToPackageJson, JSON.stringify({...otherTopLevelProperties, scripts: otherScripts}));\n\n return {\n nextSteps: [{\n summary: 'Configure modern reporting to Codecov on your CI service',\n description: 'Configure the [Codecov Uploader](https://docs.codecov.com/docs/codecov-uploader) appropriately'\n + ' for your CI Provider. If available for your provider, prefer one of the dedicated wrappers.'\n }]\n };\n }\n\n return {};\n}\n","import got from '../../thirdparty-wrappers/got';\n\nexport default async function ({vcs, apiAccessToken}) {\n const {body: {repo}} = await got(\n `https://codecov.io/api/gh/${vcs.owner}/${vcs.name}`,\n {headers: {Authorization: apiAccessToken}, responseType: 'json'}\n );\n\n return repo;\n}\n","import fetchRepositoryDetails from './repository-details-fetcher';\n\nexport async function scaffold({vcs, apiAccessToken}) {\n return {\n ...['github', 'gitlab', 'bitbucket'].includes(vcs?.host) && {\n badges: {\n status: {\n coverage: {\n img: `https://img.shields.io/codecov/c/${vcs.host}/${vcs.owner}/${vcs.name}?logo=codecov${\n apiAccessToken\n ? `&token=${(await fetchRepositoryDetails({vcs, apiAccessToken})).image_token}`\n : ''\n }`,\n link: `https://codecov.io/${vcs.host}/${vcs.owner}/${vcs.name}`,\n text: 'Codecov'\n }\n }\n }\n }\n };\n}\n","import {coverageShouldBeReportedToCodecov} from './predicates';\nimport {scaffold as scaffoldReporter} from './reporter';\nimport {scaffold as scaffoldBadge} from './badge';\n\nexport async function scaffold({vcs, visibility, apiAccessToken}) {\n if (!coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken})) return {};\n\n return {\n ...scaffoldReporter(),\n ...await scaffoldBadge({vcs, apiAccessToken})\n };\n}\n","import {lift as liftReporting} from './reporter';\n\nexport function lift({projectRoot}) {\n return liftReporting({projectRoot});\n}\n"],"names":["coverageShouldBeReportedToCodecov","vcs","visibility","apiAccessToken","host","scaffold","devDependencies","scripts","projectRoot","pathToPackageJson","existingPackageContents","fs","readFile","JSON","parse","otherTopLevelProperties","otherScripts","writeFile","stringify","nextSteps","summary","description","body","repo","got","owner","name","headers","Authorization","responseType","includes","badges","status","coverage","img","fetchRepositoryDetails","image_token","link","text","scaffoldReporter","scaffoldBadge","lift","liftReporting"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/predicates.js","../src/reporter/scaffolder.js","../src/reporter/lifter.js","../src/badge/repository-details-fetcher.js","../src/badge/scaffolder.js","../src/scaffolder.js","../src/lifter.js"],"sourcesContent":["export function coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken}) {\n return !!('Public' === visibility || (apiAccessToken && 'github' === vcs.host));\n}\n","export function scaffold() {\n return {\n devDependencies: ['codecov'],\n scripts: {'coverage:report': 'c8 report --reporter=text-lcov > coverage.lcov && codecov'}\n };\n}\n","import {promises as fs} from 'fs';\n\nimport execa from '../../thirdparty-wrappers/execa';\n\nexport default async function ({projectRoot, packageManager}) {\n const pathToPackageJson = `${projectRoot}/package.json`;\n\n const existingPackageContents = await fs.readFile(pathToPackageJson, 'utf-8');\n const {scripts, ...otherTopLevelProperties} = JSON.parse(existingPackageContents);\n const {'coverage:report': reportCoverageScript, ...otherScripts} = scripts;\n\n if (scripts['coverage:report']) {\n await fs.writeFile(pathToPackageJson, JSON.stringify({...otherTopLevelProperties, scripts: otherScripts}));\n\n await execa(packageManager, ['remove', 'codecov']);\n\n return {\n nextSteps: [{\n summary: 'Configure modern reporting to Codecov on your CI service',\n description: 'Configure the [Codecov Uploader](https://docs.codecov.com/docs/codecov-uploader) appropriately'\n + ' for your CI Provider. If available for your provider, prefer one of the dedicated wrappers.'\n }]\n };\n }\n\n return {};\n}\n","import got from '../../thirdparty-wrappers/got';\n\nexport default async function ({vcs, apiAccessToken}) {\n const {body: {repo}} = await got(\n `https://codecov.io/api/gh/${vcs.owner}/${vcs.name}`,\n {headers: {Authorization: apiAccessToken}, responseType: 'json'}\n );\n\n return repo;\n}\n","import fetchRepositoryDetails from './repository-details-fetcher';\n\nexport async function scaffold({vcs, apiAccessToken}) {\n return {\n ...['github', 'gitlab', 'bitbucket'].includes(vcs?.host) && {\n badges: {\n status: {\n coverage: {\n img: `https://img.shields.io/codecov/c/${vcs.host}/${vcs.owner}/${vcs.name}?logo=codecov${\n apiAccessToken\n ? `&token=${(await fetchRepositoryDetails({vcs, apiAccessToken})).image_token}`\n : ''\n }`,\n link: `https://codecov.io/${vcs.host}/${vcs.owner}/${vcs.name}`,\n text: 'Codecov'\n }\n }\n }\n }\n };\n}\n","import {coverageShouldBeReportedToCodecov} from './predicates';\nimport {scaffold as scaffoldReporter} from './reporter';\nimport {scaffold as scaffoldBadge} from './badge';\n\nexport async function scaffold({vcs, visibility, apiAccessToken}) {\n if (!coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken})) return {};\n\n return {\n ...scaffoldReporter(),\n ...await scaffoldBadge({vcs, apiAccessToken})\n };\n}\n","import {lift as liftReporting} from './reporter';\n\nexport function lift({projectRoot, packageManager}) {\n return liftReporting({projectRoot, packageManager});\n}\n"],"names":["coverageShouldBeReportedToCodecov","vcs","visibility","apiAccessToken","host","scaffold","devDependencies","scripts","projectRoot","packageManager","pathToPackageJson","existingPackageContents","fs","readFile","JSON","parse","otherTopLevelProperties","otherScripts","writeFile","stringify","execa","nextSteps","summary","description","body","repo","got","owner","name","headers","Authorization","responseType","includes","badges","status","coverage","img","fetchRepositoryDetails","image_token","link","text","scaffoldReporter","scaffoldBadge","lift","liftReporting"],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@form8ion/codecov",
3
3
  "description": "code coverage service plugin for form8ion",
4
4
  "license": "MIT",
5
- "version": "1.4.0",
5
+ "version": "1.5.0",
6
6
  "files": [
7
7
  "example.js",
8
8
  "lib/"
@@ -55,6 +55,7 @@
55
55
  "@form8ion/eslint-config": "2.0.2",
56
56
  "@form8ion/eslint-config-cucumber": "1.4.0",
57
57
  "@form8ion/eslint-config-mocha": "1.2.17",
58
+ "@form8ion/javascript-core": "4.0.1",
58
59
  "@form8ion/remark-lint-preset": "2.1.7",
59
60
  "@rollup/plugin-babel": "5.3.0",
60
61
  "@rollup/plugin-node-resolve": "13.1.1",
@@ -80,9 +81,11 @@
80
81
  "rimraf": "3.0.2",
81
82
  "rollup": "2.61.1",
82
83
  "rollup-plugin-auto-external": "2.0.0",
83
- "sinon": "12.0.1"
84
+ "sinon": "12.0.1",
85
+ "testdouble": "3.16.3"
84
86
  },
85
87
  "dependencies": {
88
+ "execa": "^5.1.1",
86
89
  "got": "^11.8.2"
87
90
  }
88
91
  }