@norcy/react-native-toolkit 0.1.52 → 0.1.54
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/.DS_Store +0 -0
- package/lib/commonjs/ConfigDataModel.js +1 -1
- package/lib/commonjs/ConfigDataModel.js.map +1 -1
- package/lib/commonjs/Notification.js +2 -2
- package/lib/commonjs/Notification.js.map +1 -1
- package/lib/module/ConfigDataModel.js +1 -1
- package/lib/module/ConfigDataModel.js.map +1 -1
- package/lib/module/Notification.js +2 -2
- package/lib/module/Notification.js.map +1 -1
- package/lib/typescript/Notification.d.ts +1 -1
- package/package.json +1 -1
- package/src/ConfigDataModel.ts +1 -1
- package/src/Notification.ts +2 -2
- 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/.DS_Store
CHANGED
|
Binary file
|
|
@@ -71,8 +71,8 @@ const handleVersionInfo = () => {
|
|
|
71
71
|
key = 'aov';
|
|
72
72
|
}
|
|
73
73
|
const configVersion = ConfigDataModel.get(key);
|
|
74
|
-
const onlineVersion = semverCoerce(configVersion).version;
|
|
75
74
|
if (configVersion) {
|
|
75
|
+
const onlineVersion = semverCoerce(configVersion).version;
|
|
76
76
|
// current < online,才有新版本
|
|
77
77
|
if (semverGt(onlineVersion, VersionInfo.currentVersion)) {
|
|
78
78
|
VersionInfo.latestVersion = onlineVersion;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_DevConfig","_Notification","_PrefData","_VipAndroidManager","_VipManager","EventEmitter","eventEmitter","semverGt","semverGte","semverCoerce","MyItems","VersionInfo","currentVersion","getReadableVersion","version","latestVersion","isDanger","hasNewVersion","AV","_filterByVersion","items","ret","curVer","item","_item$get","_item$get2","minVer","get","trim","maxVer","push","_filterByVip","isVip","VipManager","isForeverVip","vipFilter","_updateKeyValues","value","handleVersionInfo","key","Platform","OS","configVersion","ConfigDataModel","onlineVersion","__DEV__","DevConfig","hasValue","BuildInPrefs","DevDanger","getValue","isDataReady","isVipStateReady","OnlineItems","_handleResponse","length","console","log","VipAndroidManager","setPackages","emitChange","exports","init","defaultValues","Notification","addListenerOnce","fetch","query","Query","equalTo","find","then","catch","e","error","getVersionConfig","emit","callback","once"],"sources":["ConfigDataModel.ts"],"sourcesContent":["import { Object } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { getReadableVersion } from 'react-native-device-info';\nimport { DevConfig } from './DevConfig';\nimport { Notification } from './Notification';\nimport { BuildInPrefs } from './PrefData';\nimport { VipAndroidManager } from './VipAndroidManager';\nimport { VipManager } from './VipManager';\n\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\nconst semverGt = require('semver/functions/gt');\nconst semverGte = require('semver/functions/gte');\nconst semverCoerce = require('semver/functions/coerce');\n\nexport interface ConfigsType {\n [key: string]: any;\n}\nlet MyItems: ConfigsType = {};\nlet VersionInfo = {\n currentVersion: semverCoerce(getReadableVersion()).version,\n latestVersion: semverCoerce(getReadableVersion()).version,\n isDanger: true,\n hasNewVersion: false,\n};\n\nconst AV = require('leancloud-storage');\n\nconst _filterByVersion = (items: Object[]) => {\n let ret = [];\n const curVer = semverCoerce(getReadableVersion()).version;\n for (const item of items) {\n const minVer = item.get('minVer')?.trim();\n const maxVer = item.get('maxVer')?.trim();\n // 确保 cur 处于 [minVer, maxVer)\n if (!!minVer && semverGt(semverCoerce(minVer).version, curVer)) {\n continue;\n }\n if (!!maxVer && semverGte(curVer, semverCoerce(maxVer).version)) {\n continue;\n }\n\n ret.push(item);\n }\n return ret;\n};\n\nconst _filterByVip = (items: Object[]) => {\n let ret = [];\n const isVip = VipManager.isVip();\n const isForeverVip = VipManager.isForeverVip();\n for (const item of items) {\n const vipFilter = item.get('vipFilter');\n if (\n vipFilter === 0 ||\n (vipFilter === 1 && !isVip) ||\n (vipFilter === 2 && !isForeverVip)\n ) {\n ret.push(item);\n }\n }\n return ret;\n};\n\nconst _updateKeyValues = (items: Object[]) => {\n for (const item of items) {\n let value = item.get('value');\n if (typeof value === 'string') {\n // 因为 leancloud 无法配置空白内容,所以 trim 下,这样就能以空格代替空白{\n value = value.trim();\n }\n MyItems[item.get('key')] = value;\n }\n};\n\nconst handleVersionInfo = () => {\n // online > current,则更新 latestVersion\n let key = 'ov';\n if (Platform.OS === 'android') {\n key = 'aov';\n }\n const configVersion = ConfigDataModel.get(key);\n const onlineVersion = semverCoerce(configVersion).version;\n if (configVersion) {\n // current < online,才有新版本\n if (semverGt(onlineVersion, VersionInfo.currentVersion)) {\n VersionInfo.latestVersion = onlineVersion;\n VersionInfo.hasNewVersion = true;\n }\n // current <= online,才安全 ,防止忘记修改 online\n if (!semverGt(VersionInfo.currentVersion, onlineVersion)) {\n VersionInfo.isDanger = false;\n }\n }\n\n if (__DEV__) {\n if (DevConfig.hasValue(BuildInPrefs.DevDanger)) {\n VersionInfo.isDanger = DevConfig.getValue(BuildInPrefs.DevDanger);\n }\n }\n};\n\nlet isDataReady = false;\nlet isVipStateReady = false;\nlet OnlineItems: Object[] = [];\n\nconst _handleResponse = () => {\n if (!isVipStateReady || !OnlineItems.length) {\n return;\n }\n\n // 根据版本过滤\n let items = _filterByVersion(OnlineItems);\n // 根据 VIP 状态过滤\n items = _filterByVip(items);\n _updateKeyValues(items);\n // 处理 Version 信息\n handleVersionInfo();\n console.log('Config 处理完毕');\n isDataReady = true;\n VipAndroidManager.setPackages(ConfigDataModel.get('vip_android_products'));\n ConfigDataModel.emitChange();\n};\n\nconst ConfigDataModel = {\n init: (defaultValues: ConfigsType) => {\n MyItems = defaultValues;\n // TODO 这里切换登录信息会复用\n Notification.addListenerOnce('onVipRefresh', () => {\n isVipStateReady = true;\n _handleResponse();\n });\n ConfigDataModel.fetch();\n },\n\n fetch: () => {\n const query = new AV.Query('Configs');\n query.equalTo('valid', true).equalTo(Platform.OS, true);\n query\n .find()\n .then((items: Object[]) => {\n console.log('Config 抓取完毕');\n OnlineItems = items;\n _handleResponse();\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n getVersionConfig: () => {\n return VersionInfo;\n },\n\n get: (key: string) => {\n return MyItems[key];\n },\n\n emitChange: () => {\n eventEmitter.emit('change');\n },\n\n addListenerOnce: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return;\n }\n eventEmitter.once('change', callback);\n },\n};\n\nexport { ConfigDataModel };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_DevConfig","_Notification","_PrefData","_VipAndroidManager","_VipManager","EventEmitter","eventEmitter","semverGt","semverGte","semverCoerce","MyItems","VersionInfo","currentVersion","getReadableVersion","version","latestVersion","isDanger","hasNewVersion","AV","_filterByVersion","items","ret","curVer","item","_item$get","_item$get2","minVer","get","trim","maxVer","push","_filterByVip","isVip","VipManager","isForeverVip","vipFilter","_updateKeyValues","value","handleVersionInfo","key","Platform","OS","configVersion","ConfigDataModel","onlineVersion","__DEV__","DevConfig","hasValue","BuildInPrefs","DevDanger","getValue","isDataReady","isVipStateReady","OnlineItems","_handleResponse","length","console","log","VipAndroidManager","setPackages","emitChange","exports","init","defaultValues","Notification","addListenerOnce","fetch","query","Query","equalTo","find","then","catch","e","error","getVersionConfig","emit","callback","once"],"sources":["ConfigDataModel.ts"],"sourcesContent":["import { Object } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { getReadableVersion } from 'react-native-device-info';\nimport { DevConfig } from './DevConfig';\nimport { Notification } from './Notification';\nimport { BuildInPrefs } from './PrefData';\nimport { VipAndroidManager } from './VipAndroidManager';\nimport { VipManager } from './VipManager';\n\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\nconst semverGt = require('semver/functions/gt');\nconst semverGte = require('semver/functions/gte');\nconst semverCoerce = require('semver/functions/coerce');\n\nexport interface ConfigsType {\n [key: string]: any;\n}\nlet MyItems: ConfigsType = {};\nlet VersionInfo = {\n currentVersion: semverCoerce(getReadableVersion()).version,\n latestVersion: semverCoerce(getReadableVersion()).version,\n isDanger: true,\n hasNewVersion: false,\n};\n\nconst AV = require('leancloud-storage');\n\nconst _filterByVersion = (items: Object[]) => {\n let ret = [];\n const curVer = semverCoerce(getReadableVersion()).version;\n for (const item of items) {\n const minVer = item.get('minVer')?.trim();\n const maxVer = item.get('maxVer')?.trim();\n // 确保 cur 处于 [minVer, maxVer)\n if (!!minVer && semverGt(semverCoerce(minVer).version, curVer)) {\n continue;\n }\n if (!!maxVer && semverGte(curVer, semverCoerce(maxVer).version)) {\n continue;\n }\n\n ret.push(item);\n }\n return ret;\n};\n\nconst _filterByVip = (items: Object[]) => {\n let ret = [];\n const isVip = VipManager.isVip();\n const isForeverVip = VipManager.isForeverVip();\n for (const item of items) {\n const vipFilter = item.get('vipFilter');\n if (\n vipFilter === 0 ||\n (vipFilter === 1 && !isVip) ||\n (vipFilter === 2 && !isForeverVip)\n ) {\n ret.push(item);\n }\n }\n return ret;\n};\n\nconst _updateKeyValues = (items: Object[]) => {\n for (const item of items) {\n let value = item.get('value');\n if (typeof value === 'string') {\n // 因为 leancloud 无法配置空白内容,所以 trim 下,这样就能以空格代替空白{\n value = value.trim();\n }\n MyItems[item.get('key')] = value;\n }\n};\n\nconst handleVersionInfo = () => {\n // online > current,则更新 latestVersion\n let key = 'ov';\n if (Platform.OS === 'android') {\n key = 'aov';\n }\n const configVersion = ConfigDataModel.get(key);\n if (configVersion) {\n const onlineVersion = semverCoerce(configVersion).version;\n // current < online,才有新版本\n if (semverGt(onlineVersion, VersionInfo.currentVersion)) {\n VersionInfo.latestVersion = onlineVersion;\n VersionInfo.hasNewVersion = true;\n }\n // current <= online,才安全 ,防止忘记修改 online\n if (!semverGt(VersionInfo.currentVersion, onlineVersion)) {\n VersionInfo.isDanger = false;\n }\n }\n\n if (__DEV__) {\n if (DevConfig.hasValue(BuildInPrefs.DevDanger)) {\n VersionInfo.isDanger = DevConfig.getValue(BuildInPrefs.DevDanger);\n }\n }\n};\n\nlet isDataReady = false;\nlet isVipStateReady = false;\nlet OnlineItems: Object[] = [];\n\nconst _handleResponse = () => {\n if (!isVipStateReady || !OnlineItems.length) {\n return;\n }\n\n // 根据版本过滤\n let items = _filterByVersion(OnlineItems);\n // 根据 VIP 状态过滤\n items = _filterByVip(items);\n _updateKeyValues(items);\n // 处理 Version 信息\n handleVersionInfo();\n console.log('Config 处理完毕');\n isDataReady = true;\n VipAndroidManager.setPackages(ConfigDataModel.get('vip_android_products'));\n ConfigDataModel.emitChange();\n};\n\nconst ConfigDataModel = {\n init: (defaultValues: ConfigsType) => {\n MyItems = defaultValues;\n // TODO 这里切换登录信息会复用\n Notification.addListenerOnce('onVipRefresh', () => {\n isVipStateReady = true;\n _handleResponse();\n });\n ConfigDataModel.fetch();\n },\n\n fetch: () => {\n const query = new AV.Query('Configs');\n query.equalTo('valid', true).equalTo(Platform.OS, true);\n query\n .find()\n .then((items: Object[]) => {\n console.log('Config 抓取完毕');\n OnlineItems = items;\n _handleResponse();\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n getVersionConfig: () => {\n return VersionInfo;\n },\n\n get: (key: string) => {\n return MyItems[key];\n },\n\n emitChange: () => {\n eventEmitter.emit('change');\n },\n\n addListenerOnce: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return;\n }\n eventEmitter.once('change', callback);\n },\n};\n\nexport { ConfigDataModel };\n"],"mappings":"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"}
|
|
@@ -8,9 +8,9 @@ const EventEmitter = require('events').EventEmitter;
|
|
|
8
8
|
const eventEmitter = new EventEmitter();
|
|
9
9
|
const ListenerToEvent = {};
|
|
10
10
|
const Notification = exports.Notification = {
|
|
11
|
-
addListener: (event, callback) => {
|
|
11
|
+
addListener: (event, callback, skipCache) => {
|
|
12
12
|
const key = callback.toString();
|
|
13
|
-
if (!ListenerToEvent[key]) {
|
|
13
|
+
if (skipCache || !ListenerToEvent[key]) {
|
|
14
14
|
eventEmitter.on(event, callback);
|
|
15
15
|
ListenerToEvent[key] = event;
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EventEmitter","require","eventEmitter","ListenerToEvent","Notification","exports","addListener","event","callback","key","toString","on","addListenerOnce","once","removeListener","removeAllListeners","keys","Object","postNotification","args","emit"],"sources":["Notification.ts"],"sourcesContent":["const EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\ninterface ListenerType {\n [key: string]: string;\n}\n\nconst ListenerToEvent: ListenerType = {};\n\nexport const Notification = {\n addListener: (event: string, callback: Function) => {\n const key = callback.toString();\n if (!ListenerToEvent[key]) {\n eventEmitter.on(event, callback);\n ListenerToEvent[key] = event;\n }\n return callback;\n },\n\n addListenerOnce: (event: string, callback: Function) => {\n eventEmitter.once(event, callback);\n },\n\n removeListener: (callback: Function) => {\n const key = callback.toString();\n const event = ListenerToEvent[key];\n delete ListenerToEvent[key];\n eventEmitter.removeListener(event, callback);\n },\n\n removeAllListeners: (event: string) => {\n const keys = Object.keys(ListenerToEvent);\n for (const key of keys) {\n if (ListenerToEvent[key] === event) {\n delete ListenerToEvent[key];\n }\n }\n eventEmitter.removeAllListeners(event);\n },\n\n postNotification: (event: string, args?: object) => {\n eventEmitter.emit(event, args);\n },\n};\n"],"mappings":";;;;;;AAAA,MAAMA,YAAY,GAAGC,OAAO,CAAC,QAAQ,CAAC,CAACD,YAAY;AACnD,MAAME,YAAY,GAAG,IAAIF,YAAY,CAAC,CAAC;AAMvC,MAAMG,eAA6B,GAAG,CAAC,CAAC;AAEjC,MAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAC1BE,WAAW,EAAEA,CAACC,KAAa,EAAEC,QAAkB,KAAK;
|
|
1
|
+
{"version":3,"names":["EventEmitter","require","eventEmitter","ListenerToEvent","Notification","exports","addListener","event","callback","skipCache","key","toString","on","addListenerOnce","once","removeListener","removeAllListeners","keys","Object","postNotification","args","emit"],"sources":["Notification.ts"],"sourcesContent":["const EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\ninterface ListenerType {\n [key: string]: string;\n}\n\nconst ListenerToEvent: ListenerType = {};\n\nexport const Notification = {\n addListener: (event: string, callback: Function, skipCache?: boolean) => {\n const key = callback.toString();\n if (skipCache || !ListenerToEvent[key]) {\n eventEmitter.on(event, callback);\n ListenerToEvent[key] = event;\n }\n return callback;\n },\n\n addListenerOnce: (event: string, callback: Function) => {\n eventEmitter.once(event, callback);\n },\n\n removeListener: (callback: Function) => {\n const key = callback.toString();\n const event = ListenerToEvent[key];\n delete ListenerToEvent[key];\n eventEmitter.removeListener(event, callback);\n },\n\n removeAllListeners: (event: string) => {\n const keys = Object.keys(ListenerToEvent);\n for (const key of keys) {\n if (ListenerToEvent[key] === event) {\n delete ListenerToEvent[key];\n }\n }\n eventEmitter.removeAllListeners(event);\n },\n\n postNotification: (event: string, args?: object) => {\n eventEmitter.emit(event, args);\n },\n};\n"],"mappings":";;;;;;AAAA,MAAMA,YAAY,GAAGC,OAAO,CAAC,QAAQ,CAAC,CAACD,YAAY;AACnD,MAAME,YAAY,GAAG,IAAIF,YAAY,CAAC,CAAC;AAMvC,MAAMG,eAA6B,GAAG,CAAC,CAAC;AAEjC,MAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAC1BE,WAAW,EAAEA,CAACC,KAAa,EAAEC,QAAkB,EAAEC,SAAmB,KAAK;IACvE,MAAMC,GAAG,GAAGF,QAAQ,CAACG,QAAQ,CAAC,CAAC;IAC/B,IAAIF,SAAS,IAAI,CAACN,eAAe,CAACO,GAAG,CAAC,EAAE;MACtCR,YAAY,CAACU,EAAE,CAACL,KAAK,EAAEC,QAAQ,CAAC;MAChCL,eAAe,CAACO,GAAG,CAAC,GAAGH,KAAK;IAC9B;IACA,OAAOC,QAAQ;EACjB,CAAC;EAEDK,eAAe,EAAEA,CAACN,KAAa,EAAEC,QAAkB,KAAK;IACtDN,YAAY,CAACY,IAAI,CAACP,KAAK,EAAEC,QAAQ,CAAC;EACpC,CAAC;EAEDO,cAAc,EAAGP,QAAkB,IAAK;IACtC,MAAME,GAAG,GAAGF,QAAQ,CAACG,QAAQ,CAAC,CAAC;IAC/B,MAAMJ,KAAK,GAAGJ,eAAe,CAACO,GAAG,CAAC;IAClC,OAAOP,eAAe,CAACO,GAAG,CAAC;IAC3BR,YAAY,CAACa,cAAc,CAACR,KAAK,EAAEC,QAAQ,CAAC;EAC9C,CAAC;EAEDQ,kBAAkB,EAAGT,KAAa,IAAK;IACrC,MAAMU,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACd,eAAe,CAAC;IACzC,KAAK,MAAMO,GAAG,IAAIO,IAAI,EAAE;MACtB,IAAId,eAAe,CAACO,GAAG,CAAC,KAAKH,KAAK,EAAE;QAClC,OAAOJ,eAAe,CAACO,GAAG,CAAC;MAC7B;IACF;IACAR,YAAY,CAACc,kBAAkB,CAACT,KAAK,CAAC;EACxC,CAAC;EAEDY,gBAAgB,EAAEA,CAACZ,KAAa,EAAEa,IAAa,KAAK;IAClDlB,YAAY,CAACmB,IAAI,CAACd,KAAK,EAAEa,IAAI,CAAC;EAChC;AACF,CAAC"}
|
|
@@ -65,8 +65,8 @@ const handleVersionInfo = () => {
|
|
|
65
65
|
key = 'aov';
|
|
66
66
|
}
|
|
67
67
|
const configVersion = ConfigDataModel.get(key);
|
|
68
|
-
const onlineVersion = semverCoerce(configVersion).version;
|
|
69
68
|
if (configVersion) {
|
|
69
|
+
const onlineVersion = semverCoerce(configVersion).version;
|
|
70
70
|
// current < online,才有新版本
|
|
71
71
|
if (semverGt(onlineVersion, VersionInfo.currentVersion)) {
|
|
72
72
|
VersionInfo.latestVersion = onlineVersion;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","getReadableVersion","DevConfig","Notification","BuildInPrefs","VipAndroidManager","VipManager","EventEmitter","require","eventEmitter","semverGt","semverGte","semverCoerce","MyItems","VersionInfo","currentVersion","version","latestVersion","isDanger","hasNewVersion","AV","_filterByVersion","items","ret","curVer","item","_item$get","_item$get2","minVer","get","trim","maxVer","push","_filterByVip","isVip","isForeverVip","vipFilter","_updateKeyValues","value","handleVersionInfo","key","OS","configVersion","ConfigDataModel","onlineVersion","__DEV__","hasValue","DevDanger","getValue","isDataReady","isVipStateReady","OnlineItems","_handleResponse","length","console","log","setPackages","emitChange","init","defaultValues","addListenerOnce","fetch","query","Query","equalTo","find","then","catch","e","error","getVersionConfig","emit","callback","once"],"sources":["ConfigDataModel.ts"],"sourcesContent":["import { Object } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { getReadableVersion } from 'react-native-device-info';\nimport { DevConfig } from './DevConfig';\nimport { Notification } from './Notification';\nimport { BuildInPrefs } from './PrefData';\nimport { VipAndroidManager } from './VipAndroidManager';\nimport { VipManager } from './VipManager';\n\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\nconst semverGt = require('semver/functions/gt');\nconst semverGte = require('semver/functions/gte');\nconst semverCoerce = require('semver/functions/coerce');\n\nexport interface ConfigsType {\n [key: string]: any;\n}\nlet MyItems: ConfigsType = {};\nlet VersionInfo = {\n currentVersion: semverCoerce(getReadableVersion()).version,\n latestVersion: semverCoerce(getReadableVersion()).version,\n isDanger: true,\n hasNewVersion: false,\n};\n\nconst AV = require('leancloud-storage');\n\nconst _filterByVersion = (items: Object[]) => {\n let ret = [];\n const curVer = semverCoerce(getReadableVersion()).version;\n for (const item of items) {\n const minVer = item.get('minVer')?.trim();\n const maxVer = item.get('maxVer')?.trim();\n // 确保 cur 处于 [minVer, maxVer)\n if (!!minVer && semverGt(semverCoerce(minVer).version, curVer)) {\n continue;\n }\n if (!!maxVer && semverGte(curVer, semverCoerce(maxVer).version)) {\n continue;\n }\n\n ret.push(item);\n }\n return ret;\n};\n\nconst _filterByVip = (items: Object[]) => {\n let ret = [];\n const isVip = VipManager.isVip();\n const isForeverVip = VipManager.isForeverVip();\n for (const item of items) {\n const vipFilter = item.get('vipFilter');\n if (\n vipFilter === 0 ||\n (vipFilter === 1 && !isVip) ||\n (vipFilter === 2 && !isForeverVip)\n ) {\n ret.push(item);\n }\n }\n return ret;\n};\n\nconst _updateKeyValues = (items: Object[]) => {\n for (const item of items) {\n let value = item.get('value');\n if (typeof value === 'string') {\n // 因为 leancloud 无法配置空白内容,所以 trim 下,这样就能以空格代替空白{\n value = value.trim();\n }\n MyItems[item.get('key')] = value;\n }\n};\n\nconst handleVersionInfo = () => {\n // online > current,则更新 latestVersion\n let key = 'ov';\n if (Platform.OS === 'android') {\n key = 'aov';\n }\n const configVersion = ConfigDataModel.get(key);\n const onlineVersion = semverCoerce(configVersion).version;\n if (configVersion) {\n // current < online,才有新版本\n if (semverGt(onlineVersion, VersionInfo.currentVersion)) {\n VersionInfo.latestVersion = onlineVersion;\n VersionInfo.hasNewVersion = true;\n }\n // current <= online,才安全 ,防止忘记修改 online\n if (!semverGt(VersionInfo.currentVersion, onlineVersion)) {\n VersionInfo.isDanger = false;\n }\n }\n\n if (__DEV__) {\n if (DevConfig.hasValue(BuildInPrefs.DevDanger)) {\n VersionInfo.isDanger = DevConfig.getValue(BuildInPrefs.DevDanger);\n }\n }\n};\n\nlet isDataReady = false;\nlet isVipStateReady = false;\nlet OnlineItems: Object[] = [];\n\nconst _handleResponse = () => {\n if (!isVipStateReady || !OnlineItems.length) {\n return;\n }\n\n // 根据版本过滤\n let items = _filterByVersion(OnlineItems);\n // 根据 VIP 状态过滤\n items = _filterByVip(items);\n _updateKeyValues(items);\n // 处理 Version 信息\n handleVersionInfo();\n console.log('Config 处理完毕');\n isDataReady = true;\n VipAndroidManager.setPackages(ConfigDataModel.get('vip_android_products'));\n ConfigDataModel.emitChange();\n};\n\nconst ConfigDataModel = {\n init: (defaultValues: ConfigsType) => {\n MyItems = defaultValues;\n // TODO 这里切换登录信息会复用\n Notification.addListenerOnce('onVipRefresh', () => {\n isVipStateReady = true;\n _handleResponse();\n });\n ConfigDataModel.fetch();\n },\n\n fetch: () => {\n const query = new AV.Query('Configs');\n query.equalTo('valid', true).equalTo(Platform.OS, true);\n query\n .find()\n .then((items: Object[]) => {\n console.log('Config 抓取完毕');\n OnlineItems = items;\n _handleResponse();\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n getVersionConfig: () => {\n return VersionInfo;\n },\n\n get: (key: string) => {\n return MyItems[key];\n },\n\n emitChange: () => {\n eventEmitter.emit('change');\n },\n\n addListenerOnce: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return;\n }\n eventEmitter.once('change', callback);\n },\n};\n\nexport { ConfigDataModel };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Platform","getReadableVersion","DevConfig","Notification","BuildInPrefs","VipAndroidManager","VipManager","EventEmitter","require","eventEmitter","semverGt","semverGte","semverCoerce","MyItems","VersionInfo","currentVersion","version","latestVersion","isDanger","hasNewVersion","AV","_filterByVersion","items","ret","curVer","item","_item$get","_item$get2","minVer","get","trim","maxVer","push","_filterByVip","isVip","isForeverVip","vipFilter","_updateKeyValues","value","handleVersionInfo","key","OS","configVersion","ConfigDataModel","onlineVersion","__DEV__","hasValue","DevDanger","getValue","isDataReady","isVipStateReady","OnlineItems","_handleResponse","length","console","log","setPackages","emitChange","init","defaultValues","addListenerOnce","fetch","query","Query","equalTo","find","then","catch","e","error","getVersionConfig","emit","callback","once"],"sources":["ConfigDataModel.ts"],"sourcesContent":["import { Object } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { getReadableVersion } from 'react-native-device-info';\nimport { DevConfig } from './DevConfig';\nimport { Notification } from './Notification';\nimport { BuildInPrefs } from './PrefData';\nimport { VipAndroidManager } from './VipAndroidManager';\nimport { VipManager } from './VipManager';\n\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\nconst semverGt = require('semver/functions/gt');\nconst semverGte = require('semver/functions/gte');\nconst semverCoerce = require('semver/functions/coerce');\n\nexport interface ConfigsType {\n [key: string]: any;\n}\nlet MyItems: ConfigsType = {};\nlet VersionInfo = {\n currentVersion: semverCoerce(getReadableVersion()).version,\n latestVersion: semverCoerce(getReadableVersion()).version,\n isDanger: true,\n hasNewVersion: false,\n};\n\nconst AV = require('leancloud-storage');\n\nconst _filterByVersion = (items: Object[]) => {\n let ret = [];\n const curVer = semverCoerce(getReadableVersion()).version;\n for (const item of items) {\n const minVer = item.get('minVer')?.trim();\n const maxVer = item.get('maxVer')?.trim();\n // 确保 cur 处于 [minVer, maxVer)\n if (!!minVer && semverGt(semverCoerce(minVer).version, curVer)) {\n continue;\n }\n if (!!maxVer && semverGte(curVer, semverCoerce(maxVer).version)) {\n continue;\n }\n\n ret.push(item);\n }\n return ret;\n};\n\nconst _filterByVip = (items: Object[]) => {\n let ret = [];\n const isVip = VipManager.isVip();\n const isForeverVip = VipManager.isForeverVip();\n for (const item of items) {\n const vipFilter = item.get('vipFilter');\n if (\n vipFilter === 0 ||\n (vipFilter === 1 && !isVip) ||\n (vipFilter === 2 && !isForeverVip)\n ) {\n ret.push(item);\n }\n }\n return ret;\n};\n\nconst _updateKeyValues = (items: Object[]) => {\n for (const item of items) {\n let value = item.get('value');\n if (typeof value === 'string') {\n // 因为 leancloud 无法配置空白内容,所以 trim 下,这样就能以空格代替空白{\n value = value.trim();\n }\n MyItems[item.get('key')] = value;\n }\n};\n\nconst handleVersionInfo = () => {\n // online > current,则更新 latestVersion\n let key = 'ov';\n if (Platform.OS === 'android') {\n key = 'aov';\n }\n const configVersion = ConfigDataModel.get(key);\n if (configVersion) {\n const onlineVersion = semverCoerce(configVersion).version;\n // current < online,才有新版本\n if (semverGt(onlineVersion, VersionInfo.currentVersion)) {\n VersionInfo.latestVersion = onlineVersion;\n VersionInfo.hasNewVersion = true;\n }\n // current <= online,才安全 ,防止忘记修改 online\n if (!semverGt(VersionInfo.currentVersion, onlineVersion)) {\n VersionInfo.isDanger = false;\n }\n }\n\n if (__DEV__) {\n if (DevConfig.hasValue(BuildInPrefs.DevDanger)) {\n VersionInfo.isDanger = DevConfig.getValue(BuildInPrefs.DevDanger);\n }\n }\n};\n\nlet isDataReady = false;\nlet isVipStateReady = false;\nlet OnlineItems: Object[] = [];\n\nconst _handleResponse = () => {\n if (!isVipStateReady || !OnlineItems.length) {\n return;\n }\n\n // 根据版本过滤\n let items = _filterByVersion(OnlineItems);\n // 根据 VIP 状态过滤\n items = _filterByVip(items);\n _updateKeyValues(items);\n // 处理 Version 信息\n handleVersionInfo();\n console.log('Config 处理完毕');\n isDataReady = true;\n VipAndroidManager.setPackages(ConfigDataModel.get('vip_android_products'));\n ConfigDataModel.emitChange();\n};\n\nconst ConfigDataModel = {\n init: (defaultValues: ConfigsType) => {\n MyItems = defaultValues;\n // TODO 这里切换登录信息会复用\n Notification.addListenerOnce('onVipRefresh', () => {\n isVipStateReady = true;\n _handleResponse();\n });\n ConfigDataModel.fetch();\n },\n\n fetch: () => {\n const query = new AV.Query('Configs');\n query.equalTo('valid', true).equalTo(Platform.OS, true);\n query\n .find()\n .then((items: Object[]) => {\n console.log('Config 抓取完毕');\n OnlineItems = items;\n _handleResponse();\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n getVersionConfig: () => {\n return VersionInfo;\n },\n\n get: (key: string) => {\n return MyItems[key];\n },\n\n emitChange: () => {\n eventEmitter.emit('change');\n },\n\n addListenerOnce: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return;\n }\n eventEmitter.once('change', callback);\n },\n};\n\nexport { ConfigDataModel };\n"],"mappings":"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"}
|
|
@@ -2,9 +2,9 @@ const EventEmitter = require('events').EventEmitter;
|
|
|
2
2
|
const eventEmitter = new EventEmitter();
|
|
3
3
|
const ListenerToEvent = {};
|
|
4
4
|
export const Notification = {
|
|
5
|
-
addListener: (event, callback) => {
|
|
5
|
+
addListener: (event, callback, skipCache) => {
|
|
6
6
|
const key = callback.toString();
|
|
7
|
-
if (!ListenerToEvent[key]) {
|
|
7
|
+
if (skipCache || !ListenerToEvent[key]) {
|
|
8
8
|
eventEmitter.on(event, callback);
|
|
9
9
|
ListenerToEvent[key] = event;
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EventEmitter","require","eventEmitter","ListenerToEvent","Notification","addListener","event","callback","key","toString","on","addListenerOnce","once","removeListener","removeAllListeners","keys","Object","postNotification","args","emit"],"sources":["Notification.ts"],"sourcesContent":["const EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\ninterface ListenerType {\n [key: string]: string;\n}\n\nconst ListenerToEvent: ListenerType = {};\n\nexport const Notification = {\n addListener: (event: string, callback: Function) => {\n const key = callback.toString();\n if (!ListenerToEvent[key]) {\n eventEmitter.on(event, callback);\n ListenerToEvent[key] = event;\n }\n return callback;\n },\n\n addListenerOnce: (event: string, callback: Function) => {\n eventEmitter.once(event, callback);\n },\n\n removeListener: (callback: Function) => {\n const key = callback.toString();\n const event = ListenerToEvent[key];\n delete ListenerToEvent[key];\n eventEmitter.removeListener(event, callback);\n },\n\n removeAllListeners: (event: string) => {\n const keys = Object.keys(ListenerToEvent);\n for (const key of keys) {\n if (ListenerToEvent[key] === event) {\n delete ListenerToEvent[key];\n }\n }\n eventEmitter.removeAllListeners(event);\n },\n\n postNotification: (event: string, args?: object) => {\n eventEmitter.emit(event, args);\n },\n};\n"],"mappings":"AAAA,MAAMA,YAAY,GAAGC,OAAO,CAAC,QAAQ,CAAC,CAACD,YAAY;AACnD,MAAME,YAAY,GAAG,IAAIF,YAAY,CAAC,CAAC;AAMvC,MAAMG,eAA6B,GAAG,CAAC,CAAC;AAExC,OAAO,MAAMC,YAAY,GAAG;EAC1BC,WAAW,EAAEA,CAACC,KAAa,EAAEC,QAAkB,KAAK;
|
|
1
|
+
{"version":3,"names":["EventEmitter","require","eventEmitter","ListenerToEvent","Notification","addListener","event","callback","skipCache","key","toString","on","addListenerOnce","once","removeListener","removeAllListeners","keys","Object","postNotification","args","emit"],"sources":["Notification.ts"],"sourcesContent":["const EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\ninterface ListenerType {\n [key: string]: string;\n}\n\nconst ListenerToEvent: ListenerType = {};\n\nexport const Notification = {\n addListener: (event: string, callback: Function, skipCache?: boolean) => {\n const key = callback.toString();\n if (skipCache || !ListenerToEvent[key]) {\n eventEmitter.on(event, callback);\n ListenerToEvent[key] = event;\n }\n return callback;\n },\n\n addListenerOnce: (event: string, callback: Function) => {\n eventEmitter.once(event, callback);\n },\n\n removeListener: (callback: Function) => {\n const key = callback.toString();\n const event = ListenerToEvent[key];\n delete ListenerToEvent[key];\n eventEmitter.removeListener(event, callback);\n },\n\n removeAllListeners: (event: string) => {\n const keys = Object.keys(ListenerToEvent);\n for (const key of keys) {\n if (ListenerToEvent[key] === event) {\n delete ListenerToEvent[key];\n }\n }\n eventEmitter.removeAllListeners(event);\n },\n\n postNotification: (event: string, args?: object) => {\n eventEmitter.emit(event, args);\n },\n};\n"],"mappings":"AAAA,MAAMA,YAAY,GAAGC,OAAO,CAAC,QAAQ,CAAC,CAACD,YAAY;AACnD,MAAME,YAAY,GAAG,IAAIF,YAAY,CAAC,CAAC;AAMvC,MAAMG,eAA6B,GAAG,CAAC,CAAC;AAExC,OAAO,MAAMC,YAAY,GAAG;EAC1BC,WAAW,EAAEA,CAACC,KAAa,EAAEC,QAAkB,EAAEC,SAAmB,KAAK;IACvE,MAAMC,GAAG,GAAGF,QAAQ,CAACG,QAAQ,CAAC,CAAC;IAC/B,IAAIF,SAAS,IAAI,CAACL,eAAe,CAACM,GAAG,CAAC,EAAE;MACtCP,YAAY,CAACS,EAAE,CAACL,KAAK,EAAEC,QAAQ,CAAC;MAChCJ,eAAe,CAACM,GAAG,CAAC,GAAGH,KAAK;IAC9B;IACA,OAAOC,QAAQ;EACjB,CAAC;EAEDK,eAAe,EAAEA,CAACN,KAAa,EAAEC,QAAkB,KAAK;IACtDL,YAAY,CAACW,IAAI,CAACP,KAAK,EAAEC,QAAQ,CAAC;EACpC,CAAC;EAEDO,cAAc,EAAGP,QAAkB,IAAK;IACtC,MAAME,GAAG,GAAGF,QAAQ,CAACG,QAAQ,CAAC,CAAC;IAC/B,MAAMJ,KAAK,GAAGH,eAAe,CAACM,GAAG,CAAC;IAClC,OAAON,eAAe,CAACM,GAAG,CAAC;IAC3BP,YAAY,CAACY,cAAc,CAACR,KAAK,EAAEC,QAAQ,CAAC;EAC9C,CAAC;EAEDQ,kBAAkB,EAAGT,KAAa,IAAK;IACrC,MAAMU,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACb,eAAe,CAAC;IACzC,KAAK,MAAMM,GAAG,IAAIO,IAAI,EAAE;MACtB,IAAIb,eAAe,CAACM,GAAG,CAAC,KAAKH,KAAK,EAAE;QAClC,OAAOH,eAAe,CAACM,GAAG,CAAC;MAC7B;IACF;IACAP,YAAY,CAACa,kBAAkB,CAACT,KAAK,CAAC;EACxC,CAAC;EAEDY,gBAAgB,EAAEA,CAACZ,KAAa,EAAEa,IAAa,KAAK;IAClDjB,YAAY,CAACkB,IAAI,CAACd,KAAK,EAAEa,IAAI,CAAC;EAChC;AACF,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const Notification: {
|
|
2
|
-
addListener: (event: string, callback: Function) => Function;
|
|
2
|
+
addListener: (event: string, callback: Function, skipCache?: boolean) => Function;
|
|
3
3
|
addListenerOnce: (event: string, callback: Function) => void;
|
|
4
4
|
removeListener: (callback: Function) => void;
|
|
5
5
|
removeAllListeners: (event: string) => void;
|
package/package.json
CHANGED
package/src/ConfigDataModel.ts
CHANGED
|
@@ -80,8 +80,8 @@ const handleVersionInfo = () => {
|
|
|
80
80
|
key = 'aov';
|
|
81
81
|
}
|
|
82
82
|
const configVersion = ConfigDataModel.get(key);
|
|
83
|
-
const onlineVersion = semverCoerce(configVersion).version;
|
|
84
83
|
if (configVersion) {
|
|
84
|
+
const onlineVersion = semverCoerce(configVersion).version;
|
|
85
85
|
// current < online,才有新版本
|
|
86
86
|
if (semverGt(onlineVersion, VersionInfo.currentVersion)) {
|
|
87
87
|
VersionInfo.latestVersion = onlineVersion;
|
package/src/Notification.ts
CHANGED
|
@@ -8,9 +8,9 @@ interface ListenerType {
|
|
|
8
8
|
const ListenerToEvent: ListenerType = {};
|
|
9
9
|
|
|
10
10
|
export const Notification = {
|
|
11
|
-
addListener: (event: string, callback: Function) => {
|
|
11
|
+
addListener: (event: string, callback: Function, skipCache?: boolean) => {
|
|
12
12
|
const key = callback.toString();
|
|
13
|
-
if (!ListenerToEvent[key]) {
|
|
13
|
+
if (skipCache || !ListenerToEvent[key]) {
|
|
14
14
|
eventEmitter.on(event, callback);
|
|
15
15
|
ListenerToEvent[key] = event;
|
|
16
16
|
}
|
package/.vscode/settings.json
DELETED
package/ios/.DS_Store
DELETED
|
Binary file
|
package/src/.DS_Store
DELETED
|
Binary file
|