@norcy/react-native-toolkit 0.1.98 → 0.1.99
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.
- package/lib/commonjs/Frequence.js +27 -18
- package/lib/commonjs/Frequence.js.map +1 -1
- package/lib/module/Frequence.js +27 -18
- package/lib/module/Frequence.js.map +1 -1
- package/lib/typescript/Frequence.d.ts +8 -0
- package/package.json +1 -1
- package/src/Frequence.ts +27 -17
- package/.DS_Store +0 -0
- package/.vscode/settings.json +0 -9
- package/ios/.DS_Store +0 -0
- package/ios/ReactNativeToolkit.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -4
- package/src/.DS_Store +0 -0
- package/yarn-error.log +0 -11644
@@ -23,12 +23,11 @@ const now = () => {
|
|
23
23
|
};
|
24
24
|
const FrequenceManager = exports.FrequenceManager = {
|
25
25
|
canRun: config => {
|
26
|
-
var
|
27
|
-
|
28
|
-
if (!
|
29
|
-
|
26
|
+
var _config$limit, _config$limit2, _config$gap, _config$gap2;
|
27
|
+
let configValue = FrequenceManager._getConfigValue(config);
|
28
|
+
if (!configValue) {
|
29
|
+
configValue = new FreConfigValueType();
|
30
30
|
}
|
31
|
-
const configValue = configs[config.key];
|
32
31
|
|
33
32
|
// 优先判断 Count
|
34
33
|
if (((_config$limit = config.limit) !== null && _config$limit !== void 0 ? _config$limit : 0) > 0 && configValue.count >= ((_config$limit2 = config.limit) !== null && _config$limit2 !== void 0 ? _config$limit2 : 0)) {
|
@@ -45,23 +44,33 @@ const FrequenceManager = exports.FrequenceManager = {
|
|
45
44
|
return true;
|
46
45
|
},
|
47
46
|
markFinishForCount: config => {
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
configs[config.key] = new FreConfigValueType();
|
47
|
+
let configValue = FrequenceManager._getConfigValue(config);
|
48
|
+
if (!configValue) {
|
49
|
+
configValue = new FreConfigValueType();
|
52
50
|
}
|
53
|
-
|
54
|
-
|
55
|
-
|
51
|
+
configValue.count++;
|
52
|
+
configValue.lastTimestamp = now();
|
53
|
+
// console.log('[Frequence] mark finish', configValue);
|
54
|
+
FrequenceManager._setConfigValue(config, configValue);
|
56
55
|
},
|
57
56
|
markFinishForTime: config => {
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
configs[config.key] = new FreConfigValueType();
|
57
|
+
let configValue = FrequenceManager._getConfigValue(config);
|
58
|
+
if (!configValue) {
|
59
|
+
configValue = new FreConfigValueType();
|
62
60
|
}
|
63
|
-
|
64
|
-
// console.log('[Frequence] mark finish',
|
61
|
+
configValue.lastTimestamp = now();
|
62
|
+
// console.log('[Frequence] mark finish', configValue);
|
63
|
+
FrequenceManager._setConfigValue(config, configValue);
|
64
|
+
},
|
65
|
+
_getConfigValue: config => {
|
66
|
+
var _PrefData$getValue;
|
67
|
+
const configs = (_PrefData$getValue = _PrefData.PrefData.getValue(_PrefData.BuildInPrefs.FrequenceConfig)) !== null && _PrefData$getValue !== void 0 ? _PrefData$getValue : {};
|
68
|
+
return configs[config.key];
|
69
|
+
},
|
70
|
+
_setConfigValue: (configType, config) => {
|
71
|
+
var _PrefData$getValue2;
|
72
|
+
const configs = (_PrefData$getValue2 = _PrefData.PrefData.getValue(_PrefData.BuildInPrefs.FrequenceConfig)) !== null && _PrefData$getValue2 !== void 0 ? _PrefData$getValue2 : {};
|
73
|
+
configs[configType.key] = config;
|
65
74
|
_PrefData.PrefData.setValue(_PrefData.BuildInPrefs.FrequenceConfig, configs);
|
66
75
|
}
|
67
76
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_PrefData","require","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","FreConfigValueType","constructor","count","lastTimestamp","now","Date","getTime","FrequenceManager","exports","canRun","config","
|
1
|
+
{"version":3,"names":["_PrefData","require","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","FreConfigValueType","constructor","count","lastTimestamp","now","Date","getTime","FrequenceManager","exports","canRun","config","_config$limit","_config$limit2","_config$gap","_config$gap2","configValue","_getConfigValue","limit","gap","markFinishForCount","_setConfigValue","markFinishForTime","_PrefData$getValue","configs","PrefData","getValue","BuildInPrefs","FrequenceConfig","configType","_PrefData$getValue2","setValue"],"sources":["Frequence.ts"],"sourcesContent":["import { BuildInPrefs, PrefData } from './PrefData';\n\nexport interface FreConfigType {\n key: string;\n limit?: number; // 0 表示无限次提示\n gap?: number; // 单位:秒;0 表示不间断提示\n}\n\nclass FreConfigValueType {\n lastTimestamp: number; // 上一次展示的时间,配合 gap 计算\n count: number; // 实际展示的次数,配合 limit 计算\n constructor() {\n this.count = 0;\n this.lastTimestamp = 0;\n }\n}\n\nconst now = () => {\n return new Date().getTime() / 1000;\n};\n\nexport const FrequenceManager = {\n canRun: (config: FreConfigType) => {\n let configValue = FrequenceManager._getConfigValue(config);\n if (!configValue) {\n configValue = new FreConfigValueType();\n }\n\n // 优先判断 Count\n if ((config.limit ?? 0) > 0 && configValue.count >= (config.limit ?? 0)) {\n // console.log('[Frequence] 次数限制', configValue, config);\n return false;\n }\n // 再判断 Time\n if (\n (config.gap ?? 0) > 0 &&\n now() - configValue.lastTimestamp < (config.gap ?? 0)\n ) {\n // console.log('[Frequence] 时间限制', configValue, config);\n return false;\n }\n\n // console.log('[Frequence] 无限制', configValue, config);\n return true;\n },\n\n markFinishForCount: (config: FreConfigType) => {\n let configValue = FrequenceManager._getConfigValue(config);\n if (!configValue) {\n configValue = new FreConfigValueType();\n }\n configValue.count++;\n configValue.lastTimestamp = now();\n // console.log('[Frequence] mark finish', configValue);\n FrequenceManager._setConfigValue(config, configValue);\n },\n\n markFinishForTime: (config: FreConfigType) => {\n let configValue = FrequenceManager._getConfigValue(config);\n if (!configValue) {\n configValue = new FreConfigValueType();\n }\n configValue.lastTimestamp = now();\n // console.log('[Frequence] mark finish', configValue);\n FrequenceManager._setConfigValue(config, configValue);\n },\n\n _getConfigValue: (config: FreConfigType) => {\n const configs: { [key: string]: FreConfigValueType } =\n PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};\n return configs[config.key];\n },\n\n _setConfigValue: (configType: FreConfigType, config: FreConfigValueType) => {\n const configs: { [key: string]: FreConfigValueType } =\n PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};\n configs[configType.key] = config;\n PrefData.setValue(BuildInPrefs.FrequenceConfig, configs);\n },\n};\n"],"mappings":"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"}
|
package/lib/module/Frequence.js
CHANGED
@@ -17,12 +17,11 @@ const now = () => {
|
|
17
17
|
};
|
18
18
|
export const FrequenceManager = {
|
19
19
|
canRun: config => {
|
20
|
-
var
|
21
|
-
|
22
|
-
if (!
|
23
|
-
|
20
|
+
var _config$limit, _config$limit2, _config$gap, _config$gap2;
|
21
|
+
let configValue = FrequenceManager._getConfigValue(config);
|
22
|
+
if (!configValue) {
|
23
|
+
configValue = new FreConfigValueType();
|
24
24
|
}
|
25
|
-
const configValue = configs[config.key];
|
26
25
|
|
27
26
|
// 优先判断 Count
|
28
27
|
if (((_config$limit = config.limit) !== null && _config$limit !== void 0 ? _config$limit : 0) > 0 && configValue.count >= ((_config$limit2 = config.limit) !== null && _config$limit2 !== void 0 ? _config$limit2 : 0)) {
|
@@ -39,23 +38,33 @@ export const FrequenceManager = {
|
|
39
38
|
return true;
|
40
39
|
},
|
41
40
|
markFinishForCount: config => {
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
configs[config.key] = new FreConfigValueType();
|
41
|
+
let configValue = FrequenceManager._getConfigValue(config);
|
42
|
+
if (!configValue) {
|
43
|
+
configValue = new FreConfigValueType();
|
46
44
|
}
|
47
|
-
|
48
|
-
|
49
|
-
|
45
|
+
configValue.count++;
|
46
|
+
configValue.lastTimestamp = now();
|
47
|
+
// console.log('[Frequence] mark finish', configValue);
|
48
|
+
FrequenceManager._setConfigValue(config, configValue);
|
50
49
|
},
|
51
50
|
markFinishForTime: config => {
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
configs[config.key] = new FreConfigValueType();
|
51
|
+
let configValue = FrequenceManager._getConfigValue(config);
|
52
|
+
if (!configValue) {
|
53
|
+
configValue = new FreConfigValueType();
|
56
54
|
}
|
57
|
-
|
58
|
-
// console.log('[Frequence] mark finish',
|
55
|
+
configValue.lastTimestamp = now();
|
56
|
+
// console.log('[Frequence] mark finish', configValue);
|
57
|
+
FrequenceManager._setConfigValue(config, configValue);
|
58
|
+
},
|
59
|
+
_getConfigValue: config => {
|
60
|
+
var _PrefData$getValue;
|
61
|
+
const configs = (_PrefData$getValue = PrefData.getValue(BuildInPrefs.FrequenceConfig)) !== null && _PrefData$getValue !== void 0 ? _PrefData$getValue : {};
|
62
|
+
return configs[config.key];
|
63
|
+
},
|
64
|
+
_setConfigValue: (configType, config) => {
|
65
|
+
var _PrefData$getValue2;
|
66
|
+
const configs = (_PrefData$getValue2 = PrefData.getValue(BuildInPrefs.FrequenceConfig)) !== null && _PrefData$getValue2 !== void 0 ? _PrefData$getValue2 : {};
|
67
|
+
configs[configType.key] = config;
|
59
68
|
PrefData.setValue(BuildInPrefs.FrequenceConfig, configs);
|
60
69
|
}
|
61
70
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["BuildInPrefs","PrefData","FreConfigValueType","constructor","_defineProperty","count","lastTimestamp","now","Date","getTime","FrequenceManager","canRun","config","
|
1
|
+
{"version":3,"names":["BuildInPrefs","PrefData","FreConfigValueType","constructor","_defineProperty","count","lastTimestamp","now","Date","getTime","FrequenceManager","canRun","config","_config$limit","_config$limit2","_config$gap","_config$gap2","configValue","_getConfigValue","limit","gap","markFinishForCount","_setConfigValue","markFinishForTime","_PrefData$getValue","configs","getValue","FrequenceConfig","key","configType","_PrefData$getValue2","setValue"],"sources":["Frequence.ts"],"sourcesContent":["import { BuildInPrefs, PrefData } from './PrefData';\n\nexport interface FreConfigType {\n key: string;\n limit?: number; // 0 表示无限次提示\n gap?: number; // 单位:秒;0 表示不间断提示\n}\n\nclass FreConfigValueType {\n lastTimestamp: number; // 上一次展示的时间,配合 gap 计算\n count: number; // 实际展示的次数,配合 limit 计算\n constructor() {\n this.count = 0;\n this.lastTimestamp = 0;\n }\n}\n\nconst now = () => {\n return new Date().getTime() / 1000;\n};\n\nexport const FrequenceManager = {\n canRun: (config: FreConfigType) => {\n let configValue = FrequenceManager._getConfigValue(config);\n if (!configValue) {\n configValue = new FreConfigValueType();\n }\n\n // 优先判断 Count\n if ((config.limit ?? 0) > 0 && configValue.count >= (config.limit ?? 0)) {\n // console.log('[Frequence] 次数限制', configValue, config);\n return false;\n }\n // 再判断 Time\n if (\n (config.gap ?? 0) > 0 &&\n now() - configValue.lastTimestamp < (config.gap ?? 0)\n ) {\n // console.log('[Frequence] 时间限制', configValue, config);\n return false;\n }\n\n // console.log('[Frequence] 无限制', configValue, config);\n return true;\n },\n\n markFinishForCount: (config: FreConfigType) => {\n let configValue = FrequenceManager._getConfigValue(config);\n if (!configValue) {\n configValue = new FreConfigValueType();\n }\n configValue.count++;\n configValue.lastTimestamp = now();\n // console.log('[Frequence] mark finish', configValue);\n FrequenceManager._setConfigValue(config, configValue);\n },\n\n markFinishForTime: (config: FreConfigType) => {\n let configValue = FrequenceManager._getConfigValue(config);\n if (!configValue) {\n configValue = new FreConfigValueType();\n }\n configValue.lastTimestamp = now();\n // console.log('[Frequence] mark finish', configValue);\n FrequenceManager._setConfigValue(config, configValue);\n },\n\n _getConfigValue: (config: FreConfigType) => {\n const configs: { [key: string]: FreConfigValueType } =\n PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};\n return configs[config.key];\n },\n\n _setConfigValue: (configType: FreConfigType, config: FreConfigValueType) => {\n const configs: { [key: string]: FreConfigValueType } =\n PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};\n configs[configType.key] = config;\n PrefData.setValue(BuildInPrefs.FrequenceConfig, configs);\n },\n};\n"],"mappings":"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"}
|
@@ -3,8 +3,16 @@ export interface FreConfigType {
|
|
3
3
|
limit?: number;
|
4
4
|
gap?: number;
|
5
5
|
}
|
6
|
+
declare class FreConfigValueType {
|
7
|
+
lastTimestamp: number;
|
8
|
+
count: number;
|
9
|
+
constructor();
|
10
|
+
}
|
6
11
|
export declare const FrequenceManager: {
|
7
12
|
canRun: (config: FreConfigType) => boolean;
|
8
13
|
markFinishForCount: (config: FreConfigType) => void;
|
9
14
|
markFinishForTime: (config: FreConfigType) => void;
|
15
|
+
_getConfigValue: (config: FreConfigType) => FreConfigValueType;
|
16
|
+
_setConfigValue: (configType: FreConfigType, config: FreConfigValueType) => void;
|
10
17
|
};
|
18
|
+
export {};
|
package/package.json
CHANGED
package/src/Frequence.ts
CHANGED
@@ -21,12 +21,10 @@ const now = () => {
|
|
21
21
|
|
22
22
|
export const FrequenceManager = {
|
23
23
|
canRun: (config: FreConfigType) => {
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
configs[config.key] = new FreConfigValueType();
|
24
|
+
let configValue = FrequenceManager._getConfigValue(config);
|
25
|
+
if (!configValue) {
|
26
|
+
configValue = new FreConfigValueType();
|
28
27
|
}
|
29
|
-
const configValue: FreConfigValueType = configs[config.key];
|
30
28
|
|
31
29
|
// 优先判断 Count
|
32
30
|
if ((config.limit ?? 0) > 0 && configValue.count >= (config.limit ?? 0)) {
|
@@ -47,24 +45,36 @@ export const FrequenceManager = {
|
|
47
45
|
},
|
48
46
|
|
49
47
|
markFinishForCount: (config: FreConfigType) => {
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
configs[config.key] = new FreConfigValueType();
|
48
|
+
let configValue = FrequenceManager._getConfigValue(config);
|
49
|
+
if (!configValue) {
|
50
|
+
configValue = new FreConfigValueType();
|
54
51
|
}
|
55
|
-
|
56
|
-
|
57
|
-
|
52
|
+
configValue.count++;
|
53
|
+
configValue.lastTimestamp = now();
|
54
|
+
// console.log('[Frequence] mark finish', configValue);
|
55
|
+
FrequenceManager._setConfigValue(config, configValue);
|
58
56
|
},
|
59
57
|
|
60
58
|
markFinishForTime: (config: FreConfigType) => {
|
59
|
+
let configValue = FrequenceManager._getConfigValue(config);
|
60
|
+
if (!configValue) {
|
61
|
+
configValue = new FreConfigValueType();
|
62
|
+
}
|
63
|
+
configValue.lastTimestamp = now();
|
64
|
+
// console.log('[Frequence] mark finish', configValue);
|
65
|
+
FrequenceManager._setConfigValue(config, configValue);
|
66
|
+
},
|
67
|
+
|
68
|
+
_getConfigValue: (config: FreConfigType) => {
|
61
69
|
const configs: { [key: string]: FreConfigValueType } =
|
62
70
|
PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
71
|
+
return configs[config.key];
|
72
|
+
},
|
73
|
+
|
74
|
+
_setConfigValue: (configType: FreConfigType, config: FreConfigValueType) => {
|
75
|
+
const configs: { [key: string]: FreConfigValueType } =
|
76
|
+
PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};
|
77
|
+
configs[configType.key] = config;
|
68
78
|
PrefData.setValue(BuildInPrefs.FrequenceConfig, configs);
|
69
79
|
},
|
70
80
|
};
|
package/.DS_Store
DELETED
Binary file
|
package/.vscode/settings.json
DELETED
package/ios/.DS_Store
DELETED
Binary file
|
package/src/.DS_Store
DELETED
Binary file
|