Skip to content

Commit 1ca1028

Browse files
committed
Convert enums to objects
This allows for tree-shaking. Bundlers are not able to reason about the usage of TS enums in JS, but they can reason about objects. Tree shaking all of these objects reduces bundle size by up to ~1.5kB (3%).
1 parent feb2c9d commit 1ca1028

File tree

3 files changed

+167
-121
lines changed

3 files changed

+167
-121
lines changed

common/api-review/vertexai.api.md

Lines changed: 86 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,15 @@ export interface BaseParams {
2727
}
2828

2929
// @public
30-
export enum BlockReason {
31-
BLOCKLIST = "BLOCKLIST",
32-
OTHER = "OTHER",
33-
PROHIBITED_CONTENT = "PROHIBITED_CONTENT",
34-
SAFETY = "SAFETY"
35-
}
30+
export const BlockReason: {
31+
readonly SAFETY: "SAFETY";
32+
readonly OTHER: "OTHER";
33+
readonly BLOCKLIST: "BLOCKLIST";
34+
readonly PROHIBITED_CONTENT: "PROHIBITED_CONTENT";
35+
};
36+
37+
// @public (undocumented)
38+
export type BlockReason = typeof BlockReason[keyof typeof BlockReason];
3639

3740
// @public
3841
export class BooleanSchema extends Schema {
@@ -160,17 +163,20 @@ export interface FileDataPart {
160163
}
161164

162165
// @public
163-
export enum FinishReason {
164-
BLOCKLIST = "BLOCKLIST",
165-
MALFORMED_FUNCTION_CALL = "MALFORMED_FUNCTION_CALL",
166-
MAX_TOKENS = "MAX_TOKENS",
167-
OTHER = "OTHER",
168-
PROHIBITED_CONTENT = "PROHIBITED_CONTENT",
169-
RECITATION = "RECITATION",
170-
SAFETY = "SAFETY",
171-
SPII = "SPII",
172-
STOP = "STOP"
173-
}
166+
export const FinishReason: {
167+
readonly STOP: "STOP";
168+
readonly MAX_TOKENS: "MAX_TOKENS";
169+
readonly SAFETY: "SAFETY";
170+
readonly RECITATION: "RECITATION";
171+
readonly OTHER: "OTHER";
172+
readonly BLOCKLIST: "BLOCKLIST";
173+
readonly PROHIBITED_CONTENT: "PROHIBITED_CONTENT";
174+
readonly SPII: "SPII";
175+
readonly MALFORMED_FUNCTION_CALL: "MALFORMED_FUNCTION_CALL";
176+
};
177+
178+
// @public (undocumented)
179+
export type FinishReason = typeof FinishReason[keyof typeof FinishReason];
174180

175181
// @public
176182
export interface FunctionCall {
@@ -189,11 +195,14 @@ export interface FunctionCallingConfig {
189195
}
190196

191197
// @public (undocumented)
192-
export enum FunctionCallingMode {
193-
ANY = "ANY",
194-
AUTO = "AUTO",
195-
NONE = "NONE"
196-
}
198+
export const FunctionCallingMode: {
199+
readonly AUTO: "AUTO";
200+
readonly ANY: "ANY";
201+
readonly NONE: "NONE";
202+
};
203+
204+
// @public (undocumented)
205+
export type FunctionCallingMode = typeof FunctionCallingMode[keyof typeof FunctionCallingMode];
197206

198207
// @public
199208
export interface FunctionCallPart {
@@ -375,46 +384,58 @@ export interface GroundingMetadata {
375384
}
376385

377386
// @public (undocumented)
378-
export enum HarmBlockMethod {
379-
PROBABILITY = "PROBABILITY",
380-
SEVERITY = "SEVERITY"
381-
}
387+
export const HarmBlockMethod: {
388+
readonly SEVERITY: "SEVERITY";
389+
readonly PROBABILITY: "PROBABILITY";
390+
};
391+
392+
// @public (undocumented)
393+
export type HarmBlockMethod = typeof HarmBlockMethod[keyof typeof HarmBlockMethod];
382394

383395
// @public
384-
export enum HarmBlockThreshold {
385-
BLOCK_LOW_AND_ABOVE = "BLOCK_LOW_AND_ABOVE",
386-
BLOCK_MEDIUM_AND_ABOVE = "BLOCK_MEDIUM_AND_ABOVE",
387-
BLOCK_NONE = "BLOCK_NONE",
388-
BLOCK_ONLY_HIGH = "BLOCK_ONLY_HIGH"
389-
}
396+
export const HarmBlockThreshold: {
397+
readonly BLOCK_LOW_AND_ABOVE: "BLOCK_LOW_AND_ABOVE";
398+
readonly BLOCK_MEDIUM_AND_ABOVE: "BLOCK_MEDIUM_AND_ABOVE";
399+
readonly BLOCK_ONLY_HIGH: "BLOCK_ONLY_HIGH";
400+
readonly BLOCK_NONE: "BLOCK_NONE";
401+
};
402+
403+
// @public (undocumented)
404+
export type HarmBlockThreshold = typeof HarmBlockThreshold[keyof typeof HarmBlockThreshold];
390405

391406
// @public
392-
export enum HarmCategory {
393-
// (undocumented)
394-
HARM_CATEGORY_DANGEROUS_CONTENT = "HARM_CATEGORY_DANGEROUS_CONTENT",
395-
// (undocumented)
396-
HARM_CATEGORY_HARASSMENT = "HARM_CATEGORY_HARASSMENT",
397-
// (undocumented)
398-
HARM_CATEGORY_HATE_SPEECH = "HARM_CATEGORY_HATE_SPEECH",
399-
// (undocumented)
400-
HARM_CATEGORY_SEXUALLY_EXPLICIT = "HARM_CATEGORY_SEXUALLY_EXPLICIT"
401-
}
407+
export const HarmCategory: {
408+
readonly HARM_CATEGORY_HATE_SPEECH: "HARM_CATEGORY_HATE_SPEECH";
409+
readonly HARM_CATEGORY_SEXUALLY_EXPLICIT: "HARM_CATEGORY_SEXUALLY_EXPLICIT";
410+
readonly HARM_CATEGORY_HARASSMENT: "HARM_CATEGORY_HARASSMENT";
411+
readonly HARM_CATEGORY_DANGEROUS_CONTENT: "HARM_CATEGORY_DANGEROUS_CONTENT";
412+
};
413+
414+
// @public (undocumented)
415+
export type HarmCategory = typeof HarmCategory[keyof typeof HarmCategory];
402416

403417
// @public
404-
export enum HarmProbability {
405-
HIGH = "HIGH",
406-
LOW = "LOW",
407-
MEDIUM = "MEDIUM",
408-
NEGLIGIBLE = "NEGLIGIBLE"
409-
}
418+
export const HarmProbability: {
419+
readonly NEGLIGIBLE: "NEGLIGIBLE";
420+
readonly LOW: "LOW";
421+
readonly MEDIUM: "MEDIUM";
422+
readonly HIGH: "HIGH";
423+
};
424+
425+
// @public (undocumented)
426+
export type HarmProbability = typeof HarmProbability[keyof typeof HarmProbability];
410427

411428
// @public
412-
export enum HarmSeverity {
413-
HARM_SEVERITY_HIGH = "HARM_SEVERITY_HIGH",
414-
HARM_SEVERITY_LOW = "HARM_SEVERITY_LOW",
415-
HARM_SEVERITY_MEDIUM = "HARM_SEVERITY_MEDIUM",
416-
HARM_SEVERITY_NEGLIGIBLE = "HARM_SEVERITY_NEGLIGIBLE"
417-
}
429+
export const HarmSeverity: {
430+
readonly HARM_SEVERITY_NEGLIGIBLE: "HARM_SEVERITY_NEGLIGIBLE";
431+
readonly HARM_SEVERITY_LOW: "HARM_SEVERITY_LOW";
432+
readonly HARM_SEVERITY_MEDIUM: "HARM_SEVERITY_MEDIUM";
433+
readonly HARM_SEVERITY_HIGH: "HARM_SEVERITY_HIGH";
434+
readonly HARM_SEVERITY_UNSPECIFIED: "HARM_SEVERITY_UNSPECIFIED";
435+
};
436+
437+
// @public (undocumented)
438+
export type HarmSeverity = typeof HarmSeverity[keyof typeof HarmSeverity];
418439

419440
// @beta
420441
export enum ImagenAspectRatio {
@@ -519,14 +540,17 @@ export class IntegerSchema extends Schema {
519540
}
520541

521542
// @public
522-
export enum Modality {
523-
AUDIO = "AUDIO",
524-
DOCUMENT = "DOCUMENT",
525-
IMAGE = "IMAGE",
526-
MODALITY_UNSPECIFIED = "MODALITY_UNSPECIFIED",
527-
TEXT = "TEXT",
528-
VIDEO = "VIDEO"
529-
}
543+
export const Modality: {
544+
readonly MODALITY_UNSPECIFIED: "MODALITY_UNSPECIFIED";
545+
readonly TEXT: "TEXT";
546+
readonly IMAGE: "IMAGE";
547+
readonly VIDEO: "VIDEO";
548+
readonly AUDIO: "AUDIO";
549+
readonly DOCUMENT: "DOCUMENT";
550+
};
551+
552+
// @public (undocumented)
553+
export type Modality = typeof Modality[keyof typeof Modality];
530554

531555
// @public
532556
export interface ModalityTokenCount {

packages/vertexai/src/requests/response-helpers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ export function getFunctionCalls(
164164
}
165165
}
166166

167-
const badFinishReasons = [FinishReason.RECITATION, FinishReason.SAFETY];
167+
const badFinishReasons = [FinishReason.RECITATION, FinishReason.SAFETY, FinishReason.BLOCKLIST, FinishReason.MALFORMED_FUNCTION_CALL, FinishReason.PROHIBITED_CONTENT, FinishReason.PROHIBITED_CONTENT];
168168

169169
function hadBadFinishReason(candidate: GenerateContentCandidate): boolean {
170170
return (

0 commit comments

Comments
 (0)