@form8ion/javascript 11.2.1 → 11.3.1

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
@@ -503,7 +503,7 @@ async function scaffoldPackageType ({
503
503
  ]);
504
504
  }
505
505
 
506
- async function lifter$1 ({projectRoot}) {
506
+ async function liftPublishable ({projectRoot}) {
507
507
  await javascriptCore.mergeIntoExistingPackageJson({projectRoot, config: {publishConfig: {provenance: true}}});
508
508
 
509
509
  return {
@@ -512,15 +512,158 @@ async function lifter$1 ({projectRoot}) {
512
512
  };
513
513
  }
514
514
 
515
- async function tester$1 ({projectRoot}) {
515
+ function liftPackage$1 ({projectRoot}) {
516
+ return liftPublishable({projectRoot});
517
+ }
518
+
519
+ async function isPackage ({projectRoot}) {
516
520
  const {exports, publishConfig, bin} = JSON.parse(await node_fs.promises.readFile(`${projectRoot}/package.json`, 'utf-8'));
517
521
 
518
522
  return !!exports || (!!publishConfig && !bin);
519
523
  }
520
524
 
525
+ const defaultBuildDirectory$1 = 'public';
526
+
527
+ async function scaffoldApplicationType ({projectRoot}) {
528
+ cliMessages.info('Scaffolding Application Details');
529
+
530
+ await javascriptCore.mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
531
+
532
+ const buildDirectory = defaultBuildDirectory$1;
533
+
534
+ return {
535
+ scripts: {
536
+ clean: `rimraf ./${buildDirectory}`,
537
+ start: `node ./${buildDirectory}/index.js`,
538
+ prebuild: 'run-s clean'
539
+ },
540
+ dependencies: [],
541
+ devDependencies: ['rimraf'],
542
+ vcsIgnore: {files: ['.env'], directories: [`/${buildDirectory}/`]},
543
+ buildDirectory,
544
+ nextSteps: []
545
+ };
546
+ }
547
+
548
+ async function scaffoldMonorepoType ({projectRoot}) {
549
+ cliMessages.info('Scaffolding Monorepo Details');
550
+
551
+ await javascriptCore.mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
552
+
553
+ return {
554
+ nextSteps: [{
555
+ summary: 'Add packages to your new monorepo',
556
+ description: 'Leverage [@form8ion/add-package-to-monorepo](https://npm.im/@form8ion/add-package-to-monorepo)'
557
+ + ' to scaffold new packages into your new monorepo'
558
+ }]
559
+ };
560
+ }
561
+
562
+ const defaultBuildDirectory = 'bin';
563
+
564
+ async function scaffoldCliType ({packageName, visibility, projectRoot, dialect, publishRegistry}) {
565
+ const [rollupResults] = await Promise.all([
566
+ rollup.scaffold({projectRoot, dialect, projectType: javascriptCore.projectTypes.CLI}),
567
+ javascriptCore.mergeIntoExistingPackageJson({
568
+ projectRoot,
569
+ config: {
570
+ bin: {},
571
+ files: [`${defaultBuildDirectory}/`],
572
+ publishConfig: {
573
+ access: 'Public' === visibility ? 'public' : 'restricted',
574
+ ...publishRegistry && {registry: publishRegistry}
575
+ }
576
+ }
577
+ })
578
+ ]);
579
+
580
+ return deepmerge__default["default"](
581
+ rollupResults,
582
+ {
583
+ scripts: {
584
+ clean: `rimraf ./${defaultBuildDirectory}`,
585
+ prebuild: 'run-s clean',
586
+ build: 'npm-run-all --print-label --parallel build:*',
587
+ prepack: 'run-s build'
588
+ },
589
+ dependencies: ['update-notifier'],
590
+ devDependencies: ['rimraf'],
591
+ vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},
592
+ buildDirectory: defaultBuildDirectory,
593
+ badges: defineBadges(packageName, visibility),
594
+ nextSteps: []
595
+ }
596
+ );
597
+ }
598
+
599
+ async function isCli ({projectRoot}) {
600
+ const {bin} = JSON.parse(await node_fs.promises.readFile(`${projectRoot}/package.json`, 'utf-8'));
601
+
602
+ return !!bin;
603
+ }
604
+
605
+ function liftCli ({projectRoot}) {
606
+ return liftPublishable({projectRoot});
607
+ }
608
+
609
+ async function scaffoldProjectType ({
610
+ projectType,
611
+ projectRoot,
612
+ projectName,
613
+ packageName,
614
+ packageManager,
615
+ visibility,
616
+ packageBundlers,
617
+ scope,
618
+ vcs,
619
+ decisions,
620
+ dialect,
621
+ provideExample,
622
+ publishRegistry
623
+ }) {
624
+ switch (projectType) {
625
+ case javascriptCore.projectTypes.PACKAGE:
626
+ return scaffoldPackageType({
627
+ projectRoot,
628
+ projectName,
629
+ packageName,
630
+ packageManager,
631
+ visibility,
632
+ scope,
633
+ packageBundlers,
634
+ vcs,
635
+ decisions,
636
+ dialect,
637
+ provideExample,
638
+ publishRegistry
639
+ });
640
+ case javascriptCore.projectTypes.APPLICATION:
641
+ return scaffoldApplicationType({projectRoot});
642
+ case javascriptCore.projectTypes.CLI:
643
+ return scaffoldCliType({packageName, visibility, projectRoot, dialect, publishRegistry});
644
+ case javascriptCore.projectTypes.MONOREPO:
645
+ return scaffoldMonorepoType({projectRoot});
646
+ case 'Other':
647
+ return {};
648
+ default:
649
+ throw new Error(`The project-type of ${projectType} is invalid`);
650
+ }
651
+ }
652
+
653
+ async function lifter$1 ({projectRoot}) {
654
+ if (await isPackage({projectRoot})) return liftPackage$1({projectRoot});
655
+ if (await isCli({projectRoot})) return liftCli({projectRoot});
656
+
657
+ return {};
658
+ }
659
+
660
+ async function tester$1 ({projectRoot}) {
661
+ return await isPackage({projectRoot}) || isCli({projectRoot});
662
+ }
663
+
521
664
  var projectTypes = /*#__PURE__*/Object.freeze({
522
665
  __proto__: null,
523
- scaffold: scaffoldPackageType,
666
+ scaffold: scaffoldProjectType,
524
667
  lift: lifter$1,
525
668
  test: tester$1
526
669
  });
@@ -1257,125 +1400,6 @@ function buildPackageName (projectName, scope) {
1257
1400
  throw new Error(`The package name ${name} is invalid:${os.EOL}\t* ${errors.join(`${os.EOL}\t* `)}`);
1258
1401
  }
1259
1402
 
1260
- const defaultBuildDirectory$1 = 'public';
1261
-
1262
- async function scaffoldApplicationType ({projectRoot}) {
1263
- cliMessages.info('Scaffolding Application Details');
1264
-
1265
- await javascriptCore.mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
1266
-
1267
- const buildDirectory = defaultBuildDirectory$1;
1268
-
1269
- return {
1270
- scripts: {
1271
- clean: `rimraf ./${buildDirectory}`,
1272
- start: `node ./${buildDirectory}/index.js`,
1273
- prebuild: 'run-s clean'
1274
- },
1275
- dependencies: [],
1276
- devDependencies: ['rimraf'],
1277
- vcsIgnore: {files: ['.env'], directories: [`/${buildDirectory}/`]},
1278
- buildDirectory,
1279
- nextSteps: []
1280
- };
1281
- }
1282
-
1283
- async function scaffoldMonorepoType ({projectRoot}) {
1284
- cliMessages.info('Scaffolding Monorepo Details');
1285
-
1286
- await javascriptCore.mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
1287
-
1288
- return {
1289
- nextSteps: [{
1290
- summary: 'Add packages to your new monorepo',
1291
- description: 'Leverage [@form8ion/add-package-to-monorepo](https://npm.im/@form8ion/add-package-to-monorepo)'
1292
- + ' to scaffold new packages into your new monorepo'
1293
- }]
1294
- };
1295
- }
1296
-
1297
- const defaultBuildDirectory = 'bin';
1298
-
1299
- async function scaffoldCliType ({packageName, visibility, projectRoot, dialect, publishRegistry}) {
1300
- const [rollupResults] = await Promise.all([
1301
- rollup.scaffold({projectRoot, dialect, projectType: javascriptCore.projectTypes.CLI}),
1302
- javascriptCore.mergeIntoExistingPackageJson({
1303
- projectRoot,
1304
- config: {
1305
- bin: {},
1306
- files: [`${defaultBuildDirectory}/`],
1307
- publishConfig: {
1308
- access: 'Public' === visibility ? 'public' : 'restricted',
1309
- provenance: true,
1310
- ...publishRegistry && {registry: publishRegistry}
1311
- }
1312
- }
1313
- })
1314
- ]);
1315
-
1316
- return deepmerge__default["default"](
1317
- rollupResults,
1318
- {
1319
- scripts: {
1320
- clean: `rimraf ./${defaultBuildDirectory}`,
1321
- prebuild: 'run-s clean',
1322
- build: 'npm-run-all --print-label --parallel build:*',
1323
- prepack: 'run-s build'
1324
- },
1325
- dependencies: ['update-notifier'],
1326
- devDependencies: ['rimraf'],
1327
- vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},
1328
- buildDirectory: defaultBuildDirectory,
1329
- badges: defineBadges(packageName, visibility),
1330
- nextSteps: []
1331
- }
1332
- );
1333
- }
1334
-
1335
- async function scaffoldProjectType ({
1336
- projectType,
1337
- projectRoot,
1338
- projectName,
1339
- packageName,
1340
- packageManager,
1341
- visibility,
1342
- packageBundlers,
1343
- scope,
1344
- vcs,
1345
- decisions,
1346
- dialect,
1347
- provideExample,
1348
- publishRegistry
1349
- }) {
1350
- switch (projectType) {
1351
- case javascriptCore.projectTypes.PACKAGE:
1352
- return scaffoldPackageType({
1353
- projectRoot,
1354
- projectName,
1355
- packageName,
1356
- packageManager,
1357
- visibility,
1358
- scope,
1359
- packageBundlers,
1360
- vcs,
1361
- decisions,
1362
- dialect,
1363
- provideExample,
1364
- publishRegistry
1365
- });
1366
- case javascriptCore.projectTypes.APPLICATION:
1367
- return scaffoldApplicationType({projectRoot});
1368
- case javascriptCore.projectTypes.CLI:
1369
- return scaffoldCliType({packageName, visibility, projectRoot, dialect, publishRegistry});
1370
- case javascriptCore.projectTypes.MONOREPO:
1371
- return scaffoldMonorepoType({projectRoot});
1372
- case 'Other':
1373
- return {};
1374
- default:
1375
- throw new Error(`The project-type of ${projectType} is invalid`);
1376
- }
1377
- }
1378
-
1379
1403
  async function chooseProjectTypePlugin ({types, projectType, decisions}) {
1380
1404
  if (!Object.keys(types).length) return 'Other';
1381
1405