UNPKG

@frontitude/cli

Version:

The Frontitude CLI enables product teams to integrate their code with Frontitude (frontitude.com), thus creating a single source of truth for their product copy, from design to development.

1 lines 2.17 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const tslib_1=require("tslib"),core_1=require("@oclif/core"),strings=tslib_1.__importStar(require("../../strings.json")),multiSelectDropdown=tslib_1.__importStar(require("../../lib/ui/multiSelectDropdown")),workspaceLib=tslib_1.__importStar(require("../../lib/workspace")),projectsLib=tslib_1.__importStar(require("../../lib/projects")),codebaseIntegrationLib=tslib_1.__importStar(require("../../lib/codebaseIntegration")),messages=tslib_1.__importStar(require("../../lib/ui/messages")),SELECTION_LIBRARY_IDENTIFIER="library";class SourceSet extends core_1.Command{async run(){const e=await codebaseIntegrationLib.getIsLibraryConnected(),t=await workspaceLib.getWorkspaceProjects(),r=await codebaseIntegrationLib.getConnectedProjects(),s=t.filter((({id:e})=>!r.map((({id:e})=>e)).includes(e))),i={name:messages.getConnectedSourceDisplayName(strings["copyLibrary-displayName"],workspaceLib.generateFrontitudeLibraryLink()),short:strings["copyLibrary-displayName"],value:"library"},o=[].concat(e?[{...i,checked:!0}]:[]).concat(r.map((e=>({name:messages.getConnectedSourceDisplayName(e.name,projectsLib.generateFrontitudeProjectLink(e.id)),short:e.name,value:e.id,checked:!0})))).concat(e?[]:[i]).concat(s.map((e=>({name:messages.getConnectedSourceDisplayName(e.name,projectsLib.generateFrontitudeProjectLink(e.id)),short:e.name,value:e.id})))),a=await multiSelectDropdown.promptSelection(strings["sourceSetCommand-selectionMessage"],o),n=a.some((e=>"library"===e)),c=a.filter((e=>"library"!==e)).map((e=>t.concat(r).find((t=>t.id===e)))).map((e=>({name:e.name,id:e.id})));await codebaseIntegrationLib.setIsLibraryConnected(n),await codebaseIntegrationLib.setConnectedProjects(c);const d=c.length+(n?1:0);0===d?this.log(strings["sourceSetCommand-successMessage-zero"]):1===d?this.log(strings["sourceSetCommand-successMessage-one"].replace("{{connectedSourcesCount}}",d.toString())):this.log(strings["sourceSetCommand-successMessage-many"].replace("{{connectedSourcesCount}}",d.toString()))}}exports.default=SourceSet,SourceSet.description="Set project Ids",SourceSet.examples=["$ fttd projects set\n"];