cloudfunctions/ClearingRedundantFolders/node_modules/bson/lib/regexp.js
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.BSONRegExp = void 0;
var error_1 = require("./error");
function alphabetize(str) {
return str.split('').sort().join('');
}
/**
* A class representation of the BSON RegExp type.
* @public
*/
var BSONRegExp = /** @class */ (function () {
/**
* @param pattern - The regular expression pattern to match
* @param options - The regular expression options
*/
function BSONRegExp(pattern, options) {
if (!(this instanceof BSONRegExp))
return new BSONRegExp(pattern, options);
this.pattern = pattern;
this.options = alphabetize(options !== null && options !== void 0 ? options : '');
if (this.pattern.indexOf('\x00') !== -1) {
throw new error_1.BSONError("BSON Regex patterns cannot contain null bytes, found: " + JSON.stringify(this.pattern));
}
if (this.options.indexOf('\x00') !== -1) {
throw new error_1.BSONError("BSON Regex options cannot contain null bytes, found: " + JSON.stringify(this.options));
}
// Validate options
for (var i = 0; i < this.options.length; i++) {
if (!(this.options[i] === 'i' ||
this.options[i] === 'm' ||
this.options[i] === 'x' ||
this.options[i] === 'l' ||
this.options[i] === 's' ||
this.options[i] === 'u')) {
throw new error_1.BSONError("The regular expression option [" + this.options[i] + "] is not supported");
}
}
}
BSONRegExp.parseOptions = function (options) {
return options ? options.split('').sort().join('') : '';
};
/** @internal */
BSONRegExp.prototype.toExtendedJSON = function (options) {
options = options || {};
if (options.legacy) {
return { $regex: this.pattern, $options: this.options };
}
return { $regularExpression: { pattern: this.pattern, options: this.options } };
};
/** @internal */
BSONRegExp.fromExtendedJSON = function (doc) {
if ('$regex' in doc) {
if (typeof doc.$regex !== 'string') {
// This is for $regex query operators that have extended json values.
if (doc.$regex._bsontype === 'BSONRegExp') {
return doc;
}
}
else {
后面还有 13 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
