Skip to content

Commit 62960c8

Browse files
committed
Use StartSequencePayload in seq cli
1 parent 826cf96 commit 62960c8

File tree

5 files changed

+40
-38
lines changed

5 files changed

+40
-38
lines changed

packages/cli/src/lib/commands/sequence.ts

Lines changed: 9 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ import { resolve } from "path";
1313
import { sequenceDelete, sequencePack, sequenceParseArgs, sequenceParseConfig, sequenceSendPackage, sequenceStart } from "../helpers/sequence";
1414
import { ClientError } from "@scramjet/client-utils";
1515
import { initPlatform } from "../platform";
16-
import { AppConfig, DeepPartial, InstanceLimits } from "@scramjet/types";
16+
import { AppConfig, DeepPartial } from "@scramjet/types";
1717
import { isStartSequenceEndpointPayloadDTO, merge } from "@scramjet/utility";
18+
import { SequenceDeployArgs, SequenceStartCLIArgs } from "../../types/params";
1819

1920
/**
2021
* Initializes `sequence` command.
@@ -110,32 +111,11 @@ export const sequence: CommandDefinition = (program) => {
110111
}
111112
);
112113

113-
type ProcessedDeployArgs = {
114-
output?: string;
115-
config: AppConfig;
116-
instanceId?: string;
117-
inputTopic?: string;
118-
outputTopic?: string;
119-
args?: any[];
120-
appConfig: AppConfig,
121-
limits: InstanceLimits
122-
};
123-
124-
type SequenceStartParams = Omit<ProcessedDeployArgs, "instanceId"> & {
125-
startupConfig: DeepPartial<ProcessedDeployArgs>
126-
args?: string;
127-
instId?: string;
128-
limits: string;
129-
configFile: any;
130-
configString: any;
131-
132-
};
133-
134-
function validateStartupConfig(config: DeepPartial<ProcessedDeployArgs>) {
114+
function validateStartupConfig(config: DeepPartial<SequenceDeployArgs>) {
135115
return isStartSequenceEndpointPayloadDTO(config);
136116
}
137117

138-
function loadStartupConfig(filename: string): DeepPartial<ProcessedDeployArgs> {
118+
function loadStartupConfig(filename: string): DeepPartial<SequenceDeployArgs> {
139119
if (!filename) return {};
140120

141121
let json = {};
@@ -167,7 +147,7 @@ export const sequence: CommandDefinition = (program) => {
167147
.option("--startup-config <path-to-config>", "Path to startup config", loadStartupConfig)
168148
.option("--limits <json-string>", "Instance limits")
169149
.description("Start the Sequence with or without given arguments")
170-
.action(async (id, { startupConfig, configFile, configString, outputTopic, inputTopic, args: argsStr, limits: limitsStr, instId }: SequenceStartParams) => {
150+
.action(async (id, { startupConfig, configFile, configString, outputTopic, inputTopic, args: argsStr, limits: limitsStr, instId: instanceId }: SequenceStartCLIArgs) => {
171151
const args = argsStr ? sequenceParseArgs(argsStr) : undefined;
172152
const appConfig = await sequenceParseConfig(configFile, configString);
173153
const limits = limitsStr ? JSON.parse(limitsStr) : {};
@@ -176,7 +156,7 @@ export const sequence: CommandDefinition = (program) => {
176156
merge(startupConfig, {
177157
appConfig,
178158
args,
179-
instanceId: instId,
159+
instanceId,
180160
inputTopic,
181161
outputTopic,
182162
limits
@@ -187,7 +167,7 @@ export const sequence: CommandDefinition = (program) => {
187167
}
188168

189169
const instanceClient = await sequenceStart(id, {
190-
appConfig: startupConfig.appConfig as SequenceStartParams["appConfig"],
170+
appConfig: startupConfig.appConfig as AppConfig,
191171
args: startupConfig.args,
192172
limits: startupConfig.limits,
193173
instanceId: startupConfig.instanceId,
@@ -213,7 +193,7 @@ export const sequence: CommandDefinition = (program) => {
213193
.option("--startup-config <path-to-config>", "Path to startup config", loadStartupConfig)
214194
.option("--limits <json-string>", "Instance limits")
215195
.description("Pack (if needed), send and start the Sequence")
216-
.action(async (path: string, { startupConfig, output, configFile, configString, outputTopic, inputTopic, args: argsStr, limits: limitsStr, instId }: SequenceStartParams) => {
196+
.action(async (path: string, { startupConfig, output, configFile, configString, outputTopic, inputTopic, args: argsStr, limits: limitsStr, instId }: SequenceStartCLIArgs) => {
217197
const args = argsStr ? sequenceParseArgs(argsStr) : undefined;
218198
const appConfig = await sequenceParseConfig(configFile, configString);
219199
const limits = limitsStr ? JSON.parse(limitsStr) : {};
@@ -258,7 +238,7 @@ export const sequence: CommandDefinition = (program) => {
258238
}
259239

260240
const instanceClient = await sequenceStart("-", {
261-
appConfig: startupConfig.appConfig as SequenceStartParams["appConfig"],
241+
appConfig: startupConfig.appConfig as AppConfig,
262242
args: startupConfig.args,
263243
limits: startupConfig.limits,
264244
instanceId: startupConfig.instanceId,

packages/cli/src/lib/helpers/sequence.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ export const sequenceSendPackage = async (
148148
}
149149
};
150150

151-
export const sequenceParseConfig = async (configFile: string, configString: string): Promise<AppConfig> => {
151+
export const sequenceParseConfig = async (configFile: string = "", configString: string = ""): Promise<AppConfig> => {
152152
if (configFile && configString) {
153153
return Promise.reject(new Error("Provide one source of configuration"));
154154
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/**
2+
* Arguments types
3+
*/
4+
5+
export * from "./sequence";
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { DeepPartial, STHRestAPI } from "@scramjet/types";
2+
3+
export type SequenceDeployArgs = STHRestAPI.StartSequencePayload & {
4+
output?: string;
5+
};
6+
7+
export type SequenceStartCLIArgs = {
8+
args?: string;
9+
configFile?: string;
10+
configString?: string;
11+
instId?: string;
12+
inputTopic?: string;
13+
limits?: string;
14+
output?: string;
15+
outputTopic?: string;
16+
startupConfig: DeepPartial<SequenceDeployArgs>;
17+
};
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import { AppConfig } from "../app-config";
22
import { InstanceLimits } from "../instance-limits";
33

4-
export type StartSequenceResponse = { id: string }
4+
export type StartSequenceResponse = { id: string };
55

66
export type StartSequencePayload = {
7-
appConfig: AppConfig,
8-
args?: any[],
9-
outputTopic?: string,
10-
inputTopic?: string,
11-
limits?: InstanceLimits,
12-
instanceId?: string
13-
}
7+
appConfig: AppConfig;
8+
args?: any[];
9+
outputTopic?: string;
10+
inputTopic?: string;
11+
limits?: InstanceLimits;
12+
instanceId?: string;
13+
};

0 commit comments

Comments
 (0)