Skip to content

Commit 9f18bb1

Browse files
committed
Add public interface for conversion
1 parent 5fa0dc2 commit 9f18bb1

File tree

4 files changed

+15
-3
lines changed

4 files changed

+15
-3
lines changed

retroload-lib/src/conversion/ConverterManager.test.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {getLocalPathByDirAndFile} from '../Examples.js';
22
import {BufferAccess} from '../common/BufferAccess.js';
33
import {type OptionValues} from '../encoding/Options.js';
4-
import {convert} from './ConverterManager.js';
4+
import {convert, getConverters} from './ConverterManager.js';
55
import * as fs from 'fs';
66

77
type TestDefinition = {
@@ -29,6 +29,10 @@ const formatTests: TestDefinition[] = [
2929
},
3030
];
3131

32+
test('getConverters() returns non empty list', () => {
33+
expect(getConverters().length).toBeGreaterThan(0);
34+
});
35+
3236
describe('Formats are converted correctly', () => {
3337
it.each(formatTests.map((t: TestDefinition) => ({label: getTestLabel(t), definition: t})))(
3438
'$label',

retroload-lib/src/conversion/ConverterManager.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@ import {type BufferAccess} from '../common/BufferAccess.js';
22
import {FormatNotFoundError} from '../common/Exceptions.js';
33
import {OptionContainer, type OptionValues} from '../encoding/Options.js';
44
import {converters} from './ConverterProvider.js';
5-
import {type ConverterDefinition} from './converter/ConverterDefinition.js';
5+
import {type PublicConverterDefinition, type ConverterDefinition} from './converter/ConverterDefinition.js';
6+
7+
export function getConverters(): PublicConverterDefinition[] {
8+
return converters;
9+
}
610

711
export function convert(data: BufferAccess, identifier: string, options: OptionValues): BufferAccess {
812
const chosenConverters = converters.filter((c: ConverterDefinition) => c.identifier === identifier);
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
import {type BufferAccess} from '../../common/BufferAccess.js';
22
import {type OptionContainer, type PublicOptionDefinition} from '../../encoding/Options.js';
33

4-
export type ConverterDefinition = {
4+
export type PublicConverterDefinition = {
55
readonly name: string;
66
readonly identifier: string;
77
readonly options: PublicOptionDefinition[];
8+
};
9+
10+
export type ConverterDefinition = PublicConverterDefinition & {
811
readonly convert: (ba: BufferAccess, options: OptionContainer) => BufferAccess;
912
};

retroload-lib/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ export {WaveRecorder} from './encoding/recorder/WaveRecorder.js';
33
export {Logger} from './common/logging/Logger.js';
44
export {BufferAccess} from './common/BufferAccess.js';
55
export * as AdapterManager from './encoding/AdapterManager.js';
6+
export * as ConverterManager from './conversion/ConverterManager.js';
67
export * as Exception from './common/Exceptions.js';
78
export * as DecoderManager from './decoding/DecoderManager.js';
89
export {tokenizers as BasicTokenizers} from './tokenizing/TokenizerProvider.js';

0 commit comments

Comments
 (0)