@wepublish/api-db-mongodb
Version:
We.publish Database adapter for mongoDB
80 lines • 3.19 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.slugify = exports.escapeRegExp = exports.MongoErrorCode = exports.isNonNull = exports.base64Decode = exports.base64Encode = exports.generateToken = exports.generateID = exports.IDAlphabet = void 0;
const generate_1 = __importDefault(require("nanoid/generate"));
exports.IDAlphabet = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
function generateID() {
return (0, generate_1.default)(exports.IDAlphabet, 16);
}
exports.generateID = generateID;
function generateToken() {
return (0, generate_1.default)(exports.IDAlphabet, 32);
}
exports.generateToken = generateToken;
function base64Encode(str) {
return Buffer.from(str).toString('base64');
}
exports.base64Encode = base64Encode;
function base64Decode(str) {
return Buffer.from(str, 'base64').toString();
}
exports.base64Decode = base64Decode;
function isNonNull(value) {
return value != null;
}
exports.isNonNull = isNonNull;
var MongoErrorCode;
(function (MongoErrorCode) {
MongoErrorCode[MongoErrorCode["DuplicateKey"] = 11000] = "DuplicateKey";
})(MongoErrorCode = exports.MongoErrorCode || (exports.MongoErrorCode = {}));
/**
* this method gets a string with special characters like:
* - , [ , ] , / , { , } , ( , ) , * , + , ? , . , \ , ^ , $ , |
* and it adds \ the slash to let regex works properly as intended
* @param string string with special characters
*/
function escapeRegExp(string) {
return string.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
}
exports.escapeRegExp = escapeRegExp;
// copied from packages/editor
function slugify(str) {
return str
.toLowerCase()
.trim()
.replace(/[ÀÁÂÃÄÅÆĀĂĄẠẢẤẦẨẪẬẮẰẲẴẶ]/gi, 'a')
.replace(/[ÇĆĈČ]/gi, 'c')
.replace(/[ÐĎĐÞ]/gi, 'd')
.replace(/[ÈÉÊËĒĔĖĘĚẸẺẼẾỀỂỄỆ]/gi, 'e')
.replace(/[ĜĞĢǴ]/gi, 'g')
.replace(/[ĤḦ]/gi, 'h')
.replace(/[ÌÍÎÏĨĪĮİỈỊ]/gi, 'i')
.replace(/[Ĵ]/gi, 'j')
.replace(/[IJ]/gi, 'ij')
.replace(/[Ķ]/gi, 'k')
.replace(/[ĹĻĽŁ]/gi, 'l')
.replace(/[Ḿ]/gi, 'm')
.replace(/[ÑŃŅŇ]/gi, 'n')
.replace(/[ÒÓÔÕÖØŌŎŐỌỎỐỒỔỖỘỚỜỞỠỢǪǬƠ]/gi, 'o')
.replace(/[Œ]/gi, 'oe')
.replace(/[ṕ]/gi, 'p')
.replace(/[ŔŖŘ]/gi, 'r')
.replace(/[ߌŜŞŠ]/gi, 's')
.replace(/[ŢŤ]/gi, 't')
.replace(/[ÙÚÛÜŨŪŬŮŰŲỤỦỨỪỬỮỰƯ]/gi, 'u')
.replace(/[ẂŴẀẄ]/gi, 'w')
.replace(/[ẍ]/gi, 'x')
.replace(/[ÝŶŸỲỴỶỸ]/gi, 'y')
.replace(/[ŹŻŽ]/gi, 'z')
.replace(/[·/_,:;\\']/gi, '-')
.replace(/\s+/g, '-')
.replace(/[^\w\-]+/g, '') //eslint-disable-line
.replace(/--+/g, '-')
.replace(/^-+/, '')
.replace(/-+$/, '');
}
exports.slugify = slugify;
//# sourceMappingURL=utility.js.map
;