Browse Source

update--增加cloneDeep

gemercheung 3 years ago
parent
commit
e1eb77ebae

+ 4 - 3
packages/core/package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "@medici/core",
   "name": "@medici/core",
-  "version": "0.0.6",
+  "version": "0.0.7",
   "main": "dist/index",
   "main": "dist/index",
   "types": "dist/index",
   "types": "dist/index",
   "files": [
   "files": [
@@ -20,6 +20,7 @@
   "dependencies": {
   "dependencies": {
     "@medici/types": "workspace:^0.0.3",
     "@medici/types": "workspace:^0.0.3",
     "@medici/utils": "workspace:^0.0.3",
     "@medici/utils": "workspace:^0.0.3",
+    "lodash-es": "^4.17.21",
     "rxjs": "^7.5.6",
     "rxjs": "^7.5.6",
     "uuidv4": "^6.2.13"
     "uuidv4": "^6.2.13"
   },
   },
@@ -27,13 +28,13 @@
     "@rollup/plugin-typescript": "~8.3.4",
     "@rollup/plugin-typescript": "~8.3.4",
     "rimraf": "~3.0.2",
     "rimraf": "~3.0.2",
     "rollup": "~2.77.3",
     "rollup": "~2.77.3",
-    "tslib": "^2.4.0",
     "rollup-plugin-terser": "^7.0.2",
     "rollup-plugin-terser": "^7.0.2",
+    "tslib": "^2.4.0",
     "typescript": "~4.7.4"
     "typescript": "~4.7.4"
   },
   },
   "typedoc": {
   "typedoc": {
     "entryPoint": "./src/index.ts",
     "entryPoint": "./src/index.ts",
     "readmeFile": "./README.md",
     "readmeFile": "./README.md",
     "displayName": "@medici/core"
     "displayName": "@medici/core"
-}
+  }
 }
 }

+ 13 - 5
packages/core/src/basicTrack.ts

@@ -2,6 +2,8 @@ import { IBaseAction, ICustomAction, TrackActionOption } from '@medici/types';
 import type { SDKInitConfig, PlatformType, SDKConfigType } from './sdk';
 import type { SDKInitConfig, PlatformType, SDKConfigType } from './sdk';
 import type { IHistory } from './history';
 import type { IHistory } from './history';
 import { collect } from './collector';
 import { collect } from './collector';
+import { cloneDeep } from 'lodash-es';
+
 export class BaseTrack implements IBaseAction, ICustomAction {
 export class BaseTrack implements IBaseAction, ICustomAction {
     protected _platform: PlatformType;
     protected _platform: PlatformType;
     protected _config: SDKInitConfig;
     protected _config: SDKInitConfig;
@@ -21,7 +23,8 @@ export class BaseTrack implements IBaseAction, ICustomAction {
     public trackView(url: string, referrer: string, uuid: string): Promise<XMLHttpRequestResponseType> {
     public trackView(url: string, referrer: string, uuid: string): Promise<XMLHttpRequestResponseType> {
         console.log('BaseTrack-trackView', url, referrer, uuid);
         console.log('BaseTrack-trackView', url, referrer, uuid);
         this._history.playload.url = url;
         this._history.playload.url = url;
-        const payload = Object.assign(this._history.playload, {
+        const historyPlayload = cloneDeep(this._history.playload);
+        const payload = Object.assign(historyPlayload, {
             ...this._config,
             ...this._config,
             referrer: this._history.currentRef,
             referrer: this._history.currentRef,
             url: url,
             url: url,
@@ -33,7 +36,8 @@ export class BaseTrack implements IBaseAction, ICustomAction {
     public trackEvent(event_name: string, event_data: string, url?: string, uuid?: string): Promise<XMLHttpRequestResponseType> {
     public trackEvent(event_name: string, event_data: string, url?: string, uuid?: string): Promise<XMLHttpRequestResponseType> {
         console.log('BaseTrack-TrackEvent', event_name, event_data, url, uuid);
         console.log('BaseTrack-TrackEvent', event_name, event_data, url, uuid);
         this._history.playload.url = url;
         this._history.playload.url = url;
-        const payload = Object.assign(this._history.playload, {
+        const historyPlayload = cloneDeep(this._history.playload);
+        const payload = Object.assign(historyPlayload, {
             referrer: this._history.currentRef,
             referrer: this._history.currentRef,
             event_name: event_name,
             event_name: event_name,
             url: url,
             url: url,
@@ -57,7 +61,8 @@ export class BaseTrack implements IBaseAction, ICustomAction {
     }
     }
 
 
     public track(trackActionName: string, trackActionOption?: TrackActionOption): Promise<XMLHttpRequestResponseType> {
     public track(trackActionName: string, trackActionOption?: TrackActionOption): Promise<XMLHttpRequestResponseType> {
-        const payload = Object.assign(this._history.playload, {
+        const historyPlayload = cloneDeep(this._history.playload);
+        const payload = Object.assign(historyPlayload, {
             referrer: this._history.currentRef,
             referrer: this._history.currentRef,
             ...trackActionOption,
             ...trackActionOption,
             trackActionName,
             trackActionName,
@@ -67,12 +72,14 @@ export class BaseTrack implements IBaseAction, ICustomAction {
     }
     }
 
 
     public startTrack(trackActionName: string, trackActionOption?: TrackActionOption): Promise<XMLHttpRequestResponseType> {
     public startTrack(trackActionName: string, trackActionOption?: TrackActionOption): Promise<XMLHttpRequestResponseType> {
-        const payload = Object.assign(this._history.playload, {
+        const historyPlayload = cloneDeep(this._history.playload);
+        const payload = Object.assign(historyPlayload, {
             referrer: this._history.currentRef,
             referrer: this._history.currentRef,
             ...trackActionOption,
             ...trackActionOption,
             trackActionName,
             trackActionName,
             ...this._config,
             ...this._config,
         });
         });
+
         if (trackActionOption.maxWaitTime) {
         if (trackActionOption.maxWaitTime) {
             this._timeOut = setTimeout(() => {
             this._timeOut = setTimeout(() => {
                 this.endTrack(trackActionName, trackActionOption);
                 this.endTrack(trackActionName, trackActionOption);
@@ -83,7 +90,8 @@ export class BaseTrack implements IBaseAction, ICustomAction {
 
 
     public endTrack(trackActionName: string, trackActionOption?: TrackActionOption): Promise<XMLHttpRequestResponseType> {
     public endTrack(trackActionName: string, trackActionOption?: TrackActionOption): Promise<XMLHttpRequestResponseType> {
         clearTimeout(this._timeOut);
         clearTimeout(this._timeOut);
-        const payload = Object.assign(this._history.playload, {
+        const historyPlayload = cloneDeep(this._history.playload);
+        const payload = Object.assign(historyPlayload, {
             referrer: this._history.currentRef,
             referrer: this._history.currentRef,
             ...trackActionOption,
             ...trackActionOption,
             trackActionName,
             trackActionName,

+ 1 - 1
packages/legacy/package.json

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

+ 2 - 1
packages/legacy/src/init.ts

@@ -16,7 +16,8 @@ if (currentScript) {
     const endPoint = attr('data-url');
     const endPoint = attr('data-url');
     const trackEndPoint = attr('data-track-url');
     const trackEndPoint = attr('data-track-url');
     if (!appId || !endPoint || !trackEndPoint) {
     if (!appId || !endPoint || !trackEndPoint) {
-        throw new Error('medici script are initial with error, please take a look!');
+        // throw new Error('medici script are initial with error, please take a look!');
+        (window as any).Medici = init;
     } else {
     } else {
         (window as any).medici = init({
         (window as any).medici = init({
             platform: 'web',
             platform: 'web',

+ 1 - 0
packages/web/package.json

@@ -30,3 +30,4 @@
     "displayName": "@medici/web"
     "displayName": "@medici/web"
 }
 }
 }
 }
+

+ 2 - 2
play/index.html

@@ -5,12 +5,12 @@
         <link rel="icon" type="image/svg+xml" href="/vite.svg" />
         <link rel="icon" type="image/svg+xml" href="/vite.svg" />
         <meta name="viewport" content="width=device-width, initial-scale=1.0" />
         <meta name="viewport" content="width=device-width, initial-scale=1.0" />
         <title>Medici SDK</title>
         <title>Medici SDK</title>
-        <script async defer
+        <!-- <script async defer
          data-app-id="7b5958d5-1ae6-4ad5-8a87-5fc8a4b92999" 
          data-app-id="7b5958d5-1ae6-4ad5-8a87-5fc8a4b92999" 
          data-url="http://192.168.0.186:3000/api/collect" 
          data-url="http://192.168.0.186:3000/api/collect" 
          data-track-url="http://192.168.0.186:3000/api/track" 
          data-track-url="http://192.168.0.186:3000/api/track" 
          src="https://allreally.oss-cn-shenzhen.aliyuncs.com/wasm/test_legacy/medici.js">
          src="https://allreally.oss-cn-shenzhen.aliyuncs.com/wasm/test_legacy/medici.js">
-        </script>
+        </script> -->
 
 
         <!-- <script async defer data-website-id="7b5958d5-1ae6-4ad5-8a87-5fc8a4b92999" src="http://192.168.0.186:3000/medici.js"></script> -->
         <!-- <script async defer data-website-id="7b5958d5-1ae6-4ad5-8a87-5fc8a4b92999" src="http://192.168.0.186:3000/medici.js"></script> -->
     </head>
     </head>

+ 13 - 13
play/src/App.vue

@@ -2,20 +2,20 @@
 // This starter template is using Vue 3 <script setup> SFCs
 // This starter template is using Vue 3 <script setup> SFCs
 // Check out https://vuejs.org/api/sfc-script-setup.html#script-setup
 // Check out https://vuejs.org/api/sfc-script-setup.html#script-setup
 import HelloWorld from './components/HelloWorld.vue';
 import HelloWorld from './components/HelloWorld.vue';
-// import * as Medici from '@medici/web';
+import * as Medici from '@medici/web';
 
 
-// const medici = Medici.init({
-//     platform: 'web',
-//     appId: '7b5958d5-1ae6-4ad5-8a87-5fc8a4b92999',
-//     endPoint: 'http://192.168.0.186:3000/api/collect', //服务器
-//     trackEndPoint: 'http://192.168.0.186:3000/api/track',
-//     config: {
-//         user: 'testUser',
-//         version: '1',
-//     },
-// });
-// console.log('medici', medici);
-// (window as any).medici = medici;
+const medici = Medici.init({
+    platform: 'web',
+    appId: '7b5958d5-1ae6-4ad5-8a87-5fc8a4b92999',
+    endPoint: 'http://192.168.0.186:3000/api/collect', //服务器
+    trackEndPoint: 'http://192.168.0.186:3000/api/track',
+    config: {
+        user: 'testUser',
+        version: '1',
+    },
+});
+console.log('medici', medici);
+(window as any).medici = medici;
 
 
 
 
 
 

+ 6 - 0
pnpm-lock.yaml

@@ -35,6 +35,7 @@ importers:
       '@medici/types': workspace:^0.0.3
       '@medici/types': workspace:^0.0.3
       '@medici/utils': workspace:^0.0.3
       '@medici/utils': workspace:^0.0.3
       '@rollup/plugin-typescript': ~8.3.4
       '@rollup/plugin-typescript': ~8.3.4
+      lodash-es: ^4.17.21
       rimraf: ~3.0.2
       rimraf: ~3.0.2
       rollup: ~2.77.3
       rollup: ~2.77.3
       rollup-plugin-terser: ^7.0.2
       rollup-plugin-terser: ^7.0.2
@@ -45,6 +46,7 @@ importers:
     dependencies:
     dependencies:
       '@medici/types': link:../types
       '@medici/types': link:../types
       '@medici/utils': link:../utils
       '@medici/utils': link:../utils
+      lodash-es: 4.17.21
       rxjs: 7.5.6
       rxjs: 7.5.6
       uuidv4: 6.2.13
       uuidv4: 6.2.13
     devDependencies:
     devDependencies:
@@ -2499,6 +2501,10 @@ packages:
       p-locate: 5.0.0
       p-locate: 5.0.0
     dev: true
     dev: true
 
 
+  /lodash-es/4.17.21:
+    resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
+    dev: false
+
   /lodash.merge/4.6.2:
   /lodash.merge/4.6.2:
     resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
     resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
     dev: true
     dev: true