A utility library to support Polyglot Persistence / Storage implementations.
| .forgejo/workflows | ||
| src | ||
| .gitignore | ||
| LICENSE | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| yarn.lock | ||
Polyglot Persistence Utilities Library
This library is intended to provide utilities to help make creating polyglot storage / persistence implementations easier.
Example Usage
The following shows how to use the library
import { createPolyglotRepository } from '@BridgemanAccessible/ba-polyglot-storage/repos';
import { Entity } from './entity/Entity.js';
import type { Properties } from './types/Properties.js';
// 1. Generate the custom class using the factory function
const EventRepoClass = createPolyglotRepository<Entity, Properties>(Entity);
// 2. Export the initialization wrapper
export const EntityRepo = async (
db: DB = DB.getDefaultDB(),
nosqlStorage: NoSQLStorage<any, any> = NoSQLStorage.getDefaultNoSQLStorage()
) => {
// Invoke the static method on the generated class
return await EventRepoClass.getRepo(db, nosqlStorage);
};