@form8ion/javascript 12.2.0 → 12.3.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/lib/index.js CHANGED
@@ -24,10 +24,10 @@ var camelcase = require('camelcase');
24
24
  var path = require('path');
25
25
  var filedirname = require('filedirname');
26
26
  var huskyPlugin = require('@form8ion/husky');
27
+ var node_fs = require('node:fs');
27
28
  var ini = require('ini');
28
29
  var prettier = require('@form8ion/prettier');
29
30
  var eslintPlugin = require('@form8ion/eslint');
30
- var node_fs = require('node:fs');
31
31
  var sortProperties = require('sort-object-keys');
32
32
 
33
33
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -250,7 +250,7 @@ async function scaffoldCodeStyle ({
250
250
  ].filter(Boolean)));
251
251
  }
252
252
 
253
- function lifter$3 (options) {
253
+ function lifter$4 (options) {
254
254
  return core.applyEnhancers({options, enhancers: [eslintPlugin__namespace]});
255
255
  }
256
256
 
@@ -261,7 +261,7 @@ function tester$3 (options) {
261
261
  var codeStylePlugin = /*#__PURE__*/Object.freeze({
262
262
  __proto__: null,
263
263
  scaffold: scaffoldCodeStyle,
264
- lift: lifter$3,
264
+ lift: lifter$4,
265
265
  test: tester$3
266
266
  });
267
267
 
@@ -296,7 +296,7 @@ function tester$2 ({projectRoot}) {
296
296
  return core.fileExists(`${projectRoot}/.npmrc`);
297
297
  }
298
298
 
299
- async function lifter$2 ({projectRoot}) {
299
+ async function lifter$3 ({projectRoot}) {
300
300
  const pathToConfig = `${projectRoot}/.npmrc`;
301
301
 
302
302
  const {
@@ -314,7 +314,7 @@ var npmConfigPlugin = /*#__PURE__*/Object.freeze({
314
314
  __proto__: null,
315
315
  scaffold: scaffoldNpmConfig,
316
316
  test: tester$2,
317
- lift: lifter$2
317
+ lift: lifter$3
318
318
  });
319
319
 
320
320
  async function test({projectRoot}) {
@@ -787,7 +787,7 @@ function vcsRepositoryHostedOnGithub(vcs) {
787
787
  return vcs && 'github' === vcs.host;
788
788
  }
789
789
 
790
- async function lifter$1 ({projectRoot, packageDetails, vcs}) {
790
+ async function lifter$2 ({projectRoot, packageDetails, vcs}) {
791
791
  if (await isPackage({projectRoot, packageDetails})) return liftPackage$1({projectRoot, packageDetails});
792
792
  if (await isCli({projectRoot, packageDetails})) return liftCli({projectRoot, packageDetails});
793
793
 
@@ -806,7 +806,7 @@ var projectTypes = /*#__PURE__*/Object.freeze({
806
806
  __proto__: null,
807
807
  scaffold: scaffoldProjectType,
808
808
  test: tester$1,
809
- lift: lifter$1
809
+ lift: lifter$2
810
810
  });
811
811
 
812
812
  function write ({projectRoot, config}) {
@@ -834,7 +834,7 @@ async function scaffoldBabel ({projectRoot, preset}) {
834
834
  };
835
835
  }
836
836
 
837
- async function lifter ({results, projectRoot}) {
837
+ async function lifter$1 ({results, projectRoot}) {
838
838
  await addIgnore({ignore: results.buildDirectory, projectRoot});
839
839
 
840
840
  return {};
@@ -888,7 +888,7 @@ var dialects = /*#__PURE__*/Object.freeze({
888
888
  __proto__: null,
889
889
  scaffold: scaffoldDialect,
890
890
  test: predicate,
891
- lift: lifter
891
+ lift: lifter$1
892
892
  });
893
893
 
894
894
  function buildPackageDetails ({
@@ -1093,20 +1093,64 @@ async function liftPackage ({
1093
1093
  }
1094
1094
  }
1095
1095
 
1096
+ function determineLockfilePathFor (packageManager) {
1097
+ const lockfilePaths = {
1098
+ [javascriptCore.packageManagers.NPM]: 'package-lock.json',
1099
+ [javascriptCore.packageManagers.YARN]: 'yarn.lock'
1100
+ };
1101
+
1102
+ return lockfilePaths[packageManager];
1103
+ }
1104
+
1105
+ function npmIsUsed ({projectRoot}) {
1106
+ return core.fileExists(`${projectRoot}/${determineLockfilePathFor(javascriptCore.packageManagers.NPM)}`);
1107
+ }
1108
+
1109
+ function yarnIsUsed ({projectRoot}) {
1110
+ return core.fileExists(`${projectRoot}/${determineLockfilePathFor(javascriptCore.packageManagers.YARN)}`);
1111
+ }
1112
+
1113
+ async function jsPackageManagerIsUsed ({projectRoot}) {
1114
+ const [npmFound, yarnFound] = await Promise.all([
1115
+ npmIsUsed({projectRoot}),
1116
+ yarnIsUsed({projectRoot})
1117
+ ]);
1118
+
1119
+ return npmFound || yarnFound;
1120
+ }
1121
+
1122
+ async function liftCorepack () {
1123
+ await execa__default["default"]('corepack', ['use', 'npm@latest']);
1124
+ }
1125
+
1126
+ async function lifter () {
1127
+ await liftCorepack();
1128
+
1129
+ return {};
1130
+ }
1131
+
1096
1132
  async function resolvePackageManager ({projectRoot, packageManager}) {
1097
1133
  if (packageManager) return packageManager;
1098
1134
 
1099
- if (await core.fileExists(`${projectRoot}/package-lock.json`)) {
1135
+ if (await npmIsUsed({projectRoot})) {
1100
1136
  return javascriptCore.packageManagers.NPM;
1101
1137
  }
1102
1138
 
1103
- if (await core.fileExists(`${projectRoot}/yarn.lock`)) {
1139
+ if (await yarnIsUsed({projectRoot})) {
1104
1140
  return javascriptCore.packageManagers.YARN;
1105
1141
  }
1106
1142
 
1107
1143
  throw new Error('Package-manager could not be determined');
1108
1144
  }
1109
1145
 
1146
+ var packageManagers = /*#__PURE__*/Object.freeze({
1147
+ __proto__: null,
1148
+ test: jsPackageManagerIsUsed,
1149
+ lift: lifter,
1150
+ determineCurrent: resolvePackageManager,
1151
+ defineLockfilePath: determineLockfilePathFor
1152
+ });
1153
+
1110
1154
  async function lift ({projectRoot, vcs, results, pathWithinParent}) {
1111
1155
  cliMessages.info('Lifting JavaScript-specific details');
1112
1156
 
@@ -1133,7 +1177,8 @@ async function lift ({projectRoot, vcs, results, pathWithinParent}) {
1133
1177
  dialects,
1134
1178
  codeStylePlugin,
1135
1179
  npmConfigPlugin,
1136
- projectTypes
1180
+ projectTypes,
1181
+ packageManagers
1137
1182
  ],
1138
1183
  options: {packageManager, projectRoot, vcs, packageDetails: JSON.parse(packageContents)}
1139
1184
  });
@@ -1477,13 +1522,17 @@ async function scaffoldNodeVersion ({projectRoot, nodeVersionCategory}) {
1477
1522
 
1478
1523
  const version = await determineLatestVersionOf(nodeVersionCategory);
1479
1524
 
1480
- await fs.promises.writeFile(`${projectRoot}/.nvmrc`, version);
1525
+ await node_fs.promises.writeFile(`${projectRoot}/.nvmrc`, version);
1481
1526
 
1482
1527
  await install(nodeVersionCategory);
1483
1528
 
1484
1529
  return version;
1485
1530
  }
1486
1531
 
1532
+ function nvmIsUsed ({projectRoot}) {
1533
+ return core.fileExists(`${projectRoot}/.nvmrc`);
1534
+ }
1535
+
1487
1536
  function buildBadgesDetails (contributors) {
1488
1537
  return deepmerge__default["default"].all(contributors).badges;
1489
1538
  }
@@ -1578,15 +1627,6 @@ function buildAllowedHostsList ({packageManager, registries}) {
1578
1627
 
1579
1628
  const lockfileLintSupportedPackageManagers = [javascriptCore.packageManagers.NPM, javascriptCore.packageManagers.YARN];
1580
1629
 
1581
- function determineLockfilePathFor(packageManager) {
1582
- const lockfilePaths = {
1583
- [javascriptCore.packageManagers.NPM]: 'package-lock.json',
1584
- [javascriptCore.packageManagers.YARN]: 'yarn.lock'
1585
- };
1586
-
1587
- return lockfilePaths[packageManager];
1588
- }
1589
-
1590
1630
  function lockfileLintSupports(packageManager) {
1591
1631
  return lockfileLintSupportedPackageManagers.includes(packageManager);
1592
1632
  }
@@ -1797,13 +1837,12 @@ async function scaffolder (options) {
1797
1837
  }
1798
1838
 
1799
1839
  async function tester ({projectRoot}) {
1800
- const [nvmIsConfigured, packageLockExists, yarnLockExists] = await Promise.all([
1801
- core.fileExists(`${projectRoot}/.nvmrc`),
1802
- core.fileExists(`${projectRoot}/package-lock.json`),
1803
- core.fileExists(`${projectRoot}/yarn.lock`)
1840
+ const [nvmFound, jsPackageManagerFound] = await Promise.all([
1841
+ nvmIsUsed({projectRoot}),
1842
+ jsPackageManagerIsUsed({projectRoot})
1804
1843
  ]);
1805
1844
 
1806
- return nvmIsConfigured || packageLockExists || yarnLockExists;
1845
+ return nvmFound || jsPackageManagerFound;
1807
1846
  }
1808
1847
 
1809
1848
  const questionNames = {...languageScaffolderPrompts.questionNames, ...questionNames$1};