35 lines
1.1 KiB
JavaScript
35 lines
1.1 KiB
JavaScript
"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";
|
|
} |