import { CursorSelection, CursorTransformer } from "../types/cursor";

export const append = <Type, Key extends keyof Type>(
  transformer: CursorTransformer<Type, Key>
): CursorTransformer<Type, Key> => {
  return (data, selection, meta) => {
    const result = transformer(data, selection, meta);
    return result + selection.content;
  };
};

export const prepend = <Type, Key extends keyof Type>(
  transformer: CursorTransformer<Type, Key>
): CursorTransformer<Type, Key> => {
  return (data, selection, meta) => {
    const result = transformer(data, selection, meta);
    return selection.content + result;
  };
};
