@form8ion/javascript 11.2.1 → 11.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
@@ -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,159 @@ 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
+ provenance: true,
575
+ ...publishRegistry && {registry: publishRegistry}
576
+ }
577
+ }
578
+ })
579
+ ]);
580
+
581
+ return deepmerge__default["default"](
582
+ rollupResults,
583
+ {
584
+ scripts: {
585
+ clean: `rimraf ./${defaultBuildDirectory}`,
586
+ prebuild: 'run-s clean',
587
+ build: 'npm-run-all --print-label --parallel build:*',
588
+ prepack: 'run-s build'
589
+ },
590
+ dependencies: ['update-notifier'],
591
+ devDependencies: ['rimraf'],
592
+ vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},
593
+ buildDirectory: defaultBuildDirectory,
594
+ badges: defineBadges(packageName, visibility),
595
+ nextSteps: []
596
+ }
597
+ );
598
+ }
599
+
600
+ async function isCli ({projectRoot}) {
601
+ const {bin} = JSON.parse(await node_fs.promises.readFile(`${projectRoot}/package.json`, 'utf-8'));
602
+
603
+ return !!bin;
604
+ }
605
+
606
+ function liftCli ({projectRoot}) {
607
+ return liftPublishable({projectRoot});
608
+ }
609
+
610
+ async function scaffoldProjectType ({
611
+ projectType,
612
+ projectRoot,
613
+ projectName,
614
+ packageName,
615
+ packageManager,
616
+ visibility,
617
+ packageBundlers,
618
+ scope,
619
+ vcs,
620
+ decisions,
621
+ dialect,
622
+ provideExample,
623
+ publishRegistry
624
+ }) {
625
+ switch (projectType) {
626
+ case javascriptCore.projectTypes.PACKAGE:
627
+ return scaffoldPackageType({
628
+ projectRoot,
629
+ projectName,
630
+ packageName,
631
+ packageManager,
632
+ visibility,
633
+ scope,
634
+ packageBundlers,
635
+ vcs,
636
+ decisions,
637
+ dialect,
638
+ provideExample,
639
+ publishRegistry
640
+ });
641
+ case javascriptCore.projectTypes.APPLICATION:
642
+ return scaffoldApplicationType({projectRoot});
643
+ case javascriptCore.projectTypes.CLI:
644
+ return scaffoldCliType({packageName, visibility, projectRoot, dialect, publishRegistry});
645
+ case javascriptCore.projectTypes.MONOREPO:
646
+ return scaffoldMonorepoType({projectRoot});
647
+ case 'Other':
648
+ return {};
649
+ default:
650
+ throw new Error(`The project-type of ${projectType} is invalid`);
651
+ }
652
+ }
653
+
654
+ async function lifter$1 ({projectRoot}) {
655
+ if (await isPackage({projectRoot})) return liftPackage$1({projectRoot});
656
+ if (await isCli({projectRoot})) return liftCli({projectRoot});
657
+
658
+ return {};
659
+ }
660
+
661
+ async function tester$1 ({projectRoot}) {
662
+ return await isPackage({projectRoot}) || isCli({projectRoot});
663
+ }
664
+
521
665
  var projectTypes = /*#__PURE__*/Object.freeze({
522
666
  __proto__: null,
523
- scaffold: scaffoldPackageType,
667
+ scaffold: scaffoldProjectType,
524
668
  lift: lifter$1,
525
669
  test: tester$1
526
670
  });
@@ -1257,125 +1401,6 @@ function buildPackageName (projectName, scope) {
1257
1401
  throw new Error(`The package name ${name} is invalid:${os.EOL}\t* ${errors.join(`${os.EOL}\t* `)}`);
1258
1402
  }
1259
1403
 
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
1404
  async function chooseProjectTypePlugin ({types, projectType, decisions}) {
1380
1405
  if (!Object.keys(types).length) return 'Other';
1381
1406