You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
203 lines
6.7 KiB
203 lines
6.7 KiB
// node_modules/.pnpm/@alova+shared@1.1.2/node_modules/@alova/shared/dist/alova-shared.esm.js
|
|
var undefStr = "undefined";
|
|
var PromiseCls = Promise;
|
|
var promiseResolve = (value) => PromiseCls.resolve(value);
|
|
var promiseReject = (value) => PromiseCls.reject(value);
|
|
var ObjectCls = Object;
|
|
var RegExpCls = RegExp;
|
|
var undefinedValue = void 0;
|
|
var nullValue = null;
|
|
var trueValue = true;
|
|
var falseValue = false;
|
|
var promiseThen = (promise, onFulfilled, onrejected) => promise.then(onFulfilled, onrejected);
|
|
var promiseCatch = (promise, onrejected) => promise.catch(onrejected);
|
|
var promiseFinally = (promise, onfinally) => promise.finally(onfinally);
|
|
var JSONStringify = (value, replacer, space) => JSON.stringify(value, replacer, space);
|
|
var JSONParse = (value) => JSON.parse(value);
|
|
var setTimeoutFn = (fn, delay = 0) => setTimeout(fn, delay);
|
|
var clearTimeoutTimer = (timer) => clearTimeout(timer);
|
|
var objectKeys = (obj) => ObjectCls.keys(obj);
|
|
var forEach = (ary, fn) => ary.forEach(fn);
|
|
var pushItem = (ary, ...item) => ary.push(...item);
|
|
var mapItem = (ary, callbackfn) => ary.map(callbackfn);
|
|
var filterItem = (ary, predicate) => ary.filter(predicate);
|
|
var len = (data) => data.length;
|
|
var isArray = (arg) => Array.isArray(arg);
|
|
var deleteAttr = (arg, attr) => delete arg[attr];
|
|
var typeOf = (arg) => typeof arg;
|
|
var isSSR = typeof window === undefStr && (typeof process !== undefStr ? typeof process.cwd === "function" : typeof Deno !== undefStr);
|
|
var MEMORY = "memory";
|
|
var STORAGE_RESTORE = "restore";
|
|
var noop = () => {
|
|
};
|
|
var $self = (arg) => arg;
|
|
var isFn = (arg) => typeOf(arg) === "function";
|
|
var isNumber = (arg) => typeOf(arg) === "number" && !Number.isNaN(arg);
|
|
var isString = (arg) => typeOf(arg) === "string";
|
|
var globalToString = (arg) => ObjectCls.prototype.toString.call(arg);
|
|
var isPlainObject = (arg) => globalToString(arg) === "[object Object]";
|
|
var instanceOf = (arg, cls) => arg instanceof cls;
|
|
var getTime = (date) => date ? date.getTime() : Date.now();
|
|
var getContext = (methodInstance) => methodInstance.context;
|
|
var getConfig = (methodInstance) => methodInstance.config;
|
|
var getContextOptions = (alovaInstance) => alovaInstance.options;
|
|
var getOptions = (methodInstance) => getContextOptions(getContext(methodInstance));
|
|
var key = (methodInstance) => {
|
|
const { params, headers } = getConfig(methodInstance);
|
|
return JSONStringify([methodInstance.type, methodInstance.url, params, methodInstance.data, headers]);
|
|
};
|
|
var getMethodInternalKey = (methodInstance) => methodInstance.key;
|
|
var isSpecialRequestBody = (data) => {
|
|
const dataTypeString = globalToString(data);
|
|
return /^\[object (Blob|FormData|ReadableStream|URLSearchParams)\]$/i.test(dataTypeString) || instanceOf(data, ArrayBuffer);
|
|
};
|
|
var objAssign = (target, ...sources) => ObjectCls.assign(target, ...sources);
|
|
var getLocalCacheConfigParam = (methodInstance) => {
|
|
const { cacheFor } = getConfig(methodInstance);
|
|
const getCacheExpireTs = (cacheExpire) => isNumber(cacheExpire) ? getTime() + cacheExpire : getTime(cacheExpire || undefinedValue);
|
|
let cacheMode = MEMORY;
|
|
let expire = () => 0;
|
|
let store = falseValue;
|
|
let tag = undefinedValue;
|
|
const controlled = isFn(cacheFor);
|
|
if (!controlled) {
|
|
let expireColumn = cacheFor;
|
|
if (isPlainObject(cacheFor)) {
|
|
const { mode = MEMORY, expire: expire2, tag: configTag } = cacheFor || {};
|
|
cacheMode = mode;
|
|
store = mode === STORAGE_RESTORE;
|
|
tag = configTag ? configTag.toString() : undefinedValue;
|
|
expireColumn = expire2;
|
|
}
|
|
expire = (mode) => getCacheExpireTs(isFn(expireColumn) ? expireColumn({ method: methodInstance, mode }) : expireColumn);
|
|
}
|
|
return {
|
|
f: cacheFor,
|
|
c: controlled,
|
|
e: expire,
|
|
m: cacheMode,
|
|
s: store,
|
|
t: tag
|
|
};
|
|
};
|
|
var newInstance = (Cls, ...args) => new Cls(...args);
|
|
var sloughFunction = (arg, defaultFn) => isFn(arg) ? arg : ![falseValue, nullValue].includes(arg) ? defaultFn : noop;
|
|
var cacheKeyPrefix = "$a.";
|
|
var buildNamespacedCacheKey = (namespace, key2) => cacheKeyPrefix + namespace + key2;
|
|
var buildCompletedURL = (baseURL, url, params) => {
|
|
baseURL = baseURL.endsWith("/") ? baseURL.slice(0, -1) : baseURL;
|
|
if (url !== "") {
|
|
url = url.match(/^(\/|https?:\/\/)/) ? url : `/${url}`;
|
|
}
|
|
const completeURL = baseURL + url;
|
|
const paramsStr = mapItem(filterItem(objectKeys(params), (key2) => params[key2] !== undefinedValue), (key2) => `${key2}=${params[key2]}`).join("&");
|
|
return paramsStr ? +completeURL.includes("?") ? `${completeURL}&${paramsStr}` : `${completeURL}?${paramsStr}` : completeURL;
|
|
};
|
|
var deepClone = (obj) => {
|
|
if (isArray(obj)) {
|
|
return mapItem(obj, deepClone);
|
|
}
|
|
if (isPlainObject(obj) && obj.constructor === ObjectCls) {
|
|
const clone = {};
|
|
forEach(objectKeys(obj), (key2) => {
|
|
clone[key2] = deepClone(obj[key2]);
|
|
});
|
|
return clone;
|
|
}
|
|
return obj;
|
|
};
|
|
var AlovaError = class extends Error {
|
|
constructor(prefix, message, errorCode) {
|
|
super(message + (errorCode ? `
|
|
|
|
For detailed: https://alova.js.org/error#${errorCode}` : ""));
|
|
this.name = `[alova${prefix ? `/${prefix}` : ""}]`;
|
|
}
|
|
};
|
|
var createAssert = (prefix = "") => (expression, message, errorCode) => {
|
|
if (!expression) {
|
|
throw newInstance(AlovaError, prefix, message, errorCode);
|
|
}
|
|
};
|
|
var createEventManager = () => {
|
|
const eventMap = {};
|
|
return {
|
|
eventMap,
|
|
on(type, handler) {
|
|
const eventTypeItem = eventMap[type] = eventMap[type] || [];
|
|
pushItem(eventTypeItem, handler);
|
|
return () => {
|
|
eventMap[type] = filterItem(eventTypeItem, (item) => item !== handler);
|
|
};
|
|
},
|
|
off(type, handler) {
|
|
const handlers = eventMap[type];
|
|
if (!handlers) {
|
|
return;
|
|
}
|
|
if (handler) {
|
|
const index = handlers.indexOf(handler);
|
|
index > -1 && handlers.splice(index, 1);
|
|
} else {
|
|
delete eventMap[type];
|
|
}
|
|
},
|
|
emit(type, event) {
|
|
const handlers = eventMap[type] || [];
|
|
return mapItem(handlers, (handler) => handler(event));
|
|
}
|
|
};
|
|
};
|
|
|
|
export {
|
|
PromiseCls,
|
|
promiseResolve,
|
|
promiseReject,
|
|
ObjectCls,
|
|
RegExpCls,
|
|
undefinedValue,
|
|
trueValue,
|
|
falseValue,
|
|
promiseThen,
|
|
promiseCatch,
|
|
promiseFinally,
|
|
JSONStringify,
|
|
JSONParse,
|
|
setTimeoutFn,
|
|
clearTimeoutTimer,
|
|
objectKeys,
|
|
forEach,
|
|
pushItem,
|
|
mapItem,
|
|
filterItem,
|
|
len,
|
|
isArray,
|
|
deleteAttr,
|
|
isSSR,
|
|
MEMORY,
|
|
STORAGE_RESTORE,
|
|
noop,
|
|
$self,
|
|
isFn,
|
|
isString,
|
|
isPlainObject,
|
|
instanceOf,
|
|
getTime,
|
|
getContext,
|
|
getConfig,
|
|
getContextOptions,
|
|
getOptions,
|
|
key,
|
|
getMethodInternalKey,
|
|
isSpecialRequestBody,
|
|
objAssign,
|
|
getLocalCacheConfigParam,
|
|
newInstance,
|
|
sloughFunction,
|
|
buildNamespacedCacheKey,
|
|
buildCompletedURL,
|
|
deepClone,
|
|
createAssert,
|
|
createEventManager
|
|
};
|
|
//# sourceMappingURL=chunk-BBH5XXYJ.js.map
|
|
|