@@ -3,6 +3,10 @@ import ModelRegistryClient from '@model-registry/ModelRegistryClient';
33import ModelVersionClient from '@model-registry/ModelVersionClient' ;
44import { ApiError } from '@utils/apiError' ;
55
6+ interface keyable {
7+ [ key : string ] : any ;
8+ }
9+
610class ModelManager {
711 private modelRegistry : ModelRegistryClient ;
812 private modelVersion : ModelVersionClient ;
@@ -103,11 +107,13 @@ class ModelManager {
103107 value : string
104108 ) : Promise < object > {
105109 try {
106- const data = await this . modelRegistry . getLatestModelVersions ( name ) ;
110+ const data : keyable = await this . modelRegistry . getLatestModelVersions (
111+ name
112+ ) ;
107113 if ( ! data ) {
108114 throw new Error ( 'Model has no version to update.' ) ;
109115 } else {
110- const [ { version } ] = data ;
116+ const version = data [ 0 ] . version ;
111117 await this . modelRegistry . setRegisteredModelAlias ( name , alias , version ) ;
112118 await this . modelVersion . setModelVersionTag ( name , version , key , value ) ;
113119 const response = await this . modelVersion . updateModelVersion (
@@ -143,11 +149,13 @@ class ModelManager {
143149 value : string
144150 ) : Promise < void > {
145151 try {
146- const data = await this . modelRegistry . getLatestModelVersions ( name ) ;
152+ const data : keyable = await this . modelRegistry . getLatestModelVersions (
153+ name
154+ ) ;
147155 if ( ! data ) {
148156 throw new Error ( 'Model has no version to set tag for.' ) ;
149157 } else {
150- const [ { version } ] = data ;
158+ const version = data [ 0 ] . version ;
151159 this . modelVersion . setModelVersionTag ( name , version , key , value ) ;
152160 return ;
153161 }
@@ -172,11 +180,13 @@ class ModelManager {
172180 */
173181 async setLatestModelVersionAlias ( name : string , alias : string ) : Promise < void > {
174182 try {
175- const data = await this . modelRegistry . getLatestModelVersions ( name ) ;
183+ const data : keyable = await this . modelRegistry . getLatestModelVersions (
184+ name
185+ ) ;
176186 if ( ! data ) {
177187 throw new Error ( 'Model has no version to set alias for.' ) ;
178188 } else {
179- const [ { version } ] = data ;
189+ const version = data [ 0 ] . version ;
180190 this . modelRegistry . setRegisteredModelAlias ( name , alias , version ) ;
181191 return ;
182192 }
@@ -204,11 +214,13 @@ class ModelManager {
204214 description : string
205215 ) : Promise < object > {
206216 try {
207- const data = await this . modelRegistry . getLatestModelVersions ( name ) ;
217+ const data : keyable = await this . modelRegistry . getLatestModelVersions (
218+ name
219+ ) ;
208220 if ( ! data ) {
209221 throw new Error ( 'Model has no version to set description for.' ) ;
210222 } else {
211- const [ { version } ] = data ;
223+ const version = data [ 0 ] . version ;
212224 const response = await this . modelVersion . updateModelVersion (
213225 name ,
214226 version ,
@@ -277,11 +289,13 @@ class ModelManager {
277289 */
278290 async deleteLatestModelVersion ( name : string ) : Promise < void > {
279291 try {
280- const data = await this . modelRegistry . getLatestModelVersions ( name ) ;
292+ const data : keyable = await this . modelRegistry . getLatestModelVersions (
293+ name
294+ ) ;
281295 if ( ! data ) {
282296 throw new Error ( 'Model has no version to delete.' ) ;
283297 } else {
284- const [ { version } ] = data ;
298+ const version = data [ 0 ] . version ;
285299 this . modelVersion . deleteModelVersion ( name , version ) ;
286300 return ;
287301 }
@@ -305,7 +319,7 @@ class ModelManager {
305319 * @param {string[] } experiment_ids - An array containing an experiment id. (Required)
306320 * @param {string } filterMetric - The name of the metric that we're filtering by. (Required)
307321 * @param {string } metricMinOrMax - A string specifying if we want the minimum or maximum
308- * value of the specified metric. Can be either 'min' or
322+ * value of the specified metric. Can be either 'min' or
309323 * 'max'(Required)
310324 * @param {string } modelName - The name of the new model that will be created. (Required)
311325 * @returns {Promise<void> }
@@ -318,10 +332,11 @@ class ModelManager {
318332 modelName : string
319333 ) : Promise < void > {
320334 try {
321- const { runs } = await this . runClient . searchRuns (
335+ const data : keyable = await this . runClient . searchRuns (
322336 experiment_ids ,
323337 `metrics.${ filterMetric } != -99999`
324338 ) ;
339+ const runs = data . runs ;
325340 let num ;
326341 if ( metricMinOrMax === 'min' ) {
327342 num = Infinity ;
@@ -354,7 +369,7 @@ class ModelManager {
354369 bestRun . info . artifact_uri ,
355370 bestRun . info . run_id
356371 ) ;
357- return
372+ return ;
358373 } catch ( error ) {
359374 if ( error instanceof ApiError ) {
360375 console . error ( `API Error (${ error . statusCode } ): ${ error . message } ` ) ;
0 commit comments