@form8ion/javascript 11.10.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.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { questionNames as questionNames$2, questions } from '@travi/language-scaffolder-prompts';
2
2
  import deepmerge from 'deepmerge';
3
3
  import { fileTypes, fileExists, validateOptions, writeConfigFile, applyEnhancers } from '@form8ion/core';
4
- import { scaffoldChoice, projectTypes as projectTypes$1, packageManagers, dialects as dialects$1, mergeIntoExistingPackageJson, writePackageJson, DEV_DEPENDENCY_TYPE, PROD_DEPENDENCY_TYPE } from '@form8ion/javascript-core';
4
+ import { scaffoldChoice, projectTypes as projectTypes$1, packageManagers, mergeIntoExistingPackageJson, dialects as dialects$1, writePackageJson, DEV_DEPENDENCY_TYPE, PROD_DEPENDENCY_TYPE } from '@form8ion/javascript-core';
5
5
  import joi from 'joi';
6
6
  import { prompt as prompt$1, Separator } from '@form8ion/overridable-prompts';
7
7
  import { scaffold, lift as lift$3 } from '@form8ion/codecov';
@@ -342,6 +342,10 @@ run \`${buildDocumentationCommand(packageManager)}\` to inject the usage example
342
342
  };
343
343
  }
344
344
 
345
+ function determinePackageAccessLevelFromProjectVisibility ({projectVisibility}) {
346
+ return 'Public' === projectVisibility ? 'public' : 'restricted';
347
+ }
348
+
345
349
  function defineBadges (packageName, accessLevel) {
346
350
  return {
347
351
  consumer: {
@@ -357,8 +361,53 @@ function defineBadges (packageName, accessLevel) {
357
361
  };
358
362
  }
359
363
 
360
- function determinePackageAccessLevelFromProjectVisibility ({projectVisibility}) {
361
- return 'Public' === projectVisibility ? 'public' : 'restricted';
364
+ function enhanceSlsa ({provenance}) {
365
+ if (provenance) {
366
+ return {
367
+ badges: {
368
+ status: {
369
+ slsa: {
370
+ img: 'https://slsa.dev/images/gh-badge-level2.svg',
371
+ url: 'https://slsa.dev',
372
+ text: 'SLSA Level 2'
373
+ }
374
+ }
375
+ }
376
+ };
377
+ }
378
+
379
+ return {};
380
+ }
381
+
382
+ async function liftProvenance ({projectRoot, packageDetails}) {
383
+ const {publishConfig: {access}} = packageDetails;
384
+
385
+ if ('public' === access) {
386
+ await mergeIntoExistingPackageJson({projectRoot, config: {publishConfig: {provenance: true}}});
387
+
388
+ return enhanceSlsa({provenance: true});
389
+ }
390
+
391
+ return {};
392
+ }
393
+
394
+ async function liftPublishable ({projectRoot, packageDetails}) {
395
+ const {name: packageName, publishConfig: {access: pacakgeAccessLevel}} = packageDetails;
396
+
397
+ return deepmerge(
398
+ await liftProvenance({packageDetails, projectRoot}),
399
+ {
400
+ devDependencies: ['publint'],
401
+ scripts: {'lint:publish': 'publint --strict'},
402
+ badges: defineBadges(packageName, pacakgeAccessLevel)
403
+ }
404
+ );
405
+ }
406
+
407
+ async function scaffoldPublishable ({packageName, packageAccessLevel}) {
408
+ return {
409
+ badges: await defineBadges(packageName, packageAccessLevel)
410
+ };
362
411
  }
363
412
 
364
413
  async function chooseBundler ({bundlers, decisions}) {
@@ -472,7 +521,7 @@ async function scaffoldPackageType ({
472
521
  info('Scaffolding Package Details');
473
522
 
474
523
  const packageAccessLevel = determinePackageAccessLevelFromProjectVisibility({projectVisibility: visibility});
475
- const [detailsForBuild] = await Promise.all([
524
+ const [detailsForBuild, publishableResults] = await Promise.all([
476
525
  buildDetails({
477
526
  projectRoot,
478
527
  projectName,
@@ -483,6 +532,7 @@ async function scaffoldPackageType ({
483
532
  provideExample,
484
533
  decisions
485
534
  }),
535
+ scaffoldPublishable({packageName, packageAccessLevel}),
486
536
  mergeIntoExistingPackageJson({
487
537
  projectRoot,
488
538
  config: {
@@ -521,61 +571,18 @@ async function scaffoldPackageType ({
521
571
  ]);
522
572
 
523
573
  return deepmerge.all([
574
+ publishableResults,
524
575
  {
525
576
  documentation: scaffoldPackageDocumentation({packageName, visibility, scope, packageManager, provideExample}),
526
577
  nextSteps: [
527
578
  {summary: 'Add the appropriate `save` flag to the installation instructions in the README'},
528
579
  {summary: 'Publish pre-release versions to npm until package is stable enough to publish v1.0.0'}
529
- ],
530
- badges: defineBadges(packageName, packageAccessLevel)
580
+ ]
531
581
  },
532
582
  detailsForBuild
533
583
  ]);
534
584
  }
535
585
 
536
- function enhanceSlsa ({provenance}) {
537
- if (provenance) {
538
- return {
539
- badges: {
540
- status: {
541
- slsa: {
542
- img: 'https://slsa.dev/images/gh-badge-level2.svg',
543
- url: 'https://slsa.dev',
544
- text: 'SLSA Level 2'
545
- }
546
- }
547
- }
548
- };
549
- }
550
-
551
- return {};
552
- }
553
-
554
- async function liftProvenance ({projectRoot, packageDetails}) {
555
- const {publishConfig: {access}} = packageDetails;
556
-
557
- if ('public' === access) {
558
- await mergeIntoExistingPackageJson({projectRoot, config: {publishConfig: {provenance: true}}});
559
-
560
- return enhanceSlsa({provenance: true});
561
- }
562
-
563
- return {};
564
- }
565
-
566
- async function liftPublishable ({projectRoot, packageDetails}) {
567
- const {name: packageName, publishConfig: {access: pacakgeAccessLevel}} = packageDetails;
568
-
569
- return deepmerge(
570
- await liftProvenance({packageDetails, projectRoot}),
571
- {
572
- devDependencies: ['publint'],
573
- scripts: {'lint:publish': 'publint --strict'},
574
- badges: defineBadges(packageName, pacakgeAccessLevel)
575
- }
576
- );
577
- }
578
-
579
586
  function liftPackage$1 ({projectRoot, packageDetails}) {
580
587
  return liftPublishable({projectRoot, packageDetails});
581
588
  }
@@ -625,8 +632,9 @@ const defaultBuildDirectory = 'bin';
625
632
 
626
633
  async function scaffoldCliType ({packageName, visibility, projectRoot, dialect, publishRegistry}) {
627
634
  const packageAccessLevel = determinePackageAccessLevelFromProjectVisibility({projectVisibility: visibility});
628
- const [rollupResults] = await Promise.all([
635
+ const [rollupResults, publishableResults] = await Promise.all([
629
636
  scaffold$3({projectRoot, dialect, projectType: projectTypes$1.CLI}),
637
+ scaffoldPublishable({packageName, packageAccessLevel}),
630
638
  mergeIntoExistingPackageJson({
631
639
  projectRoot,
632
640
  config: {
@@ -640,7 +648,8 @@ async function scaffoldCliType ({packageName, visibility, projectRoot, dialect,
640
648
  })
641
649
  ]);
642
650
 
643
- return deepmerge(
651
+ return deepmerge.all([
652
+ publishableResults,
644
653
  rollupResults,
645
654
  {
646
655
  scripts: {
@@ -653,10 +662,9 @@ async function scaffoldCliType ({packageName, visibility, projectRoot, dialect,
653
662
  devDependencies: ['rimraf'],
654
663
  vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},
655
664
  buildDirectory: defaultBuildDirectory,
656
- badges: defineBadges(packageName, packageAccessLevel),
657
665
  nextSteps: []
658
666
  }
659
- );
667
+ ]);
660
668
  }
661
669
 
662
670
  async function isCli ({packageDetails: {bin}}) {
@@ -711,6 +719,10 @@ async function scaffoldProjectType ({
711
719
  }
712
720
  }
713
721
 
722
+ async function tester$1 ({projectRoot, packageDetails}) {
723
+ return await isPackage({projectRoot, packageDetails}) || isCli({projectRoot, packageDetails});
724
+ }
725
+
714
726
  async function lifter$1 ({projectRoot, packageDetails}) {
715
727
  if (await isPackage({projectRoot, packageDetails})) return liftPackage$1({projectRoot, packageDetails});
716
728
  if (await isCli({projectRoot, packageDetails})) return liftCli({projectRoot, packageDetails});
@@ -718,15 +730,11 @@ async function lifter$1 ({projectRoot, packageDetails}) {
718
730
  return {};
719
731
  }
720
732
 
721
- async function tester$1 ({projectRoot, packageDetails}) {
722
- return await isPackage({projectRoot, packageDetails}) || isCli({projectRoot, packageDetails});
723
- }
724
-
725
733
  var projectTypes = /*#__PURE__*/Object.freeze({
726
734
  __proto__: null,
727
735
  scaffold: scaffoldProjectType,
728
- lift: lifter$1,
729
- test: tester$1
736
+ test: tester$1,
737
+ lift: lifter$1
730
738
  });
731
739
 
732
740
  function write ({projectRoot, config}) {