|
- import * as SupportedSources from './sources';
- import * as SupportedAdapters from './adapters';
-
- export * as Sources from './sources';
- export * as Adapters from './adapters';
- export * from './streams';
-
- export type CreateDownloaderParams = (
- SupportedSources.Kanjidic.CreateDownloaderParams
- | SupportedSources.JMdict.CreateDownloaderParams
- | SupportedSources.JMnedict.CreateDownloaderParams
- | SupportedSources.RadKFile.CreateDownloaderParams
- | SupportedSources.KRadFile.CreateDownloaderParams
- );
-
- export const createDownloader = (params: CreateDownloaderParams) => {
- const { type: sourceType, ...etcParams } = params;
- const theSupportedSources = Object.values(SupportedSources);
-
- const theSourceModule = theSupportedSources
- .find((videoTypeModule) => videoTypeModule.SOURCE_ID === sourceType);
-
- if (!theSourceModule) {
- const validSourceTypes = theSupportedSources.map((videoTypeModule) => videoTypeModule.SOURCE_ID).join(', ');
- throw new TypeError(`Invalid source type: "${sourceType}". Valid values are: ${validSourceTypes}`);
- }
-
- return theSourceModule.createDownloader(etcParams);
- };
-
- export type CreateAdapterParams = (
- SupportedAdapters.FileJsonl.CreateAdapterParams
- );
-
- export const createAdapter = (params: CreateAdapterParams) => {
- const { type: adapterType, ...etcParams } = params;
- const theSupportedAdapters = Object.values(SupportedAdapters);
-
- const theAdapterModule = theSupportedAdapters
- .find((adapterTypeModule) => adapterTypeModule.ADAPTER_ID === adapterType);
-
- if (!theAdapterModule) {
- const validAdapterTypes = theSupportedAdapters.map((adapterTypeModule) => adapterTypeModule.ADAPTER_ID).join(', ');
- throw new TypeError(`Invalid adapter type: "${adapterType}". Valid values are: ${validAdapterTypes}`);
- }
-
- return theAdapterModule.createAdapter(etcParams);
- };
|