@form8ion/javascript 11.2.0 → 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
@@ -460,7 +460,6 @@ async function scaffoldPackageType ({
460
460
  files: ['example.js', ...javascriptCore.dialects.COMMON_JS === dialect ? ['index.js'] : ['lib/']],
461
461
  publishConfig: {
462
462
  access: 'Public' === visibility ? 'public' : 'restricted',
463
- provenance: true,
464
463
  ...publishRegistry && {registry: publishRegistry}
465
464
  },
466
465
  sideEffects: false,
@@ -498,15 +497,13 @@ async function scaffoldPackageType ({
498
497
  {summary: 'Add the appropriate `save` flag to the installation instructions in the README'},
499
498
  {summary: 'Publish pre-release versions to npm until package is stable enough to publish v1.0.0'}
500
499
  ],
501
- scripts: {'lint:publish': 'publint'},
502
- badges: defineBadges(packageName, visibility),
503
- devDependencies: ['publint']
500
+ badges: defineBadges(packageName, visibility)
504
501
  },
505
502
  detailsForBuild
506
503
  ]);
507
504
  }
508
505
 
509
- async function lifter$1 ({projectRoot}) {
506
+ async function liftPublishable ({projectRoot}) {
510
507
  await javascriptCore.mergeIntoExistingPackageJson({projectRoot, config: {publishConfig: {provenance: true}}});
511
508
 
512
509
  return {
@@ -515,15 +512,159 @@ async function lifter$1 ({projectRoot}) {
515
512
  };
516
513
  }
517
514
 
518
- async function tester$1 ({projectRoot}) {
519
- const {exports, publishConfig} = JSON.parse(await node_fs.promises.readFile(`${projectRoot}/package.json`, 'utf-8'));
515
+ function liftPackage$1 ({projectRoot}) {
516
+ return liftPublishable({projectRoot});
517
+ }
520
518
 
521
- return !!exports || !!publishConfig;
519
+ async function isPackage ({projectRoot}) {
520
+ const {exports, publishConfig, bin} = JSON.parse(await node_fs.promises.readFile(`${projectRoot}/package.json`, 'utf-8'));
521
+
522
+ return !!exports || (!!publishConfig && !bin);
523
+ }
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});
522
663
  }
523
664
 
524
665
  var projectTypes = /*#__PURE__*/Object.freeze({
525
666
  __proto__: null,
526
- scaffold: scaffoldPackageType,
667
+ scaffold: scaffoldProjectType,
527
668
  lift: lifter$1,
528
669
  test: tester$1
529
670
  });
@@ -1260,125 +1401,6 @@ function buildPackageName (projectName, scope) {
1260
1401
  throw new Error(`The package name ${name} is invalid:${os.EOL}\t* ${errors.join(`${os.EOL}\t* `)}`);
1261
1402
  }
1262
1403
 
1263
- const defaultBuildDirectory$1 = 'public';
1264
-
1265
- async function scaffoldApplicationType ({projectRoot}) {
1266
- cliMessages.info('Scaffolding Application Details');
1267
-
1268
- await javascriptCore.mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
1269
-
1270
- const buildDirectory = defaultBuildDirectory$1;
1271
-
1272
- return {
1273
- scripts: {
1274
- clean: `rimraf ./${buildDirectory}`,
1275
- start: `node ./${buildDirectory}/index.js`,
1276
- prebuild: 'run-s clean'
1277
- },
1278
- dependencies: [],
1279
- devDependencies: ['rimraf'],
1280
- vcsIgnore: {files: ['.env'], directories: [`/${buildDirectory}/`]},
1281
- buildDirectory,
1282
- nextSteps: []
1283
- };
1284
- }
1285
-
1286
- async function scaffoldMonorepoType ({projectRoot}) {
1287
- cliMessages.info('Scaffolding Monorepo Details');
1288
-
1289
- await javascriptCore.mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
1290
-
1291
- return {
1292
- nextSteps: [{
1293
- summary: 'Add packages to your new monorepo',
1294
- description: 'Leverage [@form8ion/add-package-to-monorepo](https://npm.im/@form8ion/add-package-to-monorepo)'
1295
- + ' to scaffold new packages into your new monorepo'
1296
- }]
1297
- };
1298
- }
1299
-
1300
- const defaultBuildDirectory = 'bin';
1301
-
1302
- async function scaffoldCliType ({packageName, visibility, projectRoot, dialect, publishRegistry}) {
1303
- const [rollupResults] = await Promise.all([
1304
- rollup.scaffold({projectRoot, dialect, projectType: javascriptCore.projectTypes.CLI}),
1305
- javascriptCore.mergeIntoExistingPackageJson({
1306
- projectRoot,
1307
- config: {
1308
- bin: {},
1309
- files: [`${defaultBuildDirectory}/`],
1310
- publishConfig: {
1311
- access: 'Public' === visibility ? 'public' : 'restricted',
1312
- provenance: true,
1313
- ...publishRegistry && {registry: publishRegistry}
1314
- }
1315
- }
1316
- })
1317
- ]);
1318
-
1319
- return deepmerge__default["default"](
1320
- rollupResults,
1321
- {
1322
- scripts: {
1323
- clean: `rimraf ./${defaultBuildDirectory}`,
1324
- prebuild: 'run-s clean',
1325
- build: 'npm-run-all --print-label --parallel build:*',
1326
- prepack: 'run-s build'
1327
- },
1328
- dependencies: ['update-notifier'],
1329
- devDependencies: ['rimraf'],
1330
- vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},
1331
- buildDirectory: defaultBuildDirectory,
1332
- badges: defineBadges(packageName, visibility),
1333
- nextSteps: []
1334
- }
1335
- );
1336
- }
1337
-
1338
- async function scaffoldProjectType ({
1339
- projectType,
1340
- projectRoot,
1341
- projectName,
1342
- packageName,
1343
- packageManager,
1344
- visibility,
1345
- packageBundlers,
1346
- scope,
1347
- vcs,
1348
- decisions,
1349
- dialect,
1350
- provideExample,
1351
- publishRegistry
1352
- }) {
1353
- switch (projectType) {
1354
- case javascriptCore.projectTypes.PACKAGE:
1355
- return scaffoldPackageType({
1356
- projectRoot,
1357
- projectName,
1358
- packageName,
1359
- packageManager,
1360
- visibility,
1361
- scope,
1362
- packageBundlers,
1363
- vcs,
1364
- decisions,
1365
- dialect,
1366
- provideExample,
1367
- publishRegistry
1368
- });
1369
- case javascriptCore.projectTypes.APPLICATION:
1370
- return scaffoldApplicationType({projectRoot});
1371
- case javascriptCore.projectTypes.CLI:
1372
- return scaffoldCliType({packageName, visibility, projectRoot, dialect, publishRegistry});
1373
- case javascriptCore.projectTypes.MONOREPO:
1374
- return scaffoldMonorepoType({projectRoot});
1375
- case 'Other':
1376
- return {};
1377
- default:
1378
- throw new Error(`The project-type of ${projectType} is invalid`);
1379
- }
1380
- }
1381
-
1382
1404
  async function chooseProjectTypePlugin ({types, projectType, decisions}) {
1383
1405
  if (!Object.keys(types).length) return 'Other';
1384
1406