@form8ion/javascript 11.9.0 → 11.10.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
@@ -378,10 +378,14 @@ run \`${buildDocumentationCommand(packageManager)}\` to inject the usage example
378
378
  };
379
379
  }
380
380
 
381
- function defineBadges (packageName, visibility) {
381
+ function determinePackageAccessLevelFromProjectVisibility ({projectVisibility}) {
382
+ return 'Public' === projectVisibility ? 'public' : 'restricted';
383
+ }
384
+
385
+ function defineBadges (packageName, accessLevel) {
382
386
  return {
383
387
  consumer: {
384
- ...'Public' === visibility && {
388
+ ...'public' === accessLevel && {
385
389
  npm: {
386
390
  img: `https://img.shields.io/npm/v/${packageName}?logo=npm`,
387
391
  text: 'npm',
@@ -393,6 +397,55 @@ function defineBadges (packageName, visibility) {
393
397
  };
394
398
  }
395
399
 
400
+ function enhanceSlsa ({provenance}) {
401
+ if (provenance) {
402
+ return {
403
+ badges: {
404
+ status: {
405
+ slsa: {
406
+ img: 'https://slsa.dev/images/gh-badge-level2.svg',
407
+ url: 'https://slsa.dev',
408
+ text: 'SLSA Level 2'
409
+ }
410
+ }
411
+ }
412
+ };
413
+ }
414
+
415
+ return {};
416
+ }
417
+
418
+ async function liftProvenance ({projectRoot, packageDetails}) {
419
+ const {publishConfig: {access}} = packageDetails;
420
+
421
+ if ('public' === access) {
422
+ await javascriptCore.mergeIntoExistingPackageJson({projectRoot, config: {publishConfig: {provenance: true}}});
423
+
424
+ return enhanceSlsa({provenance: true});
425
+ }
426
+
427
+ return {};
428
+ }
429
+
430
+ async function liftPublishable ({projectRoot, packageDetails}) {
431
+ const {name: packageName, publishConfig: {access: pacakgeAccessLevel}} = packageDetails;
432
+
433
+ return deepmerge__default["default"](
434
+ await liftProvenance({packageDetails, projectRoot}),
435
+ {
436
+ devDependencies: ['publint'],
437
+ scripts: {'lint:publish': 'publint --strict'},
438
+ badges: defineBadges(packageName, pacakgeAccessLevel)
439
+ }
440
+ );
441
+ }
442
+
443
+ async function scaffoldPublishable ({packageName, packageAccessLevel}) {
444
+ return {
445
+ badges: await defineBadges(packageName, packageAccessLevel)
446
+ };
447
+ }
448
+
396
449
  async function chooseBundler ({bundlers, decisions}) {
397
450
  if (!Object.keys(bundlers).length) return 'Other';
398
451
 
@@ -503,7 +556,8 @@ async function scaffoldPackageType ({
503
556
  }) {
504
557
  cliMessages.info('Scaffolding Package Details');
505
558
 
506
- const [detailsForBuild] = await Promise.all([
559
+ const packageAccessLevel = determinePackageAccessLevelFromProjectVisibility({projectVisibility: visibility});
560
+ const [detailsForBuild, publishableResults] = await Promise.all([
507
561
  buildDetails({
508
562
  projectRoot,
509
563
  projectName,
@@ -514,12 +568,13 @@ async function scaffoldPackageType ({
514
568
  provideExample,
515
569
  decisions
516
570
  }),
571
+ scaffoldPublishable({packageName, packageAccessLevel}),
517
572
  javascriptCore.mergeIntoExistingPackageJson({
518
573
  projectRoot,
519
574
  config: {
520
575
  files: ['example.js', ...javascriptCore.dialects.COMMON_JS === dialect ? ['index.js'] : ['lib/']],
521
576
  publishConfig: {
522
- access: 'Public' === visibility ? 'public' : 'restricted',
577
+ access: packageAccessLevel,
523
578
  ...publishRegistry && {registry: publishRegistry}
524
579
  },
525
580
  sideEffects: false,
@@ -552,55 +607,18 @@ async function scaffoldPackageType ({
552
607
  ]);
553
608
 
554
609
  return deepmerge__default["default"].all([
610
+ publishableResults,
555
611
  {
556
612
  documentation: scaffoldPackageDocumentation({packageName, visibility, scope, packageManager, provideExample}),
557
613
  nextSteps: [
558
614
  {summary: 'Add the appropriate `save` flag to the installation instructions in the README'},
559
615
  {summary: 'Publish pre-release versions to npm until package is stable enough to publish v1.0.0'}
560
- ],
561
- badges: defineBadges(packageName, visibility)
616
+ ]
562
617
  },
563
618
  detailsForBuild
564
619
  ]);
565
620
  }
566
621
 
567
- function enhanceSlsa ({provenance}) {
568
- if (provenance) {
569
- return {
570
- badges: {
571
- status: {
572
- slsa: {
573
- img: 'https://slsa.dev/images/gh-badge-level2.svg',
574
- url: 'https://slsa.dev',
575
- text: 'SLSA Level 2'
576
- }
577
- }
578
- }
579
- };
580
- }
581
-
582
- return {};
583
- }
584
-
585
- async function liftProvenance ({projectRoot, packageDetails}) {
586
- const {publishConfig: {access}} = packageDetails;
587
-
588
- if ('public' === access) {
589
- await javascriptCore.mergeIntoExistingPackageJson({projectRoot, config: {publishConfig: {provenance: true}}});
590
-
591
- return enhanceSlsa({provenance: true});
592
- }
593
-
594
- return {};
595
- }
596
-
597
- async function liftPublishable ({projectRoot, packageDetails}) {
598
- return deepmerge__default["default"](
599
- await liftProvenance({packageDetails, projectRoot}),
600
- {devDependencies: ['publint'], scripts: {'lint:publish': 'publint --strict'}}
601
- );
602
- }
603
-
604
622
  function liftPackage$1 ({projectRoot, packageDetails}) {
605
623
  return liftPublishable({projectRoot, packageDetails});
606
624
  }
@@ -649,22 +667,25 @@ async function scaffoldMonorepoType ({projectRoot}) {
649
667
  const defaultBuildDirectory = 'bin';
650
668
 
651
669
  async function scaffoldCliType ({packageName, visibility, projectRoot, dialect, publishRegistry}) {
652
- const [rollupResults] = await Promise.all([
670
+ const packageAccessLevel = determinePackageAccessLevelFromProjectVisibility({projectVisibility: visibility});
671
+ const [rollupResults, publishableResults] = await Promise.all([
653
672
  rollup.scaffold({projectRoot, dialect, projectType: javascriptCore.projectTypes.CLI}),
673
+ scaffoldPublishable({packageName, packageAccessLevel}),
654
674
  javascriptCore.mergeIntoExistingPackageJson({
655
675
  projectRoot,
656
676
  config: {
657
677
  bin: {},
658
678
  files: [`${defaultBuildDirectory}/`],
659
679
  publishConfig: {
660
- access: 'Public' === visibility ? 'public' : 'restricted',
680
+ access: packageAccessLevel,
661
681
  ...publishRegistry && {registry: publishRegistry}
662
682
  }
663
683
  }
664
684
  })
665
685
  ]);
666
686
 
667
- return deepmerge__default["default"](
687
+ return deepmerge__default["default"].all([
688
+ publishableResults,
668
689
  rollupResults,
669
690
  {
670
691
  scripts: {
@@ -677,10 +698,9 @@ async function scaffoldCliType ({packageName, visibility, projectRoot, dialect,
677
698
  devDependencies: ['rimraf'],
678
699
  vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},
679
700
  buildDirectory: defaultBuildDirectory,
680
- badges: defineBadges(packageName, visibility),
681
701
  nextSteps: []
682
702
  }
683
- );
703
+ ]);
684
704
  }
685
705
 
686
706
  async function isCli ({packageDetails: {bin}}) {
@@ -735,6 +755,10 @@ async function scaffoldProjectType ({
735
755
  }
736
756
  }
737
757
 
758
+ async function tester$1 ({projectRoot, packageDetails}) {
759
+ return await isPackage({projectRoot, packageDetails}) || isCli({projectRoot, packageDetails});
760
+ }
761
+
738
762
  async function lifter$1 ({projectRoot, packageDetails}) {
739
763
  if (await isPackage({projectRoot, packageDetails})) return liftPackage$1({projectRoot, packageDetails});
740
764
  if (await isCli({projectRoot, packageDetails})) return liftCli({projectRoot, packageDetails});
@@ -742,15 +766,11 @@ async function lifter$1 ({projectRoot, packageDetails}) {
742
766
  return {};
743
767
  }
744
768
 
745
- async function tester$1 ({projectRoot, packageDetails}) {
746
- return await isPackage({projectRoot, packageDetails}) || isCli({projectRoot, packageDetails});
747
- }
748
-
749
769
  var projectTypes = /*#__PURE__*/Object.freeze({
750
770
  __proto__: null,
751
771
  scaffold: scaffoldProjectType,
752
- lift: lifter$1,
753
- test: tester$1
772
+ test: tester$1,
773
+ lift: lifter$1
754
774
  });
755
775
 
756
776
  function write ({projectRoot, config}) {