UNPKG

@practicaloptimism/uniplexer

Version:

A multiplexer for 3rd party service providers and application protocols

55 lines (43 loc) 2.02 kB
import { Provider, ProviderCredential } from '../data-structures/provider' import { PROVIDER_TYPE_DATABASE, PROVIDER_TYPE_ASYMMETRIC_CRYPTOGRAPHY, PROVIDER_TYPE_HASH_FUNCTION // PROVIDER_TYPE_DISTRIBUTED_LEDGER_TECHNOLOGY, // PROVIDER_TYPE_PROCESS_RUNNER, // PROVIDER_TYPE_FILE_SYSTEM // PROVIDER_TYPE_TEXT_SEARCH } from '../constants/provider' import { AsymmetricCryptographyMultiplexer } from '../data-structures/asymmetric-cryptography' import { DatabaseMultiplexer } from '../data-structures/database' import { HashFunctionMultiplexer } from '../data-structures/hash-function' import { getMultiplexer as getAsymmetricCryptographyMultiplexer } from '../algorithms/asymmetric-cryptography/get-multiplexer' import { getMultiplexer as getDatabaseMultiplexer } from '../algorithms/database/get-multiplexer' import { getMultiplexer as getHashFunctionMultiplexer } from '../algorithms/hash-function/get-multiplexer' const providerTable: { [providerNameVersionId: string]: Provider } = {} const providerTypeTable: { [providerType: string]: { table: { [providerNameVersionId: string]: boolean } list: string[] } } = {} const providerCredentialTable: { [credentialHashId: string]: ProviderCredential } = {} const multiplexerTable: { [PROVIDER_TYPE_ASYMMETRIC_CRYPTOGRAPHY]: AsymmetricCryptographyMultiplexer, [PROVIDER_TYPE_DATABASE]: DatabaseMultiplexer, // [PROVIDER_TYPE_COMPUTER_SERVICE]: ComputerServiceMultiplexer, // [PROVIDER_TYPE_DISTRIBUTED_LEDGER_TECHNOLOGY]: DistributedLedgerTechnologyMultiplexer, [PROVIDER_TYPE_HASH_FUNCTION]: HashFunctionMultiplexer // [PROVIDER_TYPE_FILE_SYSTEM]: FileSystemMultiplexer, // [PROVIDER_TYPE_TEXT_SEARCH]: TextSearchMultiplexer } = { [PROVIDER_TYPE_ASYMMETRIC_CRYPTOGRAPHY]: getAsymmetricCryptographyMultiplexer(), [PROVIDER_TYPE_DATABASE]: getDatabaseMultiplexer(), [PROVIDER_TYPE_HASH_FUNCTION]: getHashFunctionMultiplexer() } export { providerTable, providerTypeTable, providerCredentialTable, multiplexerTable }