Skip to content

Commit 047a688

Browse files
fix(types): fix types build script for obs-websocket 4.6 (obs-websocket-community-projects#152)
The upstream types changed around a bit, so we needed to update this build script as well.
1 parent 70d2cc3 commit 047a688

File tree

1 file changed

+46
-17
lines changed

1 file changed

+46
-17
lines changed

.travis/build-types.ts

Lines changed: 46 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ interface Tree {
3636
[k: string]: AnyType;
3737
}
3838

39-
type AnyType = PrimitiveType | ObjectType | ArrayType | SceneType | SourceType;
39+
type AnyType = PrimitiveType | ObjectType | ArrayType | SceneType | SceneItemType | SceneItemTransformType | OBSStatsType;
4040

4141
interface PrimitiveType {
4242
type: 'string' | 'number' | 'boolean';
@@ -51,7 +51,7 @@ interface ObjectType {
5151

5252
interface ArrayType {
5353
type: 'array';
54-
items: PrimitiveType | ObjectType | SceneType | SourceType;
54+
items: PrimitiveType | ObjectType | SceneType | SceneItemType | SceneItemTransformType;
5555
optional: boolean;
5656
}
5757

@@ -60,8 +60,18 @@ interface SceneType {
6060
optional: boolean;
6161
}
6262

63-
interface SourceType {
64-
type: 'ObsWebSocket.Source';
63+
interface SceneItemType {
64+
type: 'ObsWebSocket.SceneItem';
65+
optional: boolean;
66+
}
67+
68+
interface SceneItemTransformType {
69+
type: 'ObsWebSocket.SceneItemTransform';
70+
optional: boolean;
71+
}
72+
73+
interface OBSStatsType {
74+
type: 'ObsWebSocket.OBSStats';
6575
optional: boolean;
6676
}
6777

@@ -147,41 +157,41 @@ declare module 'obs-websocket-js' {
147157
error?: Error | ObsWebSocket.ObsError,
148158
response?: RequestMethodReturnMap[K]
149159
) => void;
150-
160+
151161
interface ObsError {
152162
messageId: string;
153163
status: "error";
154164
error: string;
155165
}
156-
166+
157167
${interfaces.join('\n\n ')}
158168
}
159-
169+
160170
interface RequestMethodsArgsMap {
161171
${requestArgs.join('\n\n ')}
162172
}
163-
173+
164174
interface RequestMethodReturnMap {
165175
${requestResponses.join('\n\n ')}
166176
}
167-
177+
168178
interface EventHandlersDataMap {
169179
"ConnectionOpened": void;
170180
"ConnectionClosed": void;
171181
"AuthenticationSuccess": void;
172182
"AuthenticationFailure": void;
173183
${eventOverloads.join('\n\n ')}
174184
}
175-
176-
class ObsWebSocket extends EventEmitter {
185+
186+
class ObsWebSocket extends EventEmitter {
177187
connect(options?: {address?: string; password?: string}, callback?: (error?: Error) => void): Promise<void>;
178188
disconnect(): void;
179-
189+
180190
send<K extends keyof RequestMethodsArgsMap>(
181191
requestType: K,
182192
...args: (RequestMethodsArgsMap[K] extends object ? [RequestMethodsArgsMap[K]] : [undefined?])
183193
): Promise<RequestMethodReturnMap[K]>;
184-
194+
185195
sendCallback<K extends keyof RequestMethodsArgsMap>(
186196
requestType: K,
187197
...args: RequestMethodsArgsMap[K] extends object
@@ -194,7 +204,7 @@ declare module 'obs-websocket-js' {
194204
listener: (data: EventHandlersDataMap[K]) => void
195205
): this;
196206
}
197-
207+
198208
export = ObsWebSocket;
199209
}`;
200210
/* tslint:enable:no-trailing-whitespace no-dead-reference */
@@ -365,15 +375,34 @@ function resolveType(inType: string): AnyType {
365375
},
366376
optional: isOptional
367377
};
368-
case 'array<source>':
378+
case 'array<sceneitem>':
379+
return {
380+
type: 'array',
381+
items: {
382+
type: 'ObsWebSocket.SceneItem',
383+
optional: true
384+
},
385+
optional: isOptional
386+
};
387+
case 'array<sceneitemtransform>':
369388
return {
370389
type: 'array',
371390
items: {
372-
type: 'ObsWebSocket.Source',
391+
type: 'ObsWebSocket.SceneItemTransform',
373392
optional: true
374393
},
375394
optional: isOptional
376395
};
396+
case 'sceneitemtransform':
397+
return {
398+
type: 'ObsWebSocket.SceneItemTransform',
399+
optional: isOptional
400+
};
401+
case 'obsstats':
402+
return {
403+
type: 'ObsWebSocket.OBSStats',
404+
optional: isOptional
405+
};
377406
case 'object':
378407
return {
379408
type: 'object',
@@ -400,7 +429,7 @@ function stringifyTypes(inputTypes: Tree, {terminator = ';', finalTerminator = t
400429
if (typeDef.items) {
401430
if (typeDef.items.type === 'object') {
402431
if (Object.keys(typeDef.items.properties).length > 0) {
403-
returnString += `${stringifyTypes(typeDef.items.properties as any, {includePrefix: false, terminator: ''})}[]`;
432+
returnString += `${stringifyTypes(typeDef.items.properties, {includePrefix: false, terminator: ''})}[]`;
404433
} else {
405434
returnString += 'Array<{[k: string]: any}>';
406435
}

0 commit comments

Comments
 (0)