浏览代码

utils 0.0.4

gemercheung 3 年之前
父节点
当前提交
30a9c5eba7
共有 5 个文件被更改,包括 26 次插入4 次删除
  1. 0 1
      packages/core/src/basicTrack.ts
  2. 1 1
      packages/utils/package.json
  3. 23 0
      packages/utils/src/deepCopy.ts
  4. 1 0
      packages/utils/src/index.ts
  5. 1 2
      play/src/App.vue

+ 0 - 1
packages/core/src/basicTrack.ts

@@ -69,7 +69,6 @@ export class BaseTrack implements IBaseAction, ICustomAction {
             });
             return collect(this._endPoint, 'event', payload);
         }
-
     }
 
     public track(trackActionName: string, trackActionOption?: TrackActionOption): Promise<XMLHttpRequestResponseType> {

+ 1 - 1
packages/utils/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@medici/utils",
-  "version": "0.0.3",
+  "version": "0.0.4",
   "main": "dist/index",
   "types": "dist/index",
   "files": [

+ 23 - 0
packages/utils/src/deepCopy.ts

@@ -0,0 +1,23 @@
+export const deepCopy = <T>(target: T): T => {
+    if (target === null) {
+        return target;
+    }
+    if (target instanceof Date) {
+        return new Date(target.getTime()) as any;
+    }
+    if (target instanceof Array) {
+        const cp = [] as any[];
+        (target as any[]).forEach((v) => {
+            cp.push(v);
+        });
+        return cp.map((n: any) => deepCopy<any>(n)) as any;
+    }
+    if (typeof target === 'object' && target !== {}) {
+        const cp = { ...(target as { [key: string]: any }) } as { [key: string]: any };
+        Object.keys(cp).forEach((k) => {
+            cp[k] = deepCopy<any>(cp[k]);
+        });
+        return cp as T;
+    }
+    return target;
+};

+ 1 - 0
packages/utils/src/index.ts

@@ -1,2 +1,3 @@
 export { hook } from './hook';
 export { getGlobalObject } from './global';
+export { deepCopy } from './deepCopy';

+ 1 - 2
play/src/App.vue

@@ -9,6 +9,7 @@ const medici = Medici.init({
     appId: '7b5958d5-1ae6-4ad5-8a87-5fc8a4b92999',
     endPoint: 'http://192.168.0.186:3000/api/collect', //服务器
     trackEndPoint: 'http://192.168.0.186:3000/api/track',
+    stopTrack: false,
     config: {
         user: 'testUser',
         version: '1',
@@ -17,8 +18,6 @@ const medici = Medici.init({
 console.log('medici', medici);
 (window as any).medici = medici;
 
-
-
 // medici.track("BuyProduct", {
 //   eventType:"click",
 //   ProductName: "MacBook Pro",