@open-audio-stack/core
Version:
Open-source audio plugin management software
25 lines (24 loc) • 851 B
JavaScript
import path from 'path';
import { Registry } from './Registry.js';
import { dirCreate, fileCreateJson, fileCreateYaml } from '../helpers/file.js';
export class RegistryLocal extends Registry {
managers;
constructor(name, url, version) {
super(name, url, version);
this.managers = {};
}
export(dir, ext = 'json') {
const saveFile = ext === 'yaml' ? fileCreateYaml : fileCreateJson;
for (const [, manager] of Object.entries(this.managers)) {
manager.export(path.join(dir, manager.type), ext);
}
dirCreate(dir);
saveFile(path.join(dir, `index.${ext}`), this.toJSON());
return true;
}
scan(ext = 'json', installable = true) {
for (const [, manager] of Object.entries(this.managers)) {
manager.scan(ext, installable);
}
}
}