kitten-cloud-function
Version:
用于编程猫源码云功能(云变量、云列表等)的客户端工具
70 lines (69 loc) • 2.28 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.LETTER = exports.UPPER_CASE_LETTER = exports.LOWER_CASE_LETTER = exports.NUMBER_CHAR = exports.None = void 0;
exports.equal = equal;
exports.merge = merge;
exports.enumerable = enumerable;
exports.randomString = randomString;
exports.None = null;
function equal(a, b) {
if (a === b) {
return true;
}
if (a && b && typeof a == "object" && typeof b == "object") {
if (a.constructor != b.constructor) {
return false;
}
if (Array.isArray(a)) {
if (a.length != b.length) {
return false;
}
for (let i = 0; i < a.length; i++) {
if (!equal(a[i], b[i])) {
return false;
}
}
return true;
}
let keys = Object.keys(a);
if (keys.length != Object.keys(b).length) {
return false;
}
for (const key of keys) {
if (!(key in b) || !equal(a[key], b[key])) {
return false;
}
}
return true;
}
return false;
}
function merge(target, source) {
for (const key in source) {
if (typeof source[key] == "object" && source[key] != exports.None) {
if (!(key in target)) {
target[key] = {};
}
if (typeof target[key] == "object" && target[key] != exports.None) {
merge(target[key], source[key]);
}
}
else if (!(key in target)) {
target[key] = source[key];
}
}
return target;
}
function enumerable(value) {
return function (__target, __propertyKey, descriptor) {
descriptor.enumerable = value;
};
}
exports.NUMBER_CHAR = "0123456789", exports.LOWER_CASE_LETTER = "abcdefghijklmnopqrstuvwxyz", exports.UPPER_CASE_LETTER = "ABCDEFGHIJKLMNOPQRSTUVWXYZ", exports.LETTER = exports.LOWER_CASE_LETTER.concat(exports.UPPER_CASE_LETTER);
function randomString(length = 32, charset = exports.NUMBER_CHAR.concat(exports.LETTER)) {
let result = "";
for (let i = 0; i < length; i++) {
result += charset[Math.floor(Math.random() * charset.length)];
}
return result;
}
;