qidian-shared 1.0.48 → 1.0.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { ref, onActivated, unref, onDeactivated, onBeforeUnmount } from "vue";
1
+ import { ref, unref, onActivated, onDeactivated, onBeforeUnmount } from "vue";
2
2
  import { usePagination } from "../../node_modules/.pnpm/vue-request@2.0.4_vue@3.5.26_typescript@5.9.3_/node_modules/vue-request/dist/index.es.mjs";
3
3
  import { isEmpty, easyCopy } from "../../utils/common.mjs";
4
4
  import { suspectedWrapperPromise, to } from "../../utils/promise.mjs";
@@ -19,6 +19,7 @@ function useServicePagination({
19
19
  const firstLoad = ref(false);
20
20
  const manualTriggerLoad = ref(false);
21
21
  const dataList = ref([]);
22
+ const paginationV = unref(pagination);
22
23
  const {
23
24
  data,
24
25
  loading,
@@ -40,10 +41,10 @@ function useServicePagination({
40
41
  } = usePagination(
41
42
  async (params2) => {
42
43
  const res = { list: [], page: 1, total: 0 };
43
- const paginationV = unref(pagination);
44
- const currentParams = paginationV !== false ? {
44
+ const currentPagV = unref(pagination);
45
+ const currentParams = currentPagV !== false ? {
45
46
  pageNum: params2?.page ?? 1,
46
- pageSize: params2?.size ?? paginationV?.pageSize ?? 10
47
+ pageSize: params2?.size ?? 10
47
48
  } : void 0;
48
49
  if (currentParams?.pageNum === 1 || isEmpty(currentParams?.pageNum)) firstLoad.value = true;
49
50
  let tParams;
@@ -68,7 +69,7 @@ function useServicePagination({
68
69
  }
69
70
  if (!temp.records) temp.records = [];
70
71
  if (isEmpty(temp.total)) temp.total = temp.records.length;
71
- if (!paginationV || currentParams?.pageNum === 1) {
72
+ if (!currentPagV || currentParams?.pageNum === 1) {
72
73
  res.list = temp.records;
73
74
  } else {
74
75
  res.list = res.list.concat(temp.records);
@@ -85,6 +86,7 @@ function useServicePagination({
85
86
  cacheKey,
86
87
  cacheTime,
87
88
  pollingInterval,
89
+ defaultParams: paginationV !== false ? [{ size: paginationV?.pageSize ?? 10 }] : void 0,
88
90
  pagination: {
89
91
  currentKey: "page",
90
92
  pageSizeKey: "size",
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.mjs","sources":["../../../src/hooks/useService/pagination.ts"],"sourcesContent":["import type {\n ServicePaginationOptions,\n ServicePageParams,\n ServicePagination,\n ServicePageDataType,\n ServicePageRes,\n UseServicePaginationResult,\n ServiceMaybePageParams\n} from './types'\nimport { onActivated, onBeforeUnmount, onDeactivated, ref, unref } from 'vue'\nimport { usePagination } from 'vue-request'\nimport { easyCopy, isEmpty, suspectedWrapperPromise, to } from '../../utils'\n\nexport function useServicePagination<\n D = unknown,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n>({\n service,\n manual,\n cacheKey,\n cacheTime,\n pollingInterval,\n transformParams,\n transformRes,\n pagination,\n onBefore,\n onAfter,\n onSuccess,\n onError\n}: ServicePaginationOptions<D, R, P, TP, Pag> & {}) {\n const firstLoad = ref(false)\n const manualTriggerLoad = ref(false)\n const dataList = ref<D[]>([])\n\n const {\n data,\n loading,\n error,\n params,\n current,\n pageSize,\n total,\n totalPage,\n changeCurrent,\n changePageSize,\n changePagination,\n runAsync,\n run,\n cancel,\n refresh,\n refreshAsync,\n mutate\n } = usePagination<ServicePageDataType<D>>(\n async (params?: { page?: number; size?: number }) => {\n const res: ServicePageDataType<D> = { list: [], page: 1, total: 0 }\n const paginationV = unref(pagination)\n\n const currentParams =\n paginationV !== false\n ? {\n pageNum: params?.page ?? 1,\n pageSize: params?.size ?? paginationV?.pageSize ?? 10\n }\n : undefined\n\n if (currentParams?.pageNum === 1 || isEmpty(currentParams?.pageNum)) firstLoad.value = true\n\n let tParams: TP | undefined\n if (transformParams) {\n const [tpErr, tpRes] = await suspectedWrapperPromise(\n transformParams(\n (currentParams ? easyCopy(currentParams) : currentParams) as ServiceMaybePageParams<Pag>\n )\n )\n if (tpErr) throw tpErr\n\n tParams = tpRes\n }\n\n const [serviceErr, serviceRes] = await to(service(tParams || (currentParams as TP)))\n if (serviceErr) throw serviceErr\n\n let temp: ServicePageRes<D> | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n temp = trRes\n } else {\n temp = serviceRes as ServicePageRes<D>\n }\n\n if (!temp.records) temp.records = []\n if (isEmpty(temp.total)) temp.total = temp.records.length\n\n if (!paginationV || currentParams?.pageNum === 1) {\n res.list = temp.records\n } else {\n res.list = res.list.concat(temp.records)\n }\n\n if (currentParams) {\n res.page = currentParams?.pageNum\n res.size = currentParams?.pageSize\n }\n res.total = temp.total\n\n return res\n },\n {\n manual,\n cacheKey,\n cacheTime,\n pollingInterval,\n pagination: {\n currentKey: 'page',\n pageSizeKey: 'size',\n totalKey: 'total'\n },\n onBefore,\n onAfter: () => {\n firstLoad.value = false\n manualTriggerLoad.value = false\n onAfter?.()\n },\n onSuccess: (res) => {\n dataList.value = res.list\n onSuccess?.(res)\n },\n onError\n }\n )\n\n function reChangeCurrent(current: number) {\n manualTriggerLoad.value = true\n changeCurrent(current)\n }\n\n function reChangePageSize(pageSize: number) {\n manualTriggerLoad.value = true\n changePageSize(pageSize)\n }\n\n function reChangePagination(current: number, pageSize: number) {\n manualTriggerLoad.value = true\n changePagination(current, pageSize)\n }\n\n function reRefresh() {\n manualTriggerLoad.value = true\n refresh()\n }\n\n function reRefreshAsync() {\n manualTriggerLoad.value = true\n refreshAsync()\n }\n\n onActivated(() => {\n if (!manual && !isEmpty(unref(pollingInterval))) reRefresh()\n })\n\n onDeactivated(() => {\n if (!isEmpty(unref(pollingInterval))) cancel()\n })\n\n onBeforeUnmount(() => {\n if (!isEmpty(unref(pollingInterval))) cancel()\n })\n\n return {\n data,\n dataList,\n firstLoad,\n manualTriggerLoad,\n loading,\n error,\n params,\n current,\n pageSize,\n total,\n totalPage,\n changeCurrent: reChangeCurrent,\n changePageSize: reChangePageSize,\n changePagination: reChangePagination,\n runAsync,\n run,\n cancel,\n refresh: reRefresh,\n refreshAsync: reRefreshAsync,\n mutate\n } as UseServicePaginationResult\n}\n"],"names":["params","current","pageSize"],"mappings":";;;;AAaO,SAAS,qBAMd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAoD;AAClD,QAAM,YAAY,IAAI,KAAK;AAC3B,QAAM,oBAAoB,IAAI,KAAK;AACnC,QAAM,WAAW,IAAS,EAAE;AAE5B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACE;AAAA,IACF,OAAOA,YAA8C;AACnD,YAAM,MAA8B,EAAE,MAAM,CAAA,GAAI,MAAM,GAAG,OAAO,EAAA;AAChE,YAAM,cAAc,MAAM,UAAU;AAEpC,YAAM,gBACJ,gBAAgB,QACZ;AAAA,QACE,SAASA,SAAQ,QAAQ;AAAA,QACzB,UAAUA,SAAQ,QAAQ,aAAa,YAAY;AAAA,MAAA,IAErD;AAEN,UAAI,eAAe,YAAY,KAAK,QAAQ,eAAe,OAAO,aAAa,QAAQ;AAEvF,UAAI;AACJ,UAAI,iBAAiB;AACnB,cAAM,CAAC,OAAO,KAAK,IAAI,MAAM;AAAA,UAC3B;AAAA,YACG,gBAAgB,SAAS,aAAa,IAAI;AAAA,UAAA;AAAA,QAC7C;AAEF,YAAI,MAAO,OAAM;AAEjB,kBAAU;AAAA,MACZ;AAEA,YAAM,CAAC,YAAY,UAAU,IAAI,MAAM,GAAG,QAAQ,WAAY,aAAoB,CAAC;AACnF,UAAI,WAAY,OAAM;AAEtB,UAAI;AACJ,UAAI,cAAc;AAChB,cAAM,CAAC,OAAO,KAAK,IAAI,MAAM,wBAAwB,aAAa,UAAU,CAAC;AAC7E,YAAI,MAAO,OAAM;AAEjB,eAAO;AAAA,MACT,OAAO;AACL,eAAO;AAAA,MACT;AAEA,UAAI,CAAC,KAAK,QAAS,MAAK,UAAU,CAAA;AAClC,UAAI,QAAQ,KAAK,KAAK,EAAG,MAAK,QAAQ,KAAK,QAAQ;AAEnD,UAAI,CAAC,eAAe,eAAe,YAAY,GAAG;AAChD,YAAI,OAAO,KAAK;AAAA,MAClB,OAAO;AACL,YAAI,OAAO,IAAI,KAAK,OAAO,KAAK,OAAO;AAAA,MACzC;AAEA,UAAI,eAAe;AACjB,YAAI,OAAO,eAAe;AAC1B,YAAI,OAAO,eAAe;AAAA,MAC5B;AACA,UAAI,QAAQ,KAAK;AAEjB,aAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY;AAAA,QACV,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,UAAU;AAAA,MAAA;AAAA,MAEZ;AAAA,MACA,SAAS,MAAM;AACb,kBAAU,QAAQ;AAClB,0BAAkB,QAAQ;AAC1B,kBAAA;AAAA,MACF;AAAA,MACA,WAAW,CAAC,QAAQ;AAClB,iBAAS,QAAQ,IAAI;AACrB,oBAAY,GAAG;AAAA,MACjB;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAGF,WAAS,gBAAgBC,UAAiB;AACxC,sBAAkB,QAAQ;AAC1B,kBAAcA,QAAO;AAAA,EACvB;AAEA,WAAS,iBAAiBC,WAAkB;AAC1C,sBAAkB,QAAQ;AAC1B,mBAAeA,SAAQ;AAAA,EACzB;AAEA,WAAS,mBAAmBD,UAAiBC,WAAkB;AAC7D,sBAAkB,QAAQ;AAC1B,qBAAiBD,UAASC,SAAQ;AAAA,EACpC;AAEA,WAAS,YAAY;AACnB,sBAAkB,QAAQ;AAC1B,YAAA;AAAA,EACF;AAEA,WAAS,iBAAiB;AACxB,sBAAkB,QAAQ;AAC1B,iBAAA;AAAA,EACF;AAEA,cAAY,MAAM;AAChB,QAAI,CAAC,UAAU,CAAC,QAAQ,MAAM,eAAe,CAAC,EAAG,WAAA;AAAA,EACnD,CAAC;AAED,gBAAc,MAAM;AAClB,QAAI,CAAC,QAAQ,MAAM,eAAe,CAAC,EAAG,QAAA;AAAA,EACxC,CAAC;AAED,kBAAgB,MAAM;AACpB,QAAI,CAAC,QAAQ,MAAM,eAAe,CAAC,EAAG,QAAA;AAAA,EACxC,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,cAAc;AAAA,IACd;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"pagination.mjs","sources":["../../../src/hooks/useService/pagination.ts"],"sourcesContent":["import type {\n ServicePaginationOptions,\n ServicePageParams,\n ServicePagination,\n ServicePageDataType,\n ServicePageRes,\n UseServicePaginationResult,\n ServiceMaybePageParams\n} from './types'\nimport { onActivated, onBeforeUnmount, onDeactivated, ref, unref } from 'vue'\nimport { usePagination } from 'vue-request'\nimport { easyCopy, isEmpty, suspectedWrapperPromise, to } from '../../utils'\n\nexport function useServicePagination<\n D = unknown,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n>({\n service,\n manual,\n cacheKey,\n cacheTime,\n pollingInterval,\n transformParams,\n transformRes,\n pagination,\n onBefore,\n onAfter,\n onSuccess,\n onError\n}: ServicePaginationOptions<D, R, P, TP, Pag> & {}) {\n const firstLoad = ref(false)\n const manualTriggerLoad = ref(false)\n const dataList = ref<D[]>([])\n const paginationV = unref(pagination)\n\n const {\n data,\n loading,\n error,\n params,\n current,\n pageSize,\n total,\n totalPage,\n changeCurrent,\n changePageSize,\n changePagination,\n runAsync,\n run,\n cancel,\n refresh,\n refreshAsync,\n mutate\n } = usePagination<ServicePageDataType<D>>(\n async (params?: { page?: number; size?: number }) => {\n const res: ServicePageDataType<D> = { list: [], page: 1, total: 0 }\n const currentPagV = unref(pagination)\n\n const currentParams =\n currentPagV !== false\n ? {\n pageNum: params?.page ?? 1,\n pageSize: params?.size ?? 10\n }\n : undefined\n\n if (currentParams?.pageNum === 1 || isEmpty(currentParams?.pageNum)) firstLoad.value = true\n\n let tParams: TP | undefined\n if (transformParams) {\n const [tpErr, tpRes] = await suspectedWrapperPromise(\n transformParams(\n (currentParams ? easyCopy(currentParams) : currentParams) as ServiceMaybePageParams<Pag>\n )\n )\n if (tpErr) throw tpErr\n\n tParams = tpRes\n }\n\n const [serviceErr, serviceRes] = await to(service(tParams || (currentParams as TP)))\n if (serviceErr) throw serviceErr\n\n let temp: ServicePageRes<D> | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n temp = trRes\n } else {\n temp = serviceRes as ServicePageRes<D>\n }\n\n if (!temp.records) temp.records = []\n if (isEmpty(temp.total)) temp.total = temp.records.length\n\n if (!currentPagV || currentParams?.pageNum === 1) {\n res.list = temp.records\n } else {\n res.list = res.list.concat(temp.records)\n }\n\n if (currentParams) {\n res.page = currentParams?.pageNum\n res.size = currentParams?.pageSize\n }\n res.total = temp.total\n\n return res\n },\n {\n manual,\n cacheKey,\n cacheTime,\n pollingInterval,\n defaultParams: paginationV !== false ? [{ size: paginationV?.pageSize ?? 10 }] : undefined,\n pagination: {\n currentKey: 'page',\n pageSizeKey: 'size',\n totalKey: 'total'\n },\n onBefore,\n onAfter: () => {\n firstLoad.value = false\n manualTriggerLoad.value = false\n onAfter?.()\n },\n onSuccess: (res) => {\n dataList.value = res.list\n onSuccess?.(res)\n },\n onError\n }\n )\n\n function reChangeCurrent(current: number) {\n manualTriggerLoad.value = true\n changeCurrent(current)\n }\n\n function reChangePageSize(pageSize: number) {\n manualTriggerLoad.value = true\n changePageSize(pageSize)\n }\n\n function reChangePagination(current: number, pageSize: number) {\n manualTriggerLoad.value = true\n changePagination(current, pageSize)\n }\n\n function reRefresh() {\n manualTriggerLoad.value = true\n refresh()\n }\n\n function reRefreshAsync() {\n manualTriggerLoad.value = true\n refreshAsync()\n }\n\n onActivated(() => {\n if (!manual && !isEmpty(unref(pollingInterval))) reRefresh()\n })\n\n onDeactivated(() => {\n if (!isEmpty(unref(pollingInterval))) cancel()\n })\n\n onBeforeUnmount(() => {\n if (!isEmpty(unref(pollingInterval))) cancel()\n })\n\n return {\n data,\n dataList,\n firstLoad,\n manualTriggerLoad,\n loading,\n error,\n params,\n current,\n pageSize,\n total,\n totalPage,\n changeCurrent: reChangeCurrent,\n changePageSize: reChangePageSize,\n changePagination: reChangePagination,\n runAsync,\n run,\n cancel,\n refresh: reRefresh,\n refreshAsync: reRefreshAsync,\n mutate\n } as UseServicePaginationResult\n}\n"],"names":["params","current","pageSize"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -13,7 +13,7 @@ import { checkSameObject, createEnum, easyCopy, extractSlotsWithPrefix, extractS
13
13
  import { buildTree, toArr } from "./utils/conversion.mjs";
14
14
  import { MD5, decryptBase64, encryptBase64, encryptWithAes, generateAesKey, generateRandomString } from "./utils/crypto.mjs";
15
15
  import { easyDownload } from "./utils/download.mjs";
16
- import { b2mb, cutFileSuffix, cutFilename, handleGlob, isTypeByName } from "./utils/file.mjs";
16
+ import { b2mb, cutFileSuffix, cutFilename, isTypeByName } from "./utils/file.mjs";
17
17
  import { formatGlob } from "./utils/glob.mjs";
18
18
  import { decrypt, encrypt } from "./utils/jsencrypt.mjs";
19
19
  import { parseRelaxedJSON } from "./utils/json.mjs";
@@ -49,7 +49,6 @@ export {
49
49
  generateRandomString,
50
50
  getUrlParam,
51
51
  getUrlParams,
52
- handleGlob,
53
52
  hasOwn,
54
53
  identifyType,
55
54
  initialConversion,
@@ -2,4 +2,3 @@ export declare function cutFilename(name: string | undefined, num: number): stri
2
2
  export declare function cutFileSuffix(name?: string): string;
3
3
  export declare function isTypeByName(name: string | undefined, suffixs: string[]): boolean;
4
4
  export declare function b2mb(size?: number): number;
5
- export declare function handleGlob<T = any>(data: Record<string, T>, removeSuffix?: boolean): Record<string, T>;
@@ -16,23 +16,10 @@ function isTypeByName(name, suffixs) {
16
16
  function b2mb(size = 0) {
17
17
  return size / 1024 / 1024;
18
18
  }
19
- function handleGlob(data, removeSuffix) {
20
- const map = {};
21
- for (const key in data) {
22
- const keySplit = key.split("/");
23
- let name = keySplit[keySplit.length - 1];
24
- if (removeSuffix) {
25
- name = name.slice(0, name.lastIndexOf("."));
26
- }
27
- map[name] = data[key];
28
- }
29
- return map;
30
- }
31
19
  export {
32
20
  b2mb,
33
21
  cutFileSuffix,
34
22
  cutFilename,
35
- handleGlob,
36
23
  isTypeByName
37
24
  };
38
25
  //# sourceMappingURL=file.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"file.mjs","sources":["../../src/utils/file.ts"],"sourcesContent":["/**\n * 截取文件名\n * @param name 文件名称\n * @param num 开始位置\n * @returns\n */\nexport function cutFilename(name: string | undefined, num: number) {\n if (!name) return ''\n\n const lastIndex = name.lastIndexOf('.')\n const suffix = lastIndex === -1 ? '' : name.substring(lastIndex + 1)\n return `${name.substring(0, num - suffix.length - 1)}.${suffix}`\n}\n\n/**\n * 截取文件后缀名\n * @param name 文件名称\n * @returns\n */\nexport function cutFileSuffix(name?: string) {\n if (!name) return ''\n\n const nameSplit = name.split('.')\n return nameSplit[nameSplit.length - 1]\n}\n\n/**\n * 是否为该类型文件\n * @param name 文件名称\n * @param suffixs 后缀\n * @returns\n */\nexport function isTypeByName(name: string | undefined, suffixs: string[]) {\n if (!name) return false\n\n return suffixs.some((suffix) => `.${cutFileSuffix(name)}`.toLowerCase() === suffix.toLowerCase())\n}\n\n/**\n * 字节转MB\n * @param size 字节\n * @returns mb\n */\nexport function b2mb(size = 0) {\n return size / 1024 / 1024\n}\n\n/**\n * 处理 glob\n * @param data 数据\n * @param removeSuffix 是否去除后缀\n * @returns 处理后的数据\n */\nexport function handleGlob<T = any>(data: Record<string, T>, removeSuffix?: boolean) {\n const map: Record<string, T> = {}\n for (const key in data) {\n const keySplit = key.split('/')\n let name = keySplit[keySplit.length - 1]\n if (removeSuffix) {\n name = name.slice(0, name.lastIndexOf('.'))\n }\n map[name] = data[key]\n }\n\n return map\n}\n"],"names":[],"mappings":"AAMO,SAAS,YAAY,MAA0B,KAAa;AACjE,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,YAAY,KAAK,YAAY,GAAG;AACtC,QAAM,SAAS,cAAc,KAAK,KAAK,KAAK,UAAU,YAAY,CAAC;AACnE,SAAO,GAAG,KAAK,UAAU,GAAG,MAAM,OAAO,SAAS,CAAC,CAAC,IAAI,MAAM;AAChE;AAOO,SAAS,cAAc,MAAe;AAC3C,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,YAAY,KAAK,MAAM,GAAG;AAChC,SAAO,UAAU,UAAU,SAAS,CAAC;AACvC;AAQO,SAAS,aAAa,MAA0B,SAAmB;AACxE,MAAI,CAAC,KAAM,QAAO;AAElB,SAAO,QAAQ,KAAK,CAAC,WAAW,IAAI,cAAc,IAAI,CAAC,GAAG,YAAA,MAAkB,OAAO,aAAa;AAClG;AAOO,SAAS,KAAK,OAAO,GAAG;AAC7B,SAAO,OAAO,OAAO;AACvB;AAQO,SAAS,WAAoB,MAAyB,cAAwB;AACnF,QAAM,MAAyB,CAAA;AAC/B,aAAW,OAAO,MAAM;AACtB,UAAM,WAAW,IAAI,MAAM,GAAG;AAC9B,QAAI,OAAO,SAAS,SAAS,SAAS,CAAC;AACvC,QAAI,cAAc;AAChB,aAAO,KAAK,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC;AAAA,IAC5C;AACA,QAAI,IAAI,IAAI,KAAK,GAAG;AAAA,EACtB;AAEA,SAAO;AACT;"}
1
+ {"version":3,"file":"file.mjs","sources":["../../src/utils/file.ts"],"sourcesContent":["/**\n * 截取文件名\n * @param name 文件名称\n * @param num 开始位置\n * @returns\n */\nexport function cutFilename(name: string | undefined, num: number) {\n if (!name) return ''\n\n const lastIndex = name.lastIndexOf('.')\n const suffix = lastIndex === -1 ? '' : name.substring(lastIndex + 1)\n return `${name.substring(0, num - suffix.length - 1)}.${suffix}`\n}\n\n/**\n * 截取文件后缀名\n * @param name 文件名称\n * @returns\n */\nexport function cutFileSuffix(name?: string) {\n if (!name) return ''\n\n const nameSplit = name.split('.')\n return nameSplit[nameSplit.length - 1]\n}\n\n/**\n * 是否为该类型文件\n * @param name 文件名称\n * @param suffixs 后缀\n * @returns\n */\nexport function isTypeByName(name: string | undefined, suffixs: string[]) {\n if (!name) return false\n\n return suffixs.some((suffix) => `.${cutFileSuffix(name)}`.toLowerCase() === suffix.toLowerCase())\n}\n\n/**\n * 字节转MB\n * @param size 字节\n * @returns mb\n */\nexport function b2mb(size = 0) {\n return size / 1024 / 1024\n}\n"],"names":[],"mappings":"AAMO,SAAS,YAAY,MAA0B,KAAa;AACjE,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,YAAY,KAAK,YAAY,GAAG;AACtC,QAAM,SAAS,cAAc,KAAK,KAAK,KAAK,UAAU,YAAY,CAAC;AACnE,SAAO,GAAG,KAAK,UAAU,GAAG,MAAM,OAAO,SAAS,CAAC,CAAC,IAAI,MAAM;AAChE;AAOO,SAAS,cAAc,MAAe;AAC3C,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,YAAY,KAAK,MAAM,GAAG;AAChC,SAAO,UAAU,UAAU,SAAS,CAAC;AACvC;AAQO,SAAS,aAAa,MAA0B,SAAmB;AACxE,MAAI,CAAC,KAAM,QAAO;AAElB,SAAO,QAAQ,KAAK,CAAC,WAAW,IAAI,cAAc,IAAI,CAAC,GAAG,YAAA,MAAkB,OAAO,aAAa;AAClG;AAOO,SAAS,KAAK,OAAO,GAAG;AAC7B,SAAO,OAAO,OAAO;AACvB;"}
@@ -2,5 +2,6 @@ export declare const validatorRegs: {
2
2
  cellPhone: RegExp;
3
3
  telephone: RegExp;
4
4
  url: RegExp;
5
+ email: RegExp;
5
6
  };
6
7
  export declare function validator(value: string | number | undefined | null, type: keyof typeof validatorRegs | 'empty', required?: boolean): boolean | null;
@@ -2,7 +2,8 @@ import { isEmpty } from "./common.mjs";
2
2
  const validatorRegs = {
3
3
  cellPhone: /^1[3-9]\d{9}$/,
4
4
  telephone: /^\d{7,8}$/,
5
- url: /^((blob:)*(https|http|ftp|rtsp|mms|wss)?:\/\/)[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/
5
+ url: /^((blob:)*(https|http|ftp|rtsp|mms|wss)?:\/\/)[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/,
6
+ email: /^([A-Za-z0-9_\\-\\.\\u4e00-\\u9fa5])+@([A-Za-z0-9_\\-\\.])+\.([A-Za-z]{2,8})$/
6
7
  };
7
8
  function validator(value, type, required = false) {
8
9
  if (type === "empty") return isEmpty(value);
@@ -1 +1 @@
1
- {"version":3,"file":"validator.mjs","sources":["../../src/utils/validator.ts"],"sourcesContent":["import { isEmpty } from './common'\n\nexport const validatorRegs = {\n cellPhone: /^1[3-9]\\d{9}$/,\n telephone: /^\\d{7,8}$/,\n url: /^((blob:)*(https|http|ftp|rtsp|mms|wss)?:\\/\\/)[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/\n}\n\n/**\n * 验证器函数 - 检查输入值是否符合指定规则\n * @param value 要验证的字符串值\n * @param type 验证类型\n * @param required 是否必填,必填时空值返回 null\n * @returns 验证结果:通过返回 true,失败返回 false,必填为空返回 null\n * @throws Error 当传入不支持的验证类型时抛出异常\n */\nexport function validator(\n value: string | number | undefined | null,\n type: keyof typeof validatorRegs | 'empty',\n required = false\n) {\n if (type === 'empty') return isEmpty(value)\n\n const reg = validatorRegs[type]\n if (!reg) throw new Error(`[validator] 没有 ${type} 类型`)\n if (required && isEmpty(value)) return null\n\n return isEmpty(value) ? false : reg.test(value + '')\n}\n"],"names":[],"mappings":";AAEO,MAAM,gBAAgB;AAAA,EAC3B,WAAW;AAAA,EACX,WAAW;AAAA,EACX,KAAK;AACP;AAUO,SAAS,UACd,OACA,MACA,WAAW,OACX;AACA,MAAI,SAAS,QAAS,QAAO,QAAQ,KAAK;AAE1C,QAAM,MAAM,cAAc,IAAI;AAC9B,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,kBAAkB,IAAI,KAAK;AACrD,MAAI,YAAY,QAAQ,KAAK,EAAG,QAAO;AAEvC,SAAO,QAAQ,KAAK,IAAI,QAAQ,IAAI,KAAK,QAAQ,EAAE;AACrD;"}
1
+ {"version":3,"file":"validator.mjs","sources":["../../src/utils/validator.ts"],"sourcesContent":["import { isEmpty } from './common'\n\nexport const validatorRegs = {\n cellPhone: /^1[3-9]\\d{9}$/,\n telephone: /^\\d{7,8}$/,\n url: /^((blob:)*(https|http|ftp|rtsp|mms|wss)?:\\/\\/)[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/,\n email: /^([A-Za-z0-9_\\\\-\\\\.\\\\u4e00-\\\\u9fa5])+@([A-Za-z0-9_\\\\-\\\\.])+\\.([A-Za-z]{2,8})$/,\n}\n\n/**\n * 验证器函数 - 检查输入值是否符合指定规则\n * @param value 要验证的字符串值\n * @param type 验证类型\n * @param required 是否必填,必填时空值返回 null\n * @returns 验证结果:通过返回 true,失败返回 false,必填为空返回 null\n * @throws Error 当传入不支持的验证类型时抛出异常\n */\nexport function validator(\n value: string | number | undefined | null,\n type: keyof typeof validatorRegs | 'empty',\n required = false\n) {\n if (type === 'empty') return isEmpty(value)\n\n const reg = validatorRegs[type]\n if (!reg) throw new Error(`[validator] 没有 ${type} 类型`)\n if (required && isEmpty(value)) return null\n\n return isEmpty(value) ? false : reg.test(value + '')\n}\n"],"names":[],"mappings":";AAEO,MAAM,gBAAgB;AAAA,EAC3B,WAAW;AAAA,EACX,WAAW;AAAA,EACX,KAAK;AAAA,EACL,OAAO;AACT;AAUO,SAAS,UACd,OACA,MACA,WAAW,OACX;AACA,MAAI,SAAS,QAAS,QAAO,QAAQ,KAAK;AAE1C,QAAM,MAAM,cAAc,IAAI;AAC9B,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,kBAAkB,IAAI,KAAK;AACrD,MAAI,YAAY,QAAQ,KAAK,EAAG,QAAO;AAEvC,SAAO,QAAQ,KAAK,IAAI,QAAQ,IAAI,KAAK,QAAQ,EAAE;AACrD;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qidian-shared",
3
- "version": "1.0.48",
3
+ "version": "1.0.50",
4
4
  "description": "QiDian 共享工具函数和钩子",
5
5
  "type": "module",
6
6
  "author": "qidian",