@overture-stack/lyric
Version:
Data Submission system
33 lines (32 loc) • 1.19 kB
JavaScript
import { migrate } from '@overture-stack/lyric-data-model';
import { getConnectionPool } from '../../../src/config/db.js';
import provider from '../../../src/core/provider.js';
const DEFAULT_SUBMISSION_SERVICE = {
maxFileSize: 10 * 1024 * 1024, // 10 MB
};
const DEFAULT_FEATURES = {
recordHierarchy: { pluralizeSchemasName: false },
};
const DEFAULT_ID_SERVICE = {
useLocal: true,
customAlphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
customSize: 21,
};
export async function createLyricProvider(config) {
await migrate(config.db);
const appConfig = {
auth: { enabled: false },
db: config.db,
schemaService: config.schemaService,
features: config.features ?? DEFAULT_FEATURES,
idService: config.idService ?? DEFAULT_ID_SERVICE,
logger: config.logger ?? { level: 'silent' },
submissionService: config.submissionService ?? DEFAULT_SUBMISSION_SERVICE,
validator: config.validator ?? [],
};
const lyricProvider = provider(appConfig);
const disconnect = async () => {
await getConnectionPool(lyricProvider.configs.db)?.end();
};
return { ...lyricProvider, disconnect };
}