A utility library to support Polyglot Persistence / Storage implementations.
Find a file
Alan Bridgeman c658fa3822
All checks were successful
Publish to Private NPM Registry / publish (push) Successful in 27s
Simplified things by removing the PolyglotAdapter decorator
2026-07-21 15:24:44 -05:00
.forgejo/workflows Initial code commit 2026-07-21 12:16:50 -05:00
src Simplified things by removing the PolyglotAdapter decorator 2026-07-21 15:24:44 -05:00
.gitignore Initial code commit 2026-07-21 12:16:50 -05:00
LICENSE Initial code commit 2026-07-21 12:16:50 -05:00
package.json Simplified things by removing the PolyglotAdapter decorator 2026-07-21 15:24:44 -05:00
README.md Initial code commit 2026-07-21 12:16:50 -05:00
tsconfig.json Initial code commit 2026-07-21 12:16:50 -05:00
yarn.lock Initial code commit 2026-07-21 12:16:50 -05:00

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); 
};