@overture-stack/lyric
Version:
Data Submission system
44 lines (43 loc) • 1.45 kB
JavaScript
import { fileURLToPath } from 'node:url';
import { migrate } from '@overture-stack/lyric-data-model';
import provider from '../../../src/core/provider.js';
const defaultSubmissionService = {
maxFileSize: 10 * 1024 * 1024, // 10 MB
};
const defaultFeatures = {
recordHierarchy: { pluralizeSchemasName: false },
};
const defaultIdService = {
useLocal: true,
customAlphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
customSize: 21,
};
/**
* Worker pool configuration resolver used for testing.
* It points to the TypeScript worker entry file.
*/
const testWorkerPoolConfigResolver = () => ({
workerPath: fileURLToPath(new URL('../../../src/workers/workerpool.ts', import.meta.url)),
poolOptions: {
workerType: 'process',
forkOpts: {
execArgv: ['--import=tsx'],
},
},
});
export async function createLyricProvider(config) {
await migrate(config.db);
const appConfig = {
auth: { enabled: false },
db: config.db,
schemaService: config.schemaService,
features: config.features ?? defaultFeatures,
idService: config.idService ?? defaultIdService,
logger: config.logger ?? { level: 'silent' },
submissionService: config.submissionService ?? defaultSubmissionService,
validator: config.validator ?? [],
};
return provider(appConfig, {
workerPoolConfigResolver: testWorkerPoolConfigResolver,
});
}