Skip to content

Commit

Permalink
fix: scan the models folder recursive to find model metadata file
Browse files Browse the repository at this point in the history
  • Loading branch information
James committed Jun 3, 2024
1 parent af240bf commit 9fd7885
Showing 1 changed file with 25 additions and 2 deletions.
27 changes: 25 additions & 2 deletions extensions/model-extension/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 417,29 @@ export default class JanModelExtension extends ModelExtension {
)
}

private async getModelJsonPath(
folderFullPath: string
): Promise<string | undefined> {
// try to find model.json recursively inside each folder
const files: string[] = await fs.readdirSync(folderFullPath)
if (files.length === 0) return undefined
if (files.includes(JanModelExtension._modelMetadataFileName)) {
return joinPath([
folderFullPath,
JanModelExtension._modelMetadataFileName,
])
}
// continue recursive
for (const file of files) {
const path = await joinPath([folderFullPath, file])
const fileStats = await fs.fileStat(path)
if (fileStats.isDirectory) {
const result = await this.getModelJsonPath(path)
if (result) return result
}
}
}

private async getModelsMetadata(
selector?: (path: string, model: Model) => Promise<boolean>
): Promise<Model[]> {
Expand All @@ -438,11 461,11 @@ export default class JanModelExtension extends ModelExtension {
const readJsonPromises = allDirectories.map(async (dirName) => {
// filter out directories that don't match the selector
// read model.json
const jsonPath = await joinPath([
const folderFullPath = await joinPath([
JanModelExtension._homeDir,
dirName,
JanModelExtension._modelMetadataFileName,
])
const jsonPath = await this.getModelJsonPath(folderFullPath)

if (await fs.existsSync(jsonPath)) {
// if we have the model.json file, read it
Expand Down

0 comments on commit 9fd7885

Please sign in to comment.