@form8ion/javascript 3.0.0 → 3.1.0-alpha.3

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/lib/index.cjs.js CHANGED
@@ -5,15 +5,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var languageScaffolderPrompts = require('@travi/language-scaffolder-prompts');
6
6
  var deepmerge = require('deepmerge');
7
7
  var javascriptCore = require('@form8ion/javascript-core');
8
- var codecov = require('@form8ion/codecov');
9
- var fs = require('fs');
10
8
  var joi = require('joi');
11
9
  var inquirer = require('inquirer');
12
10
  var overridablePrompts = require('@form8ion/overridable-prompts');
13
- var cliMessages = require('@travi/cli-messages');
14
- var eslint = require('@form8ion/eslint');
11
+ var codecov = require('@form8ion/codecov');
12
+ var fs = require('fs');
15
13
  var core = require('@form8ion/core');
16
- var husky = require('@form8ion/husky');
14
+ var cliMessages = require('@travi/cli-messages');
17
15
  var commitConvention = require('@form8ion/commit-convention');
18
16
  var hoek = require('@hapi/hoek');
19
17
  var execa = require('execa');
@@ -26,6 +24,8 @@ var camelcase = require('camelcase');
26
24
  var makeDir = require('make-dir');
27
25
  var touch = require('touch');
28
26
  var path = require('path');
27
+ var huskyPlugin = require('@form8ion/husky');
28
+ var eslint = require('@form8ion/eslint');
29
29
 
30
30
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
31
31
 
@@ -56,6 +56,7 @@ var mustache__default = /*#__PURE__*/_interopDefaultLegacy(mustache);
56
56
  var camelcase__default = /*#__PURE__*/_interopDefaultLegacy(camelcase);
57
57
  var makeDir__default = /*#__PURE__*/_interopDefaultLegacy(makeDir);
58
58
  var touch__default = /*#__PURE__*/_interopDefaultLegacy(touch);
59
+ var huskyPlugin__namespace = /*#__PURE__*/_interopNamespace(huskyPlugin);
59
60
 
60
61
  function ownKeys(object, enumerableOnly) {
61
62
  var keys = Object.keys(object);
@@ -150,6 +151,58 @@ async function scaffoldCoverage ({
150
151
  }));
151
152
  }
152
153
 
154
+ function nycIsConfigured ({
155
+ projectRoot
156
+ }) {
157
+ return core.fileExists(`${projectRoot}/.nycrc`);
158
+ }
159
+
160
+ async function removeDependencies ({
161
+ packageManager,
162
+ dependencies
163
+ }) {
164
+ await execa__default["default"](packageManager, ['remove', ...dependencies]);
165
+ }
166
+
167
+ async function removeNyc ({
168
+ projectRoot,
169
+ packageManager
170
+ }) {
171
+ await Promise.all([fs.promises.unlink(`${projectRoot}/.nycrc`), fs.promises.rmdir(`${projectRoot}/.nyc_output`, {
172
+ recursive: true,
173
+ force: true
174
+ }), removeDependencies({
175
+ packageManager,
176
+ dependencies: ['nyc', '@istanbuljs/nyc-config-babel']
177
+ })]);
178
+ }
179
+
180
+ async function lift$2({
181
+ projectRoot,
182
+ packageManager
183
+ }) {
184
+ if (await nycIsConfigured({
185
+ projectRoot
186
+ })) {
187
+ const [c8Results] = await Promise.all([scaffoldC8({
188
+ projectRoot
189
+ }), removeNyc({
190
+ projectRoot,
191
+ packageManager
192
+ })]);
193
+ return c8Results;
194
+ }
195
+
196
+ return {};
197
+ }
198
+
199
+ var coveragePlugin = /*#__PURE__*/Object.freeze({
200
+ __proto__: null,
201
+ scaffold: scaffoldCoverage,
202
+ lift: lift$2,
203
+ test: nycIsConfigured
204
+ });
205
+
153
206
  const unitTestFrameworksSchema = joi__namespace.object().required().pattern(/^/, joi__namespace.object({
154
207
  scaffolder: joi__namespace.func().arity(1).required()
155
208
  }));
@@ -198,18 +251,15 @@ async function scaffoldUnitTesting ({
198
251
  async function applyEnhancers ({
199
252
  results,
200
253
  enhancers = {},
201
- projectRoot
254
+ options
202
255
  }) {
203
256
  cliMessages.info('Applying Enhancers');
204
257
  return Object.values(enhancers).reduce(async (acc, enhancer) => {
205
- if (await enhancer.test({
206
- projectRoot
207
- })) {
258
+ if (await enhancer.test(options)) {
208
259
  const previousResults = await acc;
209
- return deepmerge__default["default"](previousResults, await enhancer.lift({
210
- results: previousResults,
211
- projectRoot
212
- }));
260
+ return deepmerge__default["default"](previousResults, await enhancer.lift(_objectSpread2({
261
+ results: previousResults
262
+ }, options)));
213
263
  }
214
264
 
215
265
  return acc;
@@ -295,20 +345,6 @@ async function resolvePackageManager ({
295
345
  throw new Error('Package-manager could not be determined');
296
346
  }
297
347
 
298
- function enhanceHuskyEnhancer(packageManager) {
299
- return {
300
- test: husky.test,
301
- lift: ({
302
- projectRoot,
303
- results
304
- }) => husky.lift({
305
- projectRoot,
306
- results,
307
- packageManager
308
- })
309
- };
310
- }
311
-
312
348
  async function lift ({
313
349
  projectRoot,
314
350
  results
@@ -332,8 +368,11 @@ async function lift ({
332
368
  });
333
369
  const enhancerResults = await applyEnhancers({
334
370
  results,
335
- enhancers: [enhanceHuskyEnhancer(packageManager), enginesEnhancer],
336
- projectRoot
371
+ enhancers: [huskyPlugin__namespace, enginesEnhancer, coveragePlugin],
372
+ options: {
373
+ packageManager,
374
+ projectRoot
375
+ }
337
376
  });
338
377
  await liftPackage(deepmerge__default["default"].all([{
339
378
  projectRoot,
@@ -1485,7 +1524,7 @@ async function scaffoldVerification({
1485
1524
  decisions,
1486
1525
  dialect,
1487
1526
  pathWithinParent
1488
- }), husky.scaffold({
1527
+ }), huskyPlugin.scaffold({
1489
1528
  projectRoot,
1490
1529
  packageManager
1491
1530
  })]);