mingo
Version:
MongoDB query language for in-memory objects
21 lines (20 loc) • 810 B
JavaScript
import { evalExpr } from "../../../core/_internal";
import { isNil, isString } from "../../../util";
import { errExpectString } from "../_internal";
const OP = "$replaceOne";
const $replaceOne = (obj, expr, options) => {
const foe = options.failOnError;
const args = evalExpr(obj, expr, options);
const { input, find, replacement } = args;
if (isNil(input) || isNil(find) || isNil(replacement)) return null;
if (!isString(input)) return errExpectString(foe, `${OP} 'input'`);
if (!isString(find)) return errExpectString(foe, `${OP} 'find'`);
if (!isString(replacement))
return errExpectString(foe, `${OP} 'replacement'`);
const idx = input.indexOf(find);
if (idx < 0) return input;
return input.slice(0, idx) + replacement + input.slice(idx + find.length);
};
export {
$replaceOne
};