UNPKG

@livy/util

Version:
29 lines (28 loc) 918 B
import { Mixin } from '../mixin.mjs'; import { isSyncHandlerInterface } from './is-sync-handler-interface.mjs'; /** * Mixin which implements the `SyncHandlerInterface` by making the * `handle`/`handleBatchSync` method mirroring the `handle`/`handleBatch` method */ export const MirrorSyncHandlerMixin = Mixin(BaseClass => { return class MirrorSyncHandlerMixin extends BaseClass { constructor(...args) { super(...args); if (!isSyncHandlerInterface(this)) { throw new Error('Cannot use MirrorSyncHandlerMixin on an async handler'); } } /** * @inheritdoc */ handle(record) { return Promise.resolve(this.handleSync(record)); } /** * @inheritdoc */ handleBatch(records) { return Promise.resolve(this.handleBatchSync(records)); } }; });