UNPKG

lib0

Version:

isomorphic utility functions

75 lines • 2.88 kB
/** * Renames node attributes (`a` -> `b`) in both directions. Holds no per-application state, so * {@link RenameAttrs} builds a single instance and shares it across every `init`. * * @extends Transformer<any,any> */ export class RenameAttrsTransformer extends Transformer<any, any> { /** * @param {import('../../schema.js').Schema<delta.Delta<any>>} $in * @param {import('../../schema.js').Schema<delta.Delta<any>>} $out * @param {{[K:string|number]:string|number}} renames */ constructor($in: import("../../schema.js").Schema<delta.Delta<any>>, $out: import("../../schema.js").Schema<delta.Delta<any>>, renames: { [K: string | number]: string | number; }); arenames: { [K: string]: string | number; [K: number]: string | number; }; /** * @type {{[K:string|number]:string|number}} */ brenames: { [K: string | number]: string | number; }; /** * @param {delta.DeltaAny} deltaA * @return {import('./core.js').TransformResultAny} */ applyA(deltaA: delta.DeltaAny): import("./core.js").TransformResultAny; /** * @param {delta.DeltaAny} deltaB * @return {import('./core.js').TransformResultAny} */ applyB(deltaB: delta.DeltaAny): import("./core.js").TransformResultAny; } /** * Template that renames node attributes (`a` -> `b`) in both directions. * * @template {{[K:string|number]:string|number}} Renames * @template {delta.DeltaConf} [IN=any] * @extends {Template<IN, ApplyRenameAttrs<Renames, IN>>} */ export class RenameAttrs<Renames extends { [K: string | number]: string | number; }, IN extends delta.DeltaConf = any> extends Template<IN, delta.DeltaConfOverwrite<IN, { attrs: import("../../ts.js").PropsRename<import("../../ts.js").TypeIsAny<IN, { [K: string]: any; [K: number]: any; }, IN extends { attrs: infer Attrs; } ? Attrs extends undefined ? {} : Attrs : {}>, Renames>; }>> { /** * @param {import('../../schema.js').Schema<delta.Delta<IN>>} $d * @param {Renames} renames */ constructor($d: import("../../schema.js").Schema<delta.Delta<IN>>, renames: Renames); /** * @type {Renames} */ renames: Renames; } export function renameAttrs<IN extends delta.DeltaConf, const Renames extends { [K: string | number]: string | number; }>($d: import("../../schema.js").Schema<delta.Delta<IN>>, renames: Renames): RenameAttrs<Renames, IN>; export type ApplyRenameAttrs<Renames extends { [K: string | number]: string | number; }, IN extends delta.DeltaConf> = delta.DeltaConfOverwrite<IN, { attrs: import("../../ts.js").PropsRename<delta.DeltaConfGetAttrs<IN>, Renames>; }>; import { Transformer } from './core.js'; import * as delta from '../delta.js'; import { Template } from './core.js'; //# sourceMappingURL=rename-attrs.d.ts.map