UNPKG

@overture-stack/lyric

Version:
44 lines (43 loc) 1.45 kB
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, }); }