boostr
Version:
Build and deploy your Layr apps
30 lines • 1.16 kB
JavaScript
import { isStorableClass } from '@layr/storable';
import mri from 'mri';
import { createRequire } from 'module';
import 'source-map-support/register.js';
const require = createRequire(import.meta.url);
async function main() {
const { componentGetterFile, databaseURL } = mri(process.argv.slice(2));
const componentGetter = require(componentGetterFile).default;
const rootComponent = (await componentGetter());
let stores = new Set();
for (const component of [rootComponent, ...rootComponent.getProvidedComponents({ deep: true })]) {
if (isStorableClass(component) && !component.isEmbedded() && component.hasStore()) {
// TODO: Improve StoreLike typing to avoid the following 'any' casting
const store = component.getStore();
if (store.getURL() !== databaseURL) {
continue;
}
await store.migrateStorable(component);
stores.add(store);
}
}
for (const store of stores) {
await store.disconnect();
}
}
main().catch((error) => {
console.error(error);
process.exit(1);
});
//# sourceMappingURL=migrate-database.js.map