@form8ion/javascript 3.0.1 → 3.1.0-alpha.4

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,62 @@ 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 deepmerge__default["default"].all([c8Results, {
194
+ scripts: {
195
+ 'test:unit': 'cross-env NODE_ENV=test c8 run-s test:unit:base'
196
+ }
197
+ }]);
198
+ }
199
+
200
+ return {};
201
+ }
202
+
203
+ var coveragePlugin = /*#__PURE__*/Object.freeze({
204
+ __proto__: null,
205
+ scaffold: scaffoldCoverage,
206
+ lift: lift$2,
207
+ test: nycIsConfigured
208
+ });
209
+
153
210
  const unitTestFrameworksSchema = joi__namespace.object().required().pattern(/^/, joi__namespace.object({
154
211
  scaffolder: joi__namespace.func().arity(1).required()
155
212
  }));
@@ -198,18 +255,15 @@ async function scaffoldUnitTesting ({
198
255
  async function applyEnhancers ({
199
256
  results,
200
257
  enhancers = {},
201
- projectRoot
258
+ options
202
259
  }) {
203
260
  cliMessages.info('Applying Enhancers');
204
261
  return Object.values(enhancers).reduce(async (acc, enhancer) => {
205
- if (await enhancer.test({
206
- projectRoot
207
- })) {
262
+ if (await enhancer.test(options)) {
208
263
  const previousResults = await acc;
209
- return deepmerge__default["default"](previousResults, await enhancer.lift({
210
- results: previousResults,
211
- projectRoot
212
- }));
264
+ return deepmerge__default["default"](previousResults, await enhancer.lift(_objectSpread2({
265
+ results: previousResults
266
+ }, options)));
213
267
  }
214
268
 
215
269
  return acc;
@@ -295,20 +349,6 @@ async function resolvePackageManager ({
295
349
  throw new Error('Package-manager could not be determined');
296
350
  }
297
351
 
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
352
  async function lift ({
313
353
  projectRoot,
314
354
  results
@@ -332,8 +372,11 @@ async function lift ({
332
372
  });
333
373
  const enhancerResults = await applyEnhancers({
334
374
  results,
335
- enhancers: [enhanceHuskyEnhancer(packageManager), enginesEnhancer],
336
- projectRoot
375
+ enhancers: [huskyPlugin__namespace, enginesEnhancer, coveragePlugin],
376
+ options: {
377
+ packageManager,
378
+ projectRoot
379
+ }
337
380
  });
338
381
  await liftPackage(deepmerge__default["default"].all([{
339
382
  projectRoot,
@@ -1485,7 +1528,7 @@ async function scaffoldVerification({
1485
1528
  decisions,
1486
1529
  dialect,
1487
1530
  pathWithinParent
1488
- }), husky.scaffold({
1531
+ }), huskyPlugin.scaffold({
1489
1532
  projectRoot,
1490
1533
  packageManager
1491
1534
  })]);