import { ExtensionCodecType } from "./ExtensionCodec.ts";import { Encoder } from "./Encoder.ts";import { ContextOf, SplitUndefined } from "./context.ts";
export type EncodeOptions<ContextType = undefined> = & Partial< Readonly<{ extensionCodec: ExtensionCodecType<ContextType>; maxDepth: number; initialBufferSize: number; sortKeys: boolean;
forceFloat32: boolean;
ignoreUndefined: boolean; }> > & ContextOf<ContextType>;
const defaultEncodeOptions: EncodeOptions = {};
export function encode<ContextType>( value: unknown, options: EncodeOptions<SplitUndefined<ContextType>> = defaultEncodeOptions as any,): Uint8Array { const encoder = new Encoder<ContextType>( options.extensionCodec, (options as typeof options & { context: any }).context, options.maxDepth, options.initialBufferSize, options.sortKeys, options.forceFloat32, options.ignoreUndefined, ); return encoder.encode(value);}