@sprucelabs/spruce-cli 14.28.5 → 14.29.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/CHANGELOG.md +35 -0
- package/build/__tests__/behavioral/BootingWithBadFiles.test.js +26 -13
- package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js +13 -9
- package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.d.ts +1 -1
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js +24 -14
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/TestingDataStores.test.js +15 -11
- package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +3 -1
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAListener.test.d.ts +2 -0
- package/build/__tests__/behavioral/events/CreatingAListener.test.js +157 -81
- package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingListenersInSync.test.d.ts +7 -0
- package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js +171 -0
- package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -0
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.d.ts +1 -0
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +53 -21
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/UpgradingASkill2.test.d.ts +1 -1
- package/build/__tests__/behavioral/skill/UpgradingASkill2.test.js +10 -20
- package/build/__tests__/behavioral/skill/UpgradingASkill2.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/UpgradingWithListeners.test.d.ts +5 -0
- package/build/__tests__/behavioral/skill/UpgradingWithListeners.test.js +137 -0
- package/build/__tests__/behavioral/skill/UpgradingWithListeners.test.js.map +1 -0
- package/build/__tests__/behavioral/{CreatingADataStore.test.d.ts → stores/CreatingADataStore.test.d.ts} +2 -1
- package/build/__tests__/behavioral/{CreatingADataStore.test.js → stores/CreatingADataStore.test.js} +87 -57
- package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -0
- package/build/__tests__/behavioral/{KeepingDataStoresInSync.test.d.ts → stores/KeepingDataStoresInSync.test.d.ts} +5 -2
- package/build/__tests__/behavioral/{KeepingDataStoresInSync.test.js → stores/KeepingDataStoresInSync.test.js} +138 -49
- package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -0
- package/build/__tests__/behavioral/tests/CreatingATest.test.js +14 -10
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/views/TestingViewControllers.test.d.ts +1 -0
- package/build/__tests__/behavioral/views/TestingViewControllers.test.js +67 -35
- package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
- package/build/__tests__/implementation/AuthService.test.d.ts +1 -0
- package/build/__tests__/implementation/AuthService.test.js +8 -0
- package/build/__tests__/implementation/AuthService.test.js.map +1 -1
- package/build/__tests__/implementation/EventStore.test.js +3 -1
- package/build/__tests__/implementation/EventStore.test.js.map +1 -1
- package/build/__tests__/implementation/StoreFeature.test.d.ts +4 -0
- package/build/__tests__/implementation/StoreFeature.test.js +132 -0
- package/build/__tests__/implementation/StoreFeature.test.js.map +1 -0
- package/build/cli.d.ts +1 -1
- package/build/cli.js +1 -1
- package/build/cli.js.map +1 -1
- package/build/features/event/EventFeature.d.ts +2 -2
- package/build/features/event/EventFeature.js +53 -13
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/event/actions/ListenAction.d.ts +1 -0
- package/build/features/event/actions/ListenAction.js +60 -31
- package/build/features/event/actions/ListenAction.js.map +1 -1
- package/build/features/event/actions/SyncListenersAction.d.ts +15 -0
- package/build/features/event/actions/SyncListenersAction.js +115 -0
- package/build/features/event/actions/SyncListenersAction.js.map +1 -0
- package/build/features/event/builders/ListenerTemplateItemBuilder.d.ts +8 -0
- package/build/features/event/builders/ListenerTemplateItemBuilder.js +65 -0
- package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -0
- package/build/features/event/stores/EventStore.js +2 -2
- package/build/features/event/stores/EventStore.js.map +1 -1
- package/build/features/event/stores/ListenerStore.d.ts +9 -0
- package/build/features/event/stores/ListenerStore.js +122 -0
- package/build/features/event/stores/ListenerStore.js.map +1 -0
- package/build/features/event/writers/EventWriter.d.ts +4 -1
- package/build/features/event/writers/EventWriter.js +42 -8
- package/build/features/event/writers/EventWriter.js.map +1 -1
- package/build/features/node/NodeFeature.js +6 -11
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/skill/SkillFeature.js +1 -1
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/skill/stores/SkillStore.js +4 -8
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/store/StoreFeature.d.ts +1 -1
- package/build/features/store/StoreFeature.js +6 -6
- package/build/features/store/StoreFeature.js.map +1 -1
- package/build/features/store/actions/SyncAction.js +11 -10
- package/build/features/store/actions/SyncAction.js.map +1 -1
- package/build/features/store/writers/StoreWriter.d.ts +6 -0
- package/build/features/store/writers/StoreWriter.js +78 -8
- package/build/features/store/writers/StoreWriter.js.map +1 -1
- package/build/services/AuthService.d.ts +4 -1
- package/build/services/AuthService.js +15 -4
- package/build/services/AuthService.js.map +1 -1
- package/build/services/LintService.d.ts +4 -1
- package/build/services/LintService.js +123 -94
- package/build/services/LintService.js.map +1 -1
- package/build/services/ServiceFactory.js +3 -3
- package/build/services/ServiceFactory.js.map +1 -1
- package/build/stores/StoreFactory.d.ts +2 -0
- package/build/stores/StoreFactory.js +4 -1
- package/build/stores/StoreFactory.js.map +1 -1
- package/build/tests/AbstractCliTest.js +3 -3
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/writers/AbstractWriter.d.ts +0 -3
- package/build/writers/AbstractWriter.js +2 -18
- package/build/writers/AbstractWriter.js.map +1 -1
- package/package.json +30 -28
- package/src/__tests__/behavioral/BootingWithBadFiles.test.ts +8 -3
- package/src/__tests__/behavioral/SettingLogTransportsInASkill.test.ts +2 -0
- package/src/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.ts +10 -5
- package/src/__tests__/behavioral/TestingDataStores.test.ts +2 -0
- package/src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts +1 -0
- package/src/__tests__/behavioral/events/CreatingAListener.test.ts +28 -9
- package/src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts +1 -1
- package/src/__tests__/behavioral/events/KeepingListenersInSync.test.ts +47 -0
- package/src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts +6 -0
- package/src/__tests__/behavioral/skill/UpgradingASkill2.test.ts +1 -10
- package/src/__tests__/behavioral/skill/UpgradingWithListeners.test.ts +59 -0
- package/src/__tests__/behavioral/{CreatingADataStore.test.ts → stores/CreatingADataStore.test.ts} +13 -6
- package/src/__tests__/behavioral/{KeepingDataStoresInSync.test.ts → stores/KeepingDataStoresInSync.test.ts} +37 -8
- package/src/__tests__/behavioral/tests/CreatingATest.test.ts +2 -0
- package/src/__tests__/behavioral/views/TestingViewControllers.test.ts +6 -0
- package/src/__tests__/implementation/AuthService.test.ts +6 -0
- package/src/__tests__/implementation/EventStore.test.ts +1 -0
- package/src/__tests__/implementation/StoreFeature.test.ts +40 -0
- package/src/cli.ts +2 -2
- package/src/features/event/EventFeature.ts +21 -4
- package/src/features/event/actions/ListenAction.ts +9 -3
- package/src/features/event/actions/SyncListenersAction.ts +38 -0
- package/src/features/event/builders/ListenerTemplateItemBuilder.ts +27 -0
- package/src/features/event/stores/EventStore.ts +1 -1
- package/src/features/event/stores/ListenerStore.ts +32 -0
- package/src/features/event/writers/EventWriter.ts +19 -0
- package/src/features/node/NodeFeature.ts +0 -3
- package/src/features/skill/SkillFeature.ts +1 -1
- package/src/features/skill/stores/SkillStore.ts +4 -3
- package/src/features/store/StoreFeature.ts +3 -3
- package/src/features/store/actions/SyncAction.ts +2 -1
- package/src/features/store/writers/StoreWriter.ts +30 -0
- package/src/services/AuthService.ts +15 -5
- package/src/services/LintService.ts +19 -2
- package/src/services/ServiceFactory.ts +9 -3
- package/src/stores/StoreFactory.ts +3 -0
- package/src/tests/AbstractCliTest.ts +2 -2
- package/src/writers/AbstractWriter.ts +2 -13
- package/build/__tests__/behavioral/CreatingADataStore.test.js.map +0 -1
- package/build/__tests__/behavioral/KeepingDataStoresInSync.test.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/features/event/EventFeature.ts"],"names":["EventFeature","options","code","isRequired","name","diskUtil","resolvePath","__dirname","emitter","on","handleDidFetchSchemas","bind","handleWillExecute","handleDidExecute","createDir","cwd","payload","featureCode","actionCode","initiatingAction","EventStore","clearCache","combined","combineCodes","featureInstaller","isInstalled","settings","Service","clearListenerCache","appendRemoteToResultsOrPrompt","results","Action","execute","remote","r","getRemote","TerminalInterface","doesSupportColor","Error","ui","stopLoading","renderLine","summaryLines","getHost","lastSync","getLastSyncOptions","writer","getEventContractBuilder","fetchContractsAndGenerateUniqueSchemas","schemas","shouldSyncOnlyCoreEvents","uniqueSchemas","contractBuilder","EventContractBuilder","optionsSchema","syncEventActionSchema","eventGenerator","Writer","eventStore","Store","skillStore","dependencyService","doesHashSprucePathExist","hasCombinedContractBeenWritten","AbstractFeature"],"mappings":"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","sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport TerminalInterface from '../../interfaces/TerminalInterface'\nimport { FileDescription } from '../../types/cli.types'\nimport AbstractFeature, {\n\tFeatureDependency,\n\tFeatureOptions,\n} from '../AbstractFeature'\nimport { FeatureActionResponse, FeatureCode } from '../features.types'\nimport EventContractBuilder from './builders/EventContractBuilder'\nimport EventStore from './stores/EventStore'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tevent: EventFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tevent: undefined\n\t}\n}\n\nexport default class EventFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'event'\n\tpublic nameReadable = 'Events'\n\tpublic description = 'Connect to the Mercury Event Engine.'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{ code: 'schema', isRequired: true },\n\t]\n\tpublic packageDependencies = [\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-client',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-types',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-utils',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-plugin',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-core-events',\n\t\t},\n\t]\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic readonly fileDescriptions: FileDescription[] = []\n\tprivate contractBuilder?: EventContractBuilder\n\tprivate initiatingAction?: string\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on(\n\t\t\t'schema.did-fetch-schemas',\n\t\t\tthis.handleDidFetchSchemas.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tthis.handleWillExecute.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.did-execute',\n\t\t\tthis.handleDidExecute.bind(this)\n\t\t)\n\t}\n\n\tpublic async afterPackageInstall() {\n\t\tdiskUtil.createDir(diskUtil.resolvePath(this.cwd, 'src', 'events'))\n\t\treturn {}\n\t}\n\n\tprivate async handleWillExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}): Promise<FeatureActionResponse> {\n\t\tconst { featureCode, actionCode } = payload\n\n\t\tif (!this.initiatingAction) {\n\t\t\tEventStore.clearCache()\n\t\t\tconst combined = this.combineCodes(featureCode, actionCode)\n\t\t\tthis.initiatingAction = combined\n\t\t}\n\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('event')\n\n\t\tif (featureCode === 'node' || featureCode === 'upgrade') {\n\t\t\tconst settings = this.Service('eventSettings')\n\t\t\tsettings.clearListenerCache()\n\t\t}\n\n\t\tif (\n\t\t\tisInstalled &&\n\t\t\t(featureCode === 'event' ||\n\t\t\t\tfeatureCode === 'eventContract' ||\n\t\t\t\tactionCode === 'login') &&\n\t\t\tactionCode !== 'setRemote'\n\t\t) {\n\t\t\treturn this.appendRemoteToResultsOrPrompt()\n\t\t}\n\n\t\treturn {}\n\t}\n\n\tprivate async handleDidExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}) {\n\t\tconst { featureCode, actionCode } = payload\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('event')\n\n\t\tlet results = {}\n\n\t\tif (isInstalled && featureCode === 'node' && actionCode === 'upgrade') {\n\t\t\tresults = this.Action('event', 'sync').execute({})\n\t\t}\n\n\t\tif (this.initiatingAction === this.combineCodes(featureCode, actionCode)) {\n\t\t\tEventStore.clearCache()\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate combineCodes(featureCode: string, actionCode: string) {\n\t\treturn `${featureCode}.${actionCode}`\n\t}\n\n\tprivate async appendRemoteToResultsOrPrompt(): Promise<FeatureActionResponse> {\n\t\tconst remote = this.Service('remote')\n\t\tconst r = remote.getRemote()\n\n\t\tif (!r) {\n\t\t\tif (!TerminalInterface.doesSupportColor()) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Dang! I couldn't find env.HOST. Once that is set, lets try again!`\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tthis.ui.stopLoading()\n\t\t\tthis.ui.renderLine(\n\t\t\t\t`Uh oh! It looks like you haven't configured your remote! We gotta do that.`\n\t\t\t)\n\n\t\t\tconst results = await this.Action('event', 'setRemote').execute({})\n\n\t\t\treturn results\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tsummaryLines: [`Remote: ${r}`, `Host: ${remote.getHost()}`],\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async handleDidFetchSchemas(payload: { schemas?: Schema[] | null }) {\n\t\tconst isInstalled = await this.featureInstaller.isInstalled(this.code)\n\n\t\tconst lastSync = this.Service('eventSettings').getLastSyncOptions()\n\n\t\tif (lastSync && isInstalled) {\n\t\t\tconst writer = this.getEventContractBuilder()\n\n\t\t\tconst uniqueSchemas = await writer.fetchContractsAndGenerateUniqueSchemas(\n\t\t\t\tpayload.schemas ?? [],\n\t\t\t\tlastSync.shouldSyncOnlyCoreEvents\n\t\t\t)\n\n\t\t\treturn {\n\t\t\t\tschemas: uniqueSchemas.schemas ?? [],\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tschemas: [],\n\t\t}\n\t}\n\n\tpublic getEventContractBuilder() {\n\t\tif (!this.contractBuilder) {\n\t\t\tthis.contractBuilder = new EventContractBuilder({\n\t\t\t\tcwd: this.cwd,\n\t\t\t\toptionsSchema: syncEventActionSchema,\n\t\t\t\tui: this.ui,\n\t\t\t\teventGenerator: this.Writer('event'),\n\t\t\t\teventStore: this.Store('event'),\n\t\t\t\tskillStore: this.Store('skill'),\n\t\t\t\tdependencyService: this.Service('dependency'),\n\t\t\t})\n\t\t}\n\n\t\treturn this.contractBuilder\n\t}\n\n\tpublic hasBeenSynced() {\n\t\tif (diskUtil.doesHashSprucePathExist(this.cwd)) {\n\t\t\tconst writer = this.Writer('event')\n\n\t\t\treturn writer.hasCombinedContractBeenWritten(this.cwd)\n\t\t}\n\n\t\treturn false\n\t}\n}\n"],"file":"EventFeature.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/features/event/EventFeature.ts"],"names":["EventFeature","options","code","isRequired","name","diskUtil","resolvePath","__dirname","emitter","on","handleDidFetchSchemas","bind","handleWillExecute","handleDidExecute","createDir","cwd","featureInstaller","isInstalled","isSkillInstalled","Action","execute","payload","featureCode","actionCode","results","initiatingAction","EventStore","clearCache","combined","combineCodes","settings","Service","clearListenerCache","appendRemoteToResultsOrPrompt","remoteResults","actionUtil","mergeActionResults","syncResults","remote","r","getRemote","TerminalInterface","doesSupportColor","Error","ui","stopLoading","renderLine","summaryLines","getHost","lastSync","getLastSyncOptions","writer","getEventContractBuilder","fetchContractsAndGenerateUniqueSchemas","schemas","shouldSyncOnlyCoreEvents","uniqueSchemas","contractBuilder","EventContractBuilder","optionsSchema","syncEventActionSchema","eventGenerator","Writer","eventStore","Store","skillStore","dependencyService","doesHashSprucePathExist","hasCombinedContractBeenWritten","AbstractFeature"],"mappings":"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","sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport TerminalInterface from '../../interfaces/TerminalInterface'\nimport { FileDescription } from '../../types/cli.types'\nimport actionUtil from '../../utilities/action.utility'\nimport AbstractFeature, {\n\tFeatureDependency,\n\tFeatureOptions,\n} from '../AbstractFeature'\nimport { FeatureActionResponse, FeatureCode } from '../features.types'\nimport EventContractBuilder from './builders/EventContractBuilder'\nimport EventStore from './stores/EventStore'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tevent: EventFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tevent: undefined\n\t}\n}\n\nexport default class EventFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'event'\n\tpublic nameReadable = 'Events'\n\tpublic description = 'Connect to the Mercury Event Engine.'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{ code: 'schema', isRequired: true },\n\t]\n\tpublic packageDependencies = [\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-client',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-types',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-utils',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-plugin',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-core-events',\n\t\t},\n\t]\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic readonly fileDescriptions: FileDescription[] = []\n\tprivate contractBuilder?: EventContractBuilder\n\tprivate initiatingAction?: string\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on(\n\t\t\t'schema.did-fetch-schemas',\n\t\t\tthis.handleDidFetchSchemas.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tthis.handleWillExecute.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.did-execute',\n\t\t\tthis.handleDidExecute.bind(this)\n\t\t)\n\t}\n\n\tpublic async afterPackageInstall() {\n\t\tdiskUtil.createDir(diskUtil.resolvePath(this.cwd, 'src', 'events'))\n\t\tconst isSkillInstalled = await this.featureInstaller.isInstalled('skill')\n\t\tif (isSkillInstalled) {\n\t\t\treturn await this.Action('event', 'sync.listeners').execute({})\n\t\t}\n\n\t\treturn {}\n\t}\n\n\tprivate async handleWillExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}): Promise<FeatureActionResponse> {\n\t\tconst { featureCode, actionCode } = payload\n\n\t\tlet results: FeatureActionResponse = {}\n\n\t\tif (!this.initiatingAction) {\n\t\t\tEventStore.clearCache()\n\t\t\tconst combined = this.combineCodes(featureCode, actionCode)\n\t\t\tthis.initiatingAction = combined\n\t\t}\n\n\t\tif (featureCode === 'node' || featureCode === 'upgrade') {\n\t\t\tconst settings = this.Service('eventSettings')\n\t\t\tsettings.clearListenerCache()\n\t\t}\n\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('event')\n\n\t\tif (\n\t\t\tisInstalled &&\n\t\t\t(featureCode === 'event' ||\n\t\t\t\tfeatureCode === 'eventContract' ||\n\t\t\t\tactionCode === 'login') &&\n\t\t\tactionCode !== 'setRemote'\n\t\t) {\n\t\t\tconst remoteResults = await this.appendRemoteToResultsOrPrompt()\n\n\t\t\tresults = actionUtil.mergeActionResults(results, remoteResults)\n\t\t}\n\n\t\tif (featureCode === 'node' && actionCode === 'upgrade' && isInstalled) {\n\t\t\tconst syncResults = await this.Action('event', 'sync.listeners').execute(\n\t\t\t\t{}\n\t\t\t)\n\t\t\tresults = actionUtil.mergeActionResults(results, syncResults)\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate async handleDidExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}) {\n\t\tconst { featureCode, actionCode } = payload\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('event')\n\n\t\tlet results = {}\n\n\t\tif (isInstalled && featureCode === 'node' && actionCode === 'upgrade') {\n\t\t\tresults = this.Action('event', 'sync').execute({})\n\t\t}\n\n\t\tif (this.initiatingAction === this.combineCodes(featureCode, actionCode)) {\n\t\t\tEventStore.clearCache()\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate combineCodes(featureCode: string, actionCode: string) {\n\t\treturn `${featureCode}.${actionCode}`\n\t}\n\n\tprivate async appendRemoteToResultsOrPrompt(): Promise<FeatureActionResponse> {\n\t\tconst remote = this.Service('remote')\n\t\tconst r = remote.getRemote()\n\n\t\tif (!r) {\n\t\t\tif (!TerminalInterface.doesSupportColor()) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Dang! I couldn't find env.HOST. Once that is set, lets try again!`\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tthis.ui.stopLoading()\n\t\t\tthis.ui.renderLine(\n\t\t\t\t`Uh oh! It looks like you haven't configured your remote! We gotta do that.`\n\t\t\t)\n\n\t\t\tconst results = await this.Action('event', 'setRemote').execute({})\n\n\t\t\treturn results\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tsummaryLines: [`Remote: ${r}`, `Host: ${remote.getHost()}`],\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async handleDidFetchSchemas(payload: { schemas?: Schema[] | null }) {\n\t\tconst isInstalled = await this.featureInstaller.isInstalled(this.code)\n\n\t\tconst lastSync = this.Service('eventSettings').getLastSyncOptions()\n\n\t\tif (lastSync && isInstalled) {\n\t\t\tconst writer = this.getEventContractBuilder()\n\n\t\t\tconst uniqueSchemas = await writer.fetchContractsAndGenerateUniqueSchemas(\n\t\t\t\tpayload.schemas ?? [],\n\t\t\t\tlastSync.shouldSyncOnlyCoreEvents\n\t\t\t)\n\n\t\t\treturn {\n\t\t\t\tschemas: uniqueSchemas.schemas ?? [],\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tschemas: [],\n\t\t}\n\t}\n\n\tpublic getEventContractBuilder() {\n\t\tif (!this.contractBuilder) {\n\t\t\tthis.contractBuilder = new EventContractBuilder({\n\t\t\t\tcwd: this.cwd,\n\t\t\t\toptionsSchema: syncEventActionSchema,\n\t\t\t\tui: this.ui,\n\t\t\t\teventGenerator: this.Writer('event'),\n\t\t\t\teventStore: this.Store('event'),\n\t\t\t\tskillStore: this.Store('skill'),\n\t\t\t\tdependencyService: this.Service('dependency'),\n\t\t\t})\n\t\t}\n\n\t\treturn this.contractBuilder\n\t}\n\n\tpublic hasBeenSynced() {\n\t\tif (diskUtil.doesHashSprucePathExist(this.cwd)) {\n\t\t\tconst writer = this.Writer('event')\n\n\t\t\treturn writer.hasCombinedContractBeenWritten(this.cwd)\n\t\t}\n\n\t\treturn false\n\t}\n}\n"],"file":"EventFeature.js"}
|
|
@@ -7,6 +7,7 @@ export default class ListenAction extends AbstractAction<OptionsSchema> {
|
|
|
7
7
|
invocationMessage: string;
|
|
8
8
|
commandAliases: string[];
|
|
9
9
|
execute(options: SpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptions): Promise<FeatureActionResponse>;
|
|
10
|
+
private syncListeners;
|
|
10
11
|
private collectEvent;
|
|
11
12
|
private collectNamespace;
|
|
12
13
|
private mapContractsToSelectChoices;
|
|
@@ -84,7 +84,7 @@ var ListenAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
84
84
|
var _execute = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(options) {
|
|
85
85
|
var _this2 = this;
|
|
86
86
|
|
|
87
|
-
var normalizedOptions, response, listenerDestinationDir, versionOptions, eventName, namespace, schemaTypesLookupDir, contractDestinationDir, eventStore, skill, namespacesForFetch, _ref, contracts, _this$mapContractsToS, eventChoicesByNamespace, fqen, _eventNameUtil$split, version, isValidEvent, resolvedDestination, resolvedVersion, resolvedSchemaTypesLookupDir, isSkillEvent, emitPayloadSchemaTemplateItem, responsePayloadSchemaTemplateItem, builder, templateItems,
|
|
87
|
+
var normalizedOptions, response, listenerDestinationDir, versionOptions, eventName, namespace, schemaTypesLookupDir, contractDestinationDir, eventStore, skill, namespacesForFetch, _ref, contracts, _this$mapContractsToS, eventChoicesByNamespace, fqen, _eventNameUtil$split, version, isValidEvent, resolvedDestination, resolvedVersion, resolvedSchemaTypesLookupDir, isSkillEvent, emitPayloadSchemaTemplateItem, responsePayloadSchemaTemplateItem, builder, templateItems, writer, syncResults, syncOptions, _syncResults;
|
|
88
88
|
|
|
89
89
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
90
90
|
while (1) {
|
|
@@ -221,9 +221,9 @@ var ListenAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
221
221
|
responsePayloadSchemaTemplateItem = templateItems.responsePayloadSchemaTemplateItem;
|
|
222
222
|
}
|
|
223
223
|
|
|
224
|
-
|
|
224
|
+
writer = this.Writer('event');
|
|
225
225
|
_context.next = 48;
|
|
226
|
-
return
|
|
226
|
+
return writer.writeListener(resolvedDestination, _objectSpread(_objectSpread({}, normalizedOptions), {}, {
|
|
227
227
|
version: resolvedVersion,
|
|
228
228
|
eventName: eventName,
|
|
229
229
|
eventNamespace: namespace,
|
|
@@ -239,38 +239,43 @@ var ListenAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
239
239
|
}));
|
|
240
240
|
|
|
241
241
|
case 48:
|
|
242
|
-
|
|
243
|
-
|
|
242
|
+
response.files = _context.sent;
|
|
243
|
+
_context.next = 51;
|
|
244
|
+
return this.syncListeners();
|
|
245
|
+
|
|
246
|
+
case 51:
|
|
247
|
+
syncResults = _context.sent;
|
|
248
|
+
response = _action["default"].mergeActionResults(syncResults, response);
|
|
244
249
|
|
|
245
250
|
if (!isSkillEvent) {
|
|
246
|
-
_context.next =
|
|
251
|
+
_context.next = 59;
|
|
247
252
|
break;
|
|
248
253
|
}
|
|
249
254
|
|
|
250
255
|
syncOptions = (0, _schema.normalizeSchemaValues)(_syncEventOptions["default"], options);
|
|
251
|
-
_context.next =
|
|
256
|
+
_context.next = 57;
|
|
252
257
|
return this.Action('event', 'sync').execute(syncOptions);
|
|
253
258
|
|
|
254
|
-
case
|
|
255
|
-
|
|
256
|
-
response = _action["default"].mergeActionResults(
|
|
259
|
+
case 57:
|
|
260
|
+
_syncResults = _context.sent;
|
|
261
|
+
response = _action["default"].mergeActionResults(_syncResults, response);
|
|
257
262
|
|
|
258
|
-
case
|
|
263
|
+
case 59:
|
|
259
264
|
return _context.abrupt("return", response);
|
|
260
265
|
|
|
261
|
-
case
|
|
262
|
-
_context.prev =
|
|
266
|
+
case 62:
|
|
267
|
+
_context.prev = 62;
|
|
263
268
|
_context.t1 = _context["catch"](1);
|
|
264
269
|
return _context.abrupt("return", {
|
|
265
270
|
errors: [_context.t1]
|
|
266
271
|
});
|
|
267
272
|
|
|
268
|
-
case
|
|
273
|
+
case 65:
|
|
269
274
|
case "end":
|
|
270
275
|
return _context.stop();
|
|
271
276
|
}
|
|
272
277
|
}
|
|
273
|
-
}, _callee, this, [[1,
|
|
278
|
+
}, _callee, this, [[1, 62]]);
|
|
274
279
|
}));
|
|
275
280
|
|
|
276
281
|
function execute(_x) {
|
|
@@ -280,16 +285,40 @@ var ListenAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
280
285
|
return execute;
|
|
281
286
|
}()
|
|
282
287
|
}, {
|
|
283
|
-
key: "
|
|
288
|
+
key: "syncListeners",
|
|
284
289
|
value: function () {
|
|
285
|
-
var
|
|
286
|
-
var eventChoices, eventName;
|
|
290
|
+
var _syncListeners = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
287
291
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
288
292
|
while (1) {
|
|
289
293
|
switch (_context2.prev = _context2.next) {
|
|
294
|
+
case 0:
|
|
295
|
+
return _context2.abrupt("return", this.Action('event', 'sync.listeners').execute({}));
|
|
296
|
+
|
|
297
|
+
case 1:
|
|
298
|
+
case "end":
|
|
299
|
+
return _context2.stop();
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}, _callee2, this);
|
|
303
|
+
}));
|
|
304
|
+
|
|
305
|
+
function syncListeners() {
|
|
306
|
+
return _syncListeners.apply(this, arguments);
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
return syncListeners;
|
|
310
|
+
}()
|
|
311
|
+
}, {
|
|
312
|
+
key: "collectEvent",
|
|
313
|
+
value: function () {
|
|
314
|
+
var _collectEvent = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(contracts, namespace) {
|
|
315
|
+
var eventChoices, eventName;
|
|
316
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
317
|
+
while (1) {
|
|
318
|
+
switch (_context3.prev = _context3.next) {
|
|
290
319
|
case 0:
|
|
291
320
|
eventChoices = this.mapContractsToSelectChoices(contracts).eventChoicesByNamespace[namespace];
|
|
292
|
-
|
|
321
|
+
_context3.next = 3;
|
|
293
322
|
return this.ui.prompt({
|
|
294
323
|
type: 'select',
|
|
295
324
|
label: 'Select an event',
|
|
@@ -300,15 +329,15 @@ var ListenAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
300
329
|
});
|
|
301
330
|
|
|
302
331
|
case 3:
|
|
303
|
-
eventName =
|
|
304
|
-
return
|
|
332
|
+
eventName = _context3.sent;
|
|
333
|
+
return _context3.abrupt("return", eventName);
|
|
305
334
|
|
|
306
335
|
case 5:
|
|
307
336
|
case "end":
|
|
308
|
-
return
|
|
337
|
+
return _context3.stop();
|
|
309
338
|
}
|
|
310
339
|
}
|
|
311
|
-
},
|
|
340
|
+
}, _callee3, this);
|
|
312
341
|
}));
|
|
313
342
|
|
|
314
343
|
function collectEvent(_x2, _x3) {
|
|
@@ -320,15 +349,15 @@ var ListenAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
320
349
|
}, {
|
|
321
350
|
key: "collectNamespace",
|
|
322
351
|
value: function () {
|
|
323
|
-
var _collectNamespace = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
352
|
+
var _collectNamespace = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(contracts) {
|
|
324
353
|
var _this$mapContractsToS2, namespaceChoices, namespace;
|
|
325
354
|
|
|
326
|
-
return _regenerator["default"].wrap(function
|
|
355
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
327
356
|
while (1) {
|
|
328
|
-
switch (
|
|
357
|
+
switch (_context4.prev = _context4.next) {
|
|
329
358
|
case 0:
|
|
330
359
|
_this$mapContractsToS2 = this.mapContractsToSelectChoices(contracts), namespaceChoices = _this$mapContractsToS2.namespaceChoices;
|
|
331
|
-
|
|
360
|
+
_context4.next = 3;
|
|
332
361
|
return this.ui.prompt({
|
|
333
362
|
type: 'select',
|
|
334
363
|
label: 'Select an event namespace',
|
|
@@ -339,15 +368,15 @@ var ListenAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
339
368
|
});
|
|
340
369
|
|
|
341
370
|
case 3:
|
|
342
|
-
namespace =
|
|
343
|
-
return
|
|
371
|
+
namespace = _context4.sent;
|
|
372
|
+
return _context4.abrupt("return", namespace);
|
|
344
373
|
|
|
345
374
|
case 5:
|
|
346
375
|
case "end":
|
|
347
|
-
return
|
|
376
|
+
return _context4.stop();
|
|
348
377
|
}
|
|
349
378
|
}
|
|
350
|
-
},
|
|
379
|
+
}, _callee4, this);
|
|
351
380
|
}));
|
|
352
381
|
|
|
353
382
|
function collectNamespace(_x4) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/features/event/actions/ListenAction.ts"],"names":["SKILL_EVENT_NAMESPACE","ListenAction","eventListenActionSchema","options","normalizedOptions","validateAndNormalizeOptions","response","listenerDestinationDir","versionOptions","version","eventName","namespace","schemaTypesLookupDir","contractDestinationDir","ui","startLoading","eventStore","Store","loadCurrentSkill","skill","namespacesForFetch","undefined","slug","fetchEventContracts","localNamespace","namespaces","didUpdateHandler","msg","contracts","stopLoading","collectNamespace","mapContractsToSelectChoices","eventChoicesByNamespace","SchemaError","code","friendlyMessage","Object","keys","join","parameters","collectEvent","fqen","eventNameUtil","eventNamespace","split","isValidEvent","find","e","value","map","i","resolvedDestination","diskUtil","resolvePath","cwd","resolveVersion","resolvedVersion","resolvedSchemaTypesLookupDir","isSkillEvent","builder","EventTemplateItemBuilder","templateItems","buildEventTemplateItemForName","emitPayloadSchemaTemplateItem","responsePayloadSchemaTemplateItem","generator","Writer","writeListener","fullyQualifiedEventName","results","files","syncOptions","syncEventActionSchema","Action","execute","syncResults","actionUtil","mergeActionResults","errors","eventChoices","prompt","type","label","isRequired","choices","namespaceChoices","forEach","contract","namedSignatures","eventContractUtil","getNamedEventSignatures","namedSig","MERCURY_API_NAMESPACE","o","push","namesUtil","toPascal","AbstractAction"],"mappings":"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","sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport {\n\tnormalizeSchemaValues,\n\tSchemaError,\n\tSchemaTemplateItem,\n\tSelectChoice,\n} from '@sprucelabs/schema'\nimport {\n\teventContractUtil,\n\teventNameUtil,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tMERCURY_API_NAMESPACE,\n} from '@sprucelabs/spruce-skill-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport eventListenActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport EventTemplateItemBuilder from '../../../templateItemBuilders/EventTemplateItemBuilder'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst SKILL_EVENT_NAMESPACE = 'skill'\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptionsSchema\nexport default class ListenAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = eventListenActionSchema\n\tpublic invocationMessage = 'Creating event listener... 🜒'\n\tpublic commandAliases = ['listen.event', 'create.listener']\n\n\tpublic async execute(\n\t\toptions: SpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptions\n\t): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\n\t\ttry {\n\t\t\tlet response: FeatureActionResponse = {}\n\n\t\t\tlet {\n\t\t\t\tlistenerDestinationDir,\n\t\t\t\tversion: versionOptions,\n\t\t\t\teventName,\n\t\t\t\tnamespace,\n\t\t\t\tschemaTypesLookupDir,\n\t\t\t\tcontractDestinationDir,\n\t\t\t} = normalizedOptions\n\n\t\t\tthis.ui.startLoading('Loading event contracts...')\n\n\t\t\tconst eventStore = this.Store('event')\n\n\t\t\tconst skill = await this.Store('skill').loadCurrentSkill()\n\n\t\t\tconst namespacesForFetch =\n\t\t\t\tnamespace && namespace !== 'skill' ? [namespace] : undefined\n\n\t\t\tconst { contracts } = skill.slug\n\t\t\t\t? await eventStore.fetchEventContracts({\n\t\t\t\t\t\tlocalNamespace: skill.slug,\n\t\t\t\t\t\tnamespaces: namespacesForFetch,\n\t\t\t\t\t\tdidUpdateHandler: (msg: string) => this.ui.startLoading(msg),\n\t\t\t\t })\n\t\t\t\t: await eventStore.fetchEventContracts({\n\t\t\t\t\t\tnamespaces: namespacesForFetch,\n\t\t\t\t\t\tdidUpdateHandler: (msg: string) => this.ui.startLoading(msg),\n\t\t\t\t })\n\n\t\t\tthis.ui.stopLoading()\n\n\t\t\tif (!namespace) {\n\t\t\t\tnamespace = await this.collectNamespace(contracts)\n\t\t\t}\n\n\t\t\tconst { eventChoicesByNamespace } =\n\t\t\t\tthis.mapContractsToSelectChoices(contracts)\n\n\t\t\tif (!eventChoicesByNamespace[namespace]) {\n\t\t\t\tthrow new SchemaError({\n\t\t\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\t\t\tfriendlyMessage: `${namespace} is not a valid event namespace. Try: \\n\\n${Object.keys(\n\t\t\t\t\t\teventChoicesByNamespace\n\t\t\t\t\t).join('\\n')}`,\n\t\t\t\t\tparameters: ['namespace'],\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (!eventName) {\n\t\t\t\teventName = await this.collectEvent(contracts, namespace)\n\t\t\t}\n\n\t\t\tconst fqen = eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace: namespace,\n\t\t\t\tversion: versionOptions,\n\t\t\t})\n\n\t\t\tlet { version } = eventNameUtil.split(fqen)\n\n\t\t\tconst isValidEvent = !!eventChoicesByNamespace[namespace].find(\n\t\t\t\t(e) => e.value === eventName || e.value === fqen\n\t\t\t)\n\n\t\t\tif (!isValidEvent) {\n\t\t\t\tthrow new SchemaError({\n\t\t\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\t\t\tfriendlyMessage: `${eventName} is not a valid event . Try: \\n\\n${eventChoicesByNamespace[\n\t\t\t\t\t\tnamespace\n\t\t\t\t\t]\n\t\t\t\t\t\t.map((i) => i.value)\n\t\t\t\t\t\t.join('\\n')}`,\n\t\t\t\t\tparameters: ['eventName'],\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tconst resolvedDestination = diskUtil.resolvePath(\n\t\t\t\tthis.cwd,\n\t\t\t\tlistenerDestinationDir\n\t\t\t)\n\n\t\t\tconst resolvedVersion = await this.resolveVersion(\n\t\t\t\tversion,\n\t\t\t\tresolvedDestination\n\t\t\t)\n\n\t\t\tconst resolvedSchemaTypesLookupDir = diskUtil.resolvePath(\n\t\t\t\tthis.cwd,\n\t\t\t\tschemaTypesLookupDir\n\t\t\t)\n\n\t\t\tconst isSkillEvent = namespace !== SKILL_EVENT_NAMESPACE\n\n\t\t\tlet emitPayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t\t\tlet responsePayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\n\t\t\tif (isSkillEvent) {\n\t\t\t\tconst builder = new EventTemplateItemBuilder()\n\t\t\t\tconst templateItems = builder.buildEventTemplateItemForName(\n\t\t\t\t\tcontracts,\n\t\t\t\t\teventNameUtil.join({\n\t\t\t\t\t\teventNamespace: namespace,\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\tversion: resolvedVersion,\n\t\t\t\t\t})\n\t\t\t\t)\n\n\t\t\t\temitPayloadSchemaTemplateItem =\n\t\t\t\t\ttemplateItems.emitPayloadSchemaTemplateItem\n\t\t\t\tresponsePayloadSchemaTemplateItem =\n\t\t\t\t\ttemplateItems.responsePayloadSchemaTemplateItem\n\t\t\t}\n\n\t\t\tconst generator = this.Writer('event')\n\t\t\tconst results = await generator.writeListener(resolvedDestination, {\n\t\t\t\t...normalizedOptions,\n\t\t\t\tversion: resolvedVersion,\n\t\t\t\teventName,\n\t\t\t\teventNamespace: namespace,\n\t\t\t\tfullyQualifiedEventName: eventNameUtil.join({\n\t\t\t\t\teventName,\n\t\t\t\t\teventNamespace: namespace,\n\t\t\t\t\tversion: resolvedVersion,\n\t\t\t\t}),\n\t\t\t\temitPayloadSchemaTemplateItem,\n\t\t\t\tcontractDestinationDir,\n\t\t\t\tresponsePayloadSchemaTemplateItem,\n\t\t\t\tschemaTypesLookupDir: resolvedSchemaTypesLookupDir,\n\t\t\t})\n\n\t\t\tresponse.files = results\n\n\t\t\tif (isSkillEvent) {\n\t\t\t\tconst syncOptions = normalizeSchemaValues(\n\t\t\t\t\tsyncEventActionSchema,\n\t\t\t\t\toptions\n\t\t\t\t)\n\n\t\t\t\tconst syncResults = await this.Action('event', 'sync').execute(\n\t\t\t\t\tsyncOptions\n\t\t\t\t)\n\n\t\t\t\tresponse = actionUtil.mergeActionResults(syncResults, response)\n\t\t\t}\n\n\t\t\treturn response\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async collectEvent(\n\t\tcontracts: EventContract[],\n\t\tnamespace: string\n\t): Promise<string> {\n\t\tconst eventChoices: SelectChoice[] =\n\t\t\tthis.mapContractsToSelectChoices(contracts).eventChoicesByNamespace[\n\t\t\t\tnamespace\n\t\t\t]\n\n\t\tconst eventName = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Select an event',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: eventChoices,\n\t\t\t},\n\t\t})\n\n\t\treturn eventName\n\t}\n\n\tprivate async collectNamespace(contracts: EventContract[]): Promise<string> {\n\t\tconst { namespaceChoices } = this.mapContractsToSelectChoices(contracts)\n\n\t\tconst namespace = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Select an event namespace',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: namespaceChoices,\n\t\t\t},\n\t\t})\n\n\t\treturn namespace\n\t}\n\n\tprivate mapContractsToSelectChoices(contracts: EventContract[]) {\n\t\tconst namespaceChoices: SelectChoice[] = [\n\t\t\t{\n\t\t\t\tlabel: 'Skill',\n\t\t\t\tvalue: SKILL_EVENT_NAMESPACE,\n\t\t\t},\n\t\t]\n\n\t\tconst eventChoicesByNamespace: Record<string, SelectChoice[]> = {\n\t\t\tskill: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'will-boot',\n\t\t\t\t\tvalue: 'will-boot',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'did-boot',\n\t\t\t\t\tvalue: 'did-boot',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\n\t\tcontracts.forEach((contract) => {\n\t\t\tconst namedSignatures =\n\t\t\t\teventContractUtil.getNamedEventSignatures(contract)\n\n\t\t\tfor (const namedSig of namedSignatures) {\n\t\t\t\tconst namespace = namedSig.eventNamespace ?? MERCURY_API_NAMESPACE\n\n\t\t\t\tif (!namespaceChoices.find((o) => o.value === namespace)) {\n\t\t\t\t\tnamespaceChoices.push({\n\t\t\t\t\t\tlabel: namesUtil.toPascal(namespace),\n\t\t\t\t\t\tvalue: namespace,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tif (!eventChoicesByNamespace[namespace]) {\n\t\t\t\t\teventChoicesByNamespace[namespace] = []\n\t\t\t\t}\n\n\t\t\t\teventChoicesByNamespace[namespace].push({\n\t\t\t\t\tvalue: namedSig.fullyQualifiedEventName,\n\t\t\t\t\tlabel: namedSig.fullyQualifiedEventName,\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\n\t\treturn { eventChoicesByNamespace, namespaceChoices }\n\t}\n}\n"],"file":"ListenAction.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/event/actions/ListenAction.ts"],"names":["SKILL_EVENT_NAMESPACE","ListenAction","eventListenActionSchema","options","normalizedOptions","validateAndNormalizeOptions","response","listenerDestinationDir","versionOptions","version","eventName","namespace","schemaTypesLookupDir","contractDestinationDir","ui","startLoading","eventStore","Store","loadCurrentSkill","skill","namespacesForFetch","undefined","slug","fetchEventContracts","localNamespace","namespaces","didUpdateHandler","msg","contracts","stopLoading","collectNamespace","mapContractsToSelectChoices","eventChoicesByNamespace","SchemaError","code","friendlyMessage","Object","keys","join","parameters","collectEvent","fqen","eventNameUtil","eventNamespace","split","isValidEvent","find","e","value","map","i","resolvedDestination","diskUtil","resolvePath","cwd","resolveVersion","resolvedVersion","resolvedSchemaTypesLookupDir","isSkillEvent","builder","EventTemplateItemBuilder","templateItems","buildEventTemplateItemForName","emitPayloadSchemaTemplateItem","responsePayloadSchemaTemplateItem","writer","Writer","writeListener","fullyQualifiedEventName","files","syncListeners","syncResults","actionUtil","mergeActionResults","syncOptions","syncEventActionSchema","Action","execute","errors","eventChoices","prompt","type","label","isRequired","choices","namespaceChoices","forEach","contract","namedSignatures","eventContractUtil","getNamedEventSignatures","namedSig","MERCURY_API_NAMESPACE","o","push","namesUtil","toPascal","AbstractAction"],"mappings":"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","sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport {\n\tnormalizeSchemaValues,\n\tSchemaError,\n\tSchemaTemplateItem,\n\tSelectChoice,\n} from '@sprucelabs/schema'\nimport {\n\teventContractUtil,\n\teventNameUtil,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tMERCURY_API_NAMESPACE,\n} from '@sprucelabs/spruce-skill-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport eventListenActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport EventTemplateItemBuilder from '../../../templateItemBuilders/EventTemplateItemBuilder'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst SKILL_EVENT_NAMESPACE = 'skill'\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptionsSchema\nexport default class ListenAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = eventListenActionSchema\n\tpublic invocationMessage = 'Creating event listener... 🜒'\n\tpublic commandAliases = ['listen.event', 'create.listener']\n\n\tpublic async execute(\n\t\toptions: SpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptions\n\t): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\n\t\ttry {\n\t\t\tlet response: FeatureActionResponse = {}\n\n\t\t\tlet {\n\t\t\t\tlistenerDestinationDir,\n\t\t\t\tversion: versionOptions,\n\t\t\t\teventName,\n\t\t\t\tnamespace,\n\t\t\t\tschemaTypesLookupDir,\n\t\t\t\tcontractDestinationDir,\n\t\t\t} = normalizedOptions\n\n\t\t\tthis.ui.startLoading('Loading event contracts...')\n\n\t\t\tconst eventStore = this.Store('event')\n\n\t\t\tconst skill = await this.Store('skill').loadCurrentSkill()\n\n\t\t\tconst namespacesForFetch =\n\t\t\t\tnamespace && namespace !== 'skill' ? [namespace] : undefined\n\n\t\t\tconst { contracts } = skill.slug\n\t\t\t\t? await eventStore.fetchEventContracts({\n\t\t\t\t\t\tlocalNamespace: skill.slug,\n\t\t\t\t\t\tnamespaces: namespacesForFetch,\n\t\t\t\t\t\tdidUpdateHandler: (msg: string) => this.ui.startLoading(msg),\n\t\t\t\t })\n\t\t\t\t: await eventStore.fetchEventContracts({\n\t\t\t\t\t\tnamespaces: namespacesForFetch,\n\t\t\t\t\t\tdidUpdateHandler: (msg: string) => this.ui.startLoading(msg),\n\t\t\t\t })\n\n\t\t\tthis.ui.stopLoading()\n\n\t\t\tif (!namespace) {\n\t\t\t\tnamespace = await this.collectNamespace(contracts)\n\t\t\t}\n\n\t\t\tconst { eventChoicesByNamespace } =\n\t\t\t\tthis.mapContractsToSelectChoices(contracts)\n\n\t\t\tif (!eventChoicesByNamespace[namespace]) {\n\t\t\t\tthrow new SchemaError({\n\t\t\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\t\t\tfriendlyMessage: `${namespace} is not a valid event namespace. Try: \\n\\n${Object.keys(\n\t\t\t\t\t\teventChoicesByNamespace\n\t\t\t\t\t).join('\\n')}`,\n\t\t\t\t\tparameters: ['namespace'],\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (!eventName) {\n\t\t\t\teventName = await this.collectEvent(contracts, namespace)\n\t\t\t}\n\n\t\t\tconst fqen = eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace: namespace,\n\t\t\t\tversion: versionOptions,\n\t\t\t})\n\n\t\t\tlet { version } = eventNameUtil.split(fqen)\n\n\t\t\tconst isValidEvent = !!eventChoicesByNamespace[namespace].find(\n\t\t\t\t(e) => e.value === eventName || e.value === fqen\n\t\t\t)\n\n\t\t\tif (!isValidEvent) {\n\t\t\t\tthrow new SchemaError({\n\t\t\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\t\t\tfriendlyMessage: `${eventName} is not a valid event . Try: \\n\\n${eventChoicesByNamespace[\n\t\t\t\t\t\tnamespace\n\t\t\t\t\t]\n\t\t\t\t\t\t.map((i) => i.value)\n\t\t\t\t\t\t.join('\\n')}`,\n\t\t\t\t\tparameters: ['eventName'],\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tconst resolvedDestination = diskUtil.resolvePath(\n\t\t\t\tthis.cwd,\n\t\t\t\tlistenerDestinationDir\n\t\t\t)\n\n\t\t\tconst resolvedVersion = await this.resolveVersion(\n\t\t\t\tversion,\n\t\t\t\tresolvedDestination\n\t\t\t)\n\n\t\t\tconst resolvedSchemaTypesLookupDir = diskUtil.resolvePath(\n\t\t\t\tthis.cwd,\n\t\t\t\tschemaTypesLookupDir\n\t\t\t)\n\n\t\t\tconst isSkillEvent = namespace !== SKILL_EVENT_NAMESPACE\n\n\t\t\tlet emitPayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t\t\tlet responsePayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\n\t\t\tif (isSkillEvent) {\n\t\t\t\tconst builder = new EventTemplateItemBuilder()\n\t\t\t\tconst templateItems = builder.buildEventTemplateItemForName(\n\t\t\t\t\tcontracts,\n\t\t\t\t\teventNameUtil.join({\n\t\t\t\t\t\teventNamespace: namespace,\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\tversion: resolvedVersion,\n\t\t\t\t\t})\n\t\t\t\t)\n\n\t\t\t\temitPayloadSchemaTemplateItem =\n\t\t\t\t\ttemplateItems.emitPayloadSchemaTemplateItem\n\t\t\t\tresponsePayloadSchemaTemplateItem =\n\t\t\t\t\ttemplateItems.responsePayloadSchemaTemplateItem\n\t\t\t}\n\n\t\t\tconst writer = this.Writer('event')\n\t\t\tresponse.files = await writer.writeListener(resolvedDestination, {\n\t\t\t\t...normalizedOptions,\n\t\t\t\tversion: resolvedVersion,\n\t\t\t\teventName,\n\t\t\t\teventNamespace: namespace,\n\t\t\t\tfullyQualifiedEventName: eventNameUtil.join({\n\t\t\t\t\teventName,\n\t\t\t\t\teventNamespace: namespace,\n\t\t\t\t\tversion: resolvedVersion,\n\t\t\t\t}),\n\t\t\t\temitPayloadSchemaTemplateItem,\n\t\t\t\tcontractDestinationDir,\n\t\t\t\tresponsePayloadSchemaTemplateItem,\n\t\t\t\tschemaTypesLookupDir: resolvedSchemaTypesLookupDir,\n\t\t\t})\n\n\t\t\tconst syncResults = await this.syncListeners()\n\n\t\t\tresponse = actionUtil.mergeActionResults(syncResults, response)\n\n\t\t\tif (isSkillEvent) {\n\t\t\t\tconst syncOptions = normalizeSchemaValues(\n\t\t\t\t\tsyncEventActionSchema,\n\t\t\t\t\toptions\n\t\t\t\t)\n\n\t\t\t\tconst syncResults = await this.Action('event', 'sync').execute(\n\t\t\t\t\tsyncOptions\n\t\t\t\t)\n\n\t\t\t\tresponse = actionUtil.mergeActionResults(syncResults, response)\n\t\t\t}\n\n\t\t\treturn response\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async syncListeners() {\n\t\treturn this.Action('event', 'sync.listeners').execute({})\n\t}\n\n\tprivate async collectEvent(\n\t\tcontracts: EventContract[],\n\t\tnamespace: string\n\t): Promise<string> {\n\t\tconst eventChoices: SelectChoice[] =\n\t\t\tthis.mapContractsToSelectChoices(contracts).eventChoicesByNamespace[\n\t\t\t\tnamespace\n\t\t\t]\n\n\t\tconst eventName = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Select an event',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: eventChoices,\n\t\t\t},\n\t\t})\n\n\t\treturn eventName\n\t}\n\n\tprivate async collectNamespace(contracts: EventContract[]): Promise<string> {\n\t\tconst { namespaceChoices } = this.mapContractsToSelectChoices(contracts)\n\n\t\tconst namespace = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Select an event namespace',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: namespaceChoices,\n\t\t\t},\n\t\t})\n\n\t\treturn namespace\n\t}\n\n\tprivate mapContractsToSelectChoices(contracts: EventContract[]) {\n\t\tconst namespaceChoices: SelectChoice[] = [\n\t\t\t{\n\t\t\t\tlabel: 'Skill',\n\t\t\t\tvalue: SKILL_EVENT_NAMESPACE,\n\t\t\t},\n\t\t]\n\n\t\tconst eventChoicesByNamespace: Record<string, SelectChoice[]> = {\n\t\t\tskill: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'will-boot',\n\t\t\t\t\tvalue: 'will-boot',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'did-boot',\n\t\t\t\t\tvalue: 'did-boot',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\n\t\tcontracts.forEach((contract) => {\n\t\t\tconst namedSignatures =\n\t\t\t\teventContractUtil.getNamedEventSignatures(contract)\n\n\t\t\tfor (const namedSig of namedSignatures) {\n\t\t\t\tconst namespace = namedSig.eventNamespace ?? MERCURY_API_NAMESPACE\n\n\t\t\t\tif (!namespaceChoices.find((o) => o.value === namespace)) {\n\t\t\t\t\tnamespaceChoices.push({\n\t\t\t\t\t\tlabel: namesUtil.toPascal(namespace),\n\t\t\t\t\t\tvalue: namespace,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tif (!eventChoicesByNamespace[namespace]) {\n\t\t\t\t\teventChoicesByNamespace[namespace] = []\n\t\t\t\t}\n\n\t\t\t\teventChoicesByNamespace[namespace].push({\n\t\t\t\t\tvalue: namedSig.fullyQualifiedEventName,\n\t\t\t\t\tlabel: namedSig.fullyQualifiedEventName,\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\n\t\treturn { eventChoicesByNamespace, namespaceChoices }\n\t}\n}\n"],"file":"ListenAction.js"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import AbstractAction from '../../AbstractAction';
|
|
2
|
+
declare const syncListenersOptionScheam: {
|
|
3
|
+
id: string;
|
|
4
|
+
fields: {};
|
|
5
|
+
};
|
|
6
|
+
declare type OptionsSchema = typeof syncListenersOptionScheam;
|
|
7
|
+
export default class SyncListenerAction extends AbstractAction<OptionsSchema> {
|
|
8
|
+
optionsSchema: OptionsSchema;
|
|
9
|
+
invocationMessage: string;
|
|
10
|
+
commandAliases: string[];
|
|
11
|
+
execute(): Promise<{
|
|
12
|
+
files: import("../../../writers/AbstractWriter").WriteResults;
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
+
|
|
14
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
+
|
|
16
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
+
|
|
18
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
19
|
+
|
|
20
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
21
|
+
|
|
22
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
23
|
+
|
|
24
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
25
|
+
|
|
26
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
27
|
+
|
|
28
|
+
var _schema = require("@sprucelabs/schema");
|
|
29
|
+
|
|
30
|
+
var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
|
|
31
|
+
|
|
32
|
+
var _AbstractAction2 = _interopRequireDefault(require("../../AbstractAction"));
|
|
33
|
+
|
|
34
|
+
var _ListenerTemplateItemBuilder = _interopRequireDefault(require("../builders/ListenerTemplateItemBuilder"));
|
|
35
|
+
|
|
36
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
37
|
+
|
|
38
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
39
|
+
|
|
40
|
+
var syncListenersOptionScheam = (0, _schema.buildSchema)({
|
|
41
|
+
id: 'syncListenersOptions',
|
|
42
|
+
fields: {}
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
var SyncListenerAction = /*#__PURE__*/function (_AbstractAction) {
|
|
46
|
+
(0, _inherits2["default"])(SyncListenerAction, _AbstractAction);
|
|
47
|
+
|
|
48
|
+
var _super = _createSuper(SyncListenerAction);
|
|
49
|
+
|
|
50
|
+
function SyncListenerAction() {
|
|
51
|
+
var _this;
|
|
52
|
+
|
|
53
|
+
(0, _classCallCheck2["default"])(this, SyncListenerAction);
|
|
54
|
+
|
|
55
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
56
|
+
args[_key] = arguments[_key];
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
60
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "optionsSchema", syncListenersOptionScheam);
|
|
61
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "invocationMessage", 'Syncing listeners... 🎧');
|
|
62
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "commandAliases", ['sync.listeners']);
|
|
63
|
+
return _this;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
(0, _createClass2["default"])(SyncListenerAction, [{
|
|
67
|
+
key: "execute",
|
|
68
|
+
value: function () {
|
|
69
|
+
var _execute = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
70
|
+
var listeners, builder, templateItems, files;
|
|
71
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
72
|
+
while (1) {
|
|
73
|
+
switch (_context.prev = _context.next) {
|
|
74
|
+
case 0:
|
|
75
|
+
_context.next = 2;
|
|
76
|
+
return this.Store('listener').loadListeners();
|
|
77
|
+
|
|
78
|
+
case 2:
|
|
79
|
+
listeners = _context.sent;
|
|
80
|
+
builder = new _ListenerTemplateItemBuilder["default"]();
|
|
81
|
+
templateItems = builder.buildTemplateItems({
|
|
82
|
+
listeners: listeners,
|
|
83
|
+
cwd: this.cwd
|
|
84
|
+
});
|
|
85
|
+
_context.next = 7;
|
|
86
|
+
return this.Writer('event').writeListenerMap(_spruceSkillUtils.diskUtil.resolveHashSprucePath(this.cwd, 'events'), {
|
|
87
|
+
listeners: templateItems
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
case 7:
|
|
91
|
+
files = _context.sent;
|
|
92
|
+
return _context.abrupt("return", {
|
|
93
|
+
files: files
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
case 9:
|
|
97
|
+
case "end":
|
|
98
|
+
return _context.stop();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}, _callee, this);
|
|
102
|
+
}));
|
|
103
|
+
|
|
104
|
+
function execute() {
|
|
105
|
+
return _execute.apply(this, arguments);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return execute;
|
|
109
|
+
}()
|
|
110
|
+
}]);
|
|
111
|
+
return SyncListenerAction;
|
|
112
|
+
}(_AbstractAction2["default"]);
|
|
113
|
+
|
|
114
|
+
exports["default"] = SyncListenerAction;
|
|
115
|
+
//# sourceMappingURL=SyncListenersAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/event/actions/SyncListenersAction.ts"],"names":["syncListenersOptionScheam","id","fields","SyncListenerAction","Store","loadListeners","listeners","builder","ListenerTemplateItemBuilder","templateItems","buildTemplateItems","cwd","Writer","writeListenerMap","diskUtil","resolveHashSprucePath","files","AbstractAction"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,yBAAyB,GAAG,yBAAY;AAC7CC,EAAAA,EAAE,EAAE,sBADyC;AAE7CC,EAAAA,MAAM,EAAE;AAFqC,CAAZ,CAAlC;;IAOqBC,kB;;;;;;;;;;;;;;;sGACkBH,yB;0GACX,yB;uGACH,CAAC,gBAAD,C;;;;;;;mGAExB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACyB,KAAKI,KAAL,CAAW,UAAX,EAAuBC,aAAvB,EADzB;;AAAA;AACOC,gBAAAA,SADP;AAEOC,gBAAAA,OAFP,GAEiB,IAAIC,uCAAJ,EAFjB;AAIOC,gBAAAA,aAJP,GAIuBF,OAAO,CAACG,kBAAR,CAA2B;AAChDJ,kBAAAA,SAAS,EAATA,SADgD;AAEhDK,kBAAAA,GAAG,EAAE,KAAKA;AAFsC,iBAA3B,CAJvB;AAAA;AAAA,uBASqB,KAAKC,MAAL,CAAY,OAAZ,EAAqBC,gBAArB,CACnBC,2BAASC,qBAAT,CAA+B,KAAKJ,GAApC,EAAyC,QAAzC,CADmB,EAEnB;AACCL,kBAAAA,SAAS,EAAEG;AADZ,iBAFmB,CATrB;;AAAA;AASOO,gBAAAA,KATP;AAAA,iDAgBQ;AACNA,kBAAAA,KAAK,EAALA;AADM,iBAhBR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAL+CC,2B","sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractAction from '../../AbstractAction'\nimport ListenerTemplateItemBuilder from '../builders/ListenerTemplateItemBuilder'\n\nconst syncListenersOptionScheam = buildSchema({\n\tid: 'syncListenersOptions',\n\tfields: {},\n})\n\ntype OptionsSchema = typeof syncListenersOptionScheam\n\nexport default class SyncListenerAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = syncListenersOptionScheam\n\tpublic invocationMessage = 'Syncing listeners... 🎧'\n\tpublic commandAliases = ['sync.listeners']\n\n\tpublic async execute() {\n\t\tconst listeners = await this.Store('listener').loadListeners()\n\t\tconst builder = new ListenerTemplateItemBuilder()\n\n\t\tconst templateItems = builder.buildTemplateItems({\n\t\t\tlisteners,\n\t\t\tcwd: this.cwd,\n\t\t})\n\n\t\tconst files = await this.Writer('event').writeListenerMap(\n\t\t\tdiskUtil.resolveHashSprucePath(this.cwd, 'events'),\n\t\t\t{\n\t\t\t\tlisteners: templateItems,\n\t\t\t}\n\t\t)\n\n\t\treturn {\n\t\t\tfiles,\n\t\t}\n\t}\n}\n"],"file":"SyncListenersAction.js"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ListenerTemplateItem } from '@sprucelabs/spruce-templates';
|
|
2
|
+
import { Listener } from '../stores/ListenerStore';
|
|
3
|
+
export default class ListenerTemplateItemBuilder {
|
|
4
|
+
buildTemplateItems(options: {
|
|
5
|
+
listeners: Listener[];
|
|
6
|
+
cwd: string;
|
|
7
|
+
}): ListenerTemplateItem[];
|
|
8
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
|
|
16
|
+
var _path = _interopRequireDefault(require("path"));
|
|
17
|
+
|
|
18
|
+
var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
|
|
19
|
+
|
|
20
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
21
|
+
|
|
22
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
23
|
+
|
|
24
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
25
|
+
|
|
26
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
27
|
+
|
|
28
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
29
|
+
|
|
30
|
+
var ListenerTemplateItemBuilder = /*#__PURE__*/function () {
|
|
31
|
+
function ListenerTemplateItemBuilder() {
|
|
32
|
+
(0, _classCallCheck2["default"])(this, ListenerTemplateItemBuilder);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
(0, _createClass2["default"])(ListenerTemplateItemBuilder, [{
|
|
36
|
+
key: "buildTemplateItems",
|
|
37
|
+
value: function buildTemplateItems(options) {
|
|
38
|
+
var destination = _spruceSkillUtils.diskUtil.resolveHashSprucePath(options.cwd, 'events', 'listeners.ts');
|
|
39
|
+
|
|
40
|
+
var listeners = [];
|
|
41
|
+
|
|
42
|
+
var _iterator = _createForOfIteratorHelper(options.listeners),
|
|
43
|
+
_step;
|
|
44
|
+
|
|
45
|
+
try {
|
|
46
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
47
|
+
var match = _step.value;
|
|
48
|
+
listeners.push(_objectSpread(_objectSpread({}, match), {}, {
|
|
49
|
+
path: _path["default"].relative(_path["default"].dirname(destination), match.path).replace('.ts', '')
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
} catch (err) {
|
|
53
|
+
_iterator.e(err);
|
|
54
|
+
} finally {
|
|
55
|
+
_iterator.f();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return listeners;
|
|
59
|
+
}
|
|
60
|
+
}]);
|
|
61
|
+
return ListenerTemplateItemBuilder;
|
|
62
|
+
}();
|
|
63
|
+
|
|
64
|
+
exports["default"] = ListenerTemplateItemBuilder;
|
|
65
|
+
//# sourceMappingURL=ListenerTemplateItemBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/event/builders/ListenerTemplateItemBuilder.ts"],"names":["ListenerTemplateItemBuilder","options","destination","diskUtil","resolveHashSprucePath","cwd","listeners","match","push","path","pathUtil","relative","dirname","replace"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;;;;;;;;;;;IAIqBA,2B;;;;;;;WACpB,4BAA0BC,OAA1B,EAA2E;AAC1E,UAAMC,WAAW,GAAGC,2BAASC,qBAAT,CACnBH,OAAO,CAACI,GADW,EAEnB,QAFmB,EAGnB,cAHmB,CAApB;;AAMA,UAAMC,SAAiC,GAAG,EAA1C;;AAP0E,iDAStDL,OAAO,CAACK,SAT8C;AAAA;;AAAA;AAS1E,4DAAuC;AAAA,cAA5BC,KAA4B;AACtCD,UAAAA,SAAS,CAACE,IAAV,iCACID,KADJ;AAECE,YAAAA,IAAI,EAAEC,iBACJC,QADI,CACKD,iBAASE,OAAT,CAAiBV,WAAjB,CADL,EACoCK,KAAK,CAACE,IAD1C,EAEJI,OAFI,CAEI,KAFJ,EAEW,EAFX;AAFP;AAMA;AAhByE;AAAA;AAAA;AAAA;AAAA;;AAkB1E,aAAOP,SAAP;AACA","sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { ListenerTemplateItem } from '@sprucelabs/spruce-templates'\nimport { Listener } from '../stores/ListenerStore'\n\nexport default class ListenerTemplateItemBuilder {\n\tpublic buildTemplateItems(options: { listeners: Listener[]; cwd: string }) {\n\t\tconst destination = diskUtil.resolveHashSprucePath(\n\t\t\toptions.cwd,\n\t\t\t'events',\n\t\t\t'listeners.ts'\n\t\t)\n\n\t\tconst listeners: ListenerTemplateItem[] = []\n\n\t\tfor (const match of options.listeners) {\n\t\t\tlisteners.push({\n\t\t\t\t...match,\n\t\t\t\tpath: pathUtil\n\t\t\t\t\t.relative(pathUtil.dirname(destination), match.path)\n\t\t\t\t\t.replace('.ts', ''),\n\t\t\t})\n\t\t}\n\n\t\treturn listeners\n\t}\n}\n"],"file":"ListenerTemplateItemBuilder.js"}
|
|
@@ -109,7 +109,7 @@ var EventStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
109
109
|
key: "fetchEventContracts",
|
|
110
110
|
value: function () {
|
|
111
111
|
var _fetchEventContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(options) {
|
|
112
|
-
var _ref, localNamespace, didUpdateHandler, namespaces, contracts, error, localContract;
|
|
112
|
+
var _ref, localNamespace, didUpdateHandler, namespaces, contracts, _err$options$response, _err$options$response2, error, localContract;
|
|
113
113
|
|
|
114
114
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
115
115
|
while (1) {
|
|
@@ -129,7 +129,7 @@ var EventStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
129
129
|
case 8:
|
|
130
130
|
_context.prev = 8;
|
|
131
131
|
_context.t0 = _context["catch"](2);
|
|
132
|
-
error = _context.t0.options.responseErrors[0];
|
|
132
|
+
error = (_err$options$response = (_err$options$response2 = _context.t0.options.responseErrors) === null || _err$options$response2 === void 0 ? void 0 : _err$options$response2[0]) !== null && _err$options$response !== void 0 ? _err$options$response : _context.t0;
|
|
133
133
|
throw error;
|
|
134
134
|
|
|
135
135
|
case 12:
|