Files
liwenzhen f091ebdd72 update jsfw code for wgr
Signed-off-by: liwenzhen <liwenzhen3@huawei.com>
Change-Id: I0725e78ce0de746715f070f5cfa02ef90371afe7
2021-12-22 18:13:34 +08:00

96 lines
2.6 KiB
JavaScript

/**
* Add properties to object.
* @param {Object} obj - The object which need be added properties.
* @param {*[]} prop - The properties which to be added.
* @return {Object} The object which has been added properties.
*/
export function extend(obj, ...prop) {
if (typeof Object.assign === 'function') {
Object.assign(obj, ...prop);
} else {
const first = prop.shift();
for (const key in first) {
obj[key] = first[key];
}
if (prop.length) {
extend(obj, ...prop);
}
}
return obj;
}
/**
* Add or modify a property.
* @param {Object} obj - The object which need be added or modified a property.
* @param {string} prop - The key of the property.
* @param {*} val - The value of the the property.
* @param {boolean} [enumerable] - If the property is enumerable.
*/
export function def(obj, prop, val, enumerable) {
Object.defineProperty(obj, prop, {
value: val,
enumerable: !!enumerable,
writable: true,
configurable: true
});
}
/**
* Remove an item from an array.
* @param {*[]} arr - The array from which removes an item.
* @param {*} item - The item which to be removed.
* @return {*} The item which has been removed.
*/
export function remove(arr, item) {
if (arr.length) {
const index = arr.indexOf(item);
if (index >= 0) {
return arr.splice(index, 1);
}
}
}
/**
* Verify whether the property exists or not in object.
* @param {Object} obj - The object which should be verified.
* @param {string} prop - The property which should be verified.
* @return {boolean} The result whether the property exists or not.
*/
export function hasOwn(obj, prop) {
return Object.prototype.hasOwnProperty.call(obj, prop);
}
/**
* Verify whether a variable is object.
* @param {*} any - The variable which should be verified.
* @return {boolean} The result whether a variable is an object.
*/
export function isObject(any) {
return any !== null && typeof any === 'object';
}
/**
* Verify whether a variable is an plain JavaScript object.
* @param {*} any - The variable which should be verified.
* @return {boolean} The result whether a variable is an plain JavaScript object.
*/
export function isPlainObject(any) {
return Object.prototype.toString.call(any) === '[object Object]';
}
/**
* Convert ArrayBuffer to Base64.
* @param {*} buffer - Binary data buffer.
* @return {string} Base64 encoding string.
*/
export function bufferToBase64 (buffer) {
if (typeof btoa !== 'function') {
return '';
}
const string = Array.prototype.map.call(
new Uint8Array(buffer),
code => String.fromCharCode(code)
).join('');
return btoa(string);
}