UNPKG

read-gedcom

Version:
56 lines (55 loc) 3.03 kB
import { FileEncoding } from './decoder'; import { GedcomReadingPhase } from './GedcomReadingPhase'; /** * Options to control the parsing of the Gedcom tree. */ export interface GedcomReadingOptions { /** * When set to <code>true</code> completely disabled the indexing in the tree. * This option can be safely set without affecting the correctness of the other components that may use the tree. * However, it will incur a slowdown when querying the tree. */ noIndex?: boolean; /** * When set to <code>true</code> the backwards references of the root node will not be stored (namely spouse and sibling relationships). * This option only has an effect when {@link noIndex} is not set, and as for that option it will not affect correctness of other components. * It will incur a slowdown when querying backward references. */ noBackwardsReferencesIndex?: boolean; /** * When set to <code>true</code> the {@link Tag.Concatenation} and {@link Tag.Continuation} special tags will not get interpreted and will be preserved in the resulting tree. * This option might affect the behavior of other components. * Otherwise the tags will get inlined according to their respective semantics, and thus will never appear in the output. */ noInlineContinuations?: boolean; /** * When set to <code>true</code> all the {@link TreeNode} in the tree will be frozen and modifications will be forbidden by the runtime. * Otherwise the objects will remain normal. * This option is not enabled by default for performance reasons. */ doFreeze?: boolean; /** * An optional callback used to track the progress. * Can also be used to implement preemptive multitasking (unblock the rendering thread). * @param phase The current phase * @param progress The progress of the phase, indicated by a number between <code>0</code> and <code>1</code>, or <code>null</code> if the progress cannot be determined */ progressCallback?: (phase: GedcomReadingPhase, progress: number | null) => void; /** * When set, disables the automatic charset detection mechanism and forces the parser to decode the file using the specified charset. * This is an escape hatch and its usage is not recommended; if you encounter issues with the detection mechanism please open a ticket instead. */ forcedCharset?: FileEncoding; /** * When set to <code>true</code>, illegally encoded data will raise an exception. * This can occur when dealing with ANSEL encoded data. * The default behavior is the insertion of a unicode replacement character. */ doStrictDecoding?: boolean; /** * When set to <code>true</code>, the {@link TreeNode._index} attribute will be non-enumerable. * As a consequence, {@link JSON.stringify} will not serialize the index. * It is however still possible to recompute the index, by calling {@link indexTree}. */ doHideIndex?: boolean; }