"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mergeOptions = mergeOptions; exports.isIterableIterator = isIterableIterator; function mergeOptions(target, source) { for (const k of Object.keys(source)) { if (k === "parserOpts" && source.parserOpts) { const parserOpts = source.parserOpts; const targetObj = target.parserOpts = target.parserOpts || {}; mergeDefaultFields(targetObj, parserOpts); } else if (k === "generatorOpts" && source.generatorOpts) { const generatorOpts = source.generatorOpts; const targetObj = target.generatorOpts = target.generatorOpts || {}; mergeDefaultFields(targetObj, generatorOpts); } else { const val = source[k]; if (val !== undefined) target[k] = val; } } } function mergeDefaultFields(target, source) { for (const k of Object.keys(source)) { const val = source[k]; if (val !== undefined) target[k] = val; } } function isIterableIterator(value) { return !!value && typeof value.next === "function" && typeof value[Symbol.iterator] === "function"; }