@tmsfe/tms-core 0.0.94 → 0.0.96

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,6 +1,8 @@
1
1
  /* eslint-disable valid-jsdoc */
2
2
  /**
3
3
  * @copyright 2021-present, Tencent, Inc. All rights reserved.
4
+ * @module: runtime-login
5
+ * @desc: 登录相关
4
6
  * @brief login.js 用于维护 runtime 框架的用户登录流程,获取用户的登录的可信凭证.
5
7
  * runtime初始化时,会调用登录流程,基于runtime的后续业务代码,不必关注用户的登录状态,
6
8
  * 当前,登录流程仅支持【腾讯出行服务小程序】,我们计划支持出行服务公众号的H5开发,基于runtime的
@@ -69,11 +71,15 @@ const loginFn = async () => {
69
71
  * @returns { object } resData 用户信息
70
72
  */
71
73
  async function login() {
72
- let userData = {};
74
+ let userData: {
75
+ errCode?: any,
76
+ resData?: any
77
+ } = {};
73
78
 
74
79
  try {
75
80
  const code = await getCode();
76
81
 
82
+ // @ts-ignore
77
83
  const { trafficEntrence: registerSource, scene: sceneId } = getOpenAppTrafficData();
78
84
 
79
85
  userData = await getApp().tms.createRequest({ withAuth: false }).post('user/login', { code, registerSource, sceneId });
@@ -204,9 +210,24 @@ const getPhone = () => getApp().tms.createRequest({ withAuth: true }).post('user
204
210
  return Promise.reject(res);
205
211
  });
206
212
 
207
-
208
213
  /**
209
- * 绑定手机号
214
+ * @description 绑定手机号
215
+ * @param {Object} data params 加密数据对象
216
+ * @param {string} data.encryptedData button组件bindgetphonenumber事件返回的encryptedData字段
217
+ * @param {string} data.iv button组件bindgetphonenumber事件返回的iv字段
218
+ * @returns {Object} data 绑定结果回调
219
+ * @returns {number} data.success 是否绑定成功 boolean类型
220
+ * @returns {number} data.phone 绑定成功时的手机号,失败则为空
221
+ * @returns {number} data.errMsg 绑定结果描述信息
222
+ * @example
223
+ * const { tms } = getApp({ allowDefault: true });
224
+ * const res = await tms.registerPhone({ encryptedData, iv })
225
+ * if(res.success) {
226
+ * console.log('phone', res.phone)
227
+ * } else {
228
+ * // 注册失败处理逻辑
229
+ * console.log(res.errMsg)
230
+ * }
210
231
  */
211
232
  async function registerPhone({ encryptedData, iv }: {encryptedData: string, iv: string}): Promise<PhoneRegisterResult> {
212
233
  try {
package/src/storage.js CHANGED
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @desc: 处理localstorage相关函数
3
+ */
4
+
1
5
  /**
2
6
  * 保存数据到localstorage
3
7
  * @param key
@@ -17,7 +21,7 @@ function setItem(key, data) {
17
21
  * 从localstorage取数据
18
22
  * @param key
19
23
  * @param defaultValue wx接口报错时返回默认值
20
- * @returns {null|any}
24
+ * @returns {any}
21
25
  */
22
26
  function getItem(key, defaultValue = null) {
23
27
  try {
@@ -60,10 +64,10 @@ function cleanTask() {
60
64
  }
61
65
 
62
66
  /**
63
- * 缓存组件或页面的缓存data
64
- * @param key
65
- * @param version 低于该版本号的缓存会被异步清除
66
- * @param data
67
+ * 缓存组件或页面的缓存data,会缓存到localStorage里
68
+ * @param {string} key localStorage的唯一标志
69
+ * @param {string} version 版本号,低于该版本号的缓存会被异步清除
70
+ * @param {object} data 页面缓存的数据
67
71
  * @returns {boolean}
68
72
  */
69
73
  function setCacheData(key, version, data) {
@@ -81,10 +85,10 @@ function setCacheData(key, version, data) {
81
85
 
82
86
  /**
83
87
  * 获取组件或页面的缓存data
84
- * @param key
85
- * @param version
86
- * @param defaultData
87
- * @returns {*|null}
88
+ * @param {string} key localStorage的唯一标志
89
+ * @param {string} version 版本号
90
+ * @param {object} defaultData 接口报错时返回默认值
91
+ * @returns {any}
88
92
  */
89
93
  function getCacheData(key, version, defaultData = null) {
90
94
  const str = `${key}_v${version}`;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @desc: 字符串处理相关函数
3
+ */
4
+
1
5
  /**
2
6
  * 字符串截断,处理时按可见字符长度进行截断
3
7
  * 可见字符的含义是指:字母、数字、汉字、表情等均等价于一个字符
@@ -115,13 +119,12 @@ const isValidPlate = (plate) => {
115
119
  * 四舍五入,并返回格式化的字符串
116
120
  * 支持保留n位小数,n>=0,如 roundStr(1.325, 2)=1.33
117
121
  * 支持格式化字符串时取出末尾的0,如roundStr(1.109, 2, true)=1.1
118
- * @param {any} x 原数字
119
- * 如果n不是合法数字或者无法转换为合法数字,roundStr结果返回''
122
+ * @param {any} x 原数字, 如果n不是合法数字或者无法转换为合法数字,roundStr结果返回''
120
123
  * @param {any} n 保留几位小数,默认0
121
- * 如果n不是合法数字或者无法转换为合法数字,roundStr结果返回''
122
- * 如果n小于0,roundStr结果返回''
123
- * 如果n的值包含小数部分,roundStr处理时只关注n的整数部分值
124
124
  * @param {boolean} removeTrailingZero 是否移除字符串末尾的无效数字0
125
+ 1. 如果n不是合法数字或者无法转换为合法数字,roundStr结果返回''
126
+ 2. 如果n小于0,roundStr结果返回''
127
+ 3. 如果n的值包含小数部分,roundStr处理时只关注n的整数部分值
125
128
  * @returns {string} 返回四舍五入后的字符串,异常情况下返回空字符串''
126
129
  */
127
130
  const roundStr = (x, n = 2, removeTrailingZero = false) => {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 本文件负责对小程序调用wx同步方法的管理
2
+ * @desc: 本文件负责对小程序调用wx同步方法的管理
3
3
  */
4
4
  let systemInfo = null; // 系统信息。
5
5
  let launchOptions = null; // 启动参数
@@ -25,7 +25,7 @@ const getSystemInfoSync = () => {
25
25
 
26
26
  /**
27
27
  * 重置系统信息,仅用于单元测试
28
- * @returns {undefined}
28
+ * @returns {void}
29
29
  */
30
30
  const resetSystemInfoSync = () => {
31
31
  systemInfo = null;
@@ -66,7 +66,7 @@ const getPlatform = () => {
66
66
  };
67
67
 
68
68
  /**
69
- * 获取字符串类型的启动参数
69
+ * 获取字符串类型的启动参数, 同wx.getLaunchOptionsSync进行JSON.stringify
70
70
  * @returns {String} 序列化的参数字符串
71
71
  */
72
72
  const getLaunchParamOfString = () => {
package/src/timeUtils.js CHANGED
@@ -1,10 +1,6 @@
1
1
  /**
2
- * Tencent Inc. All Rights Reserved.
3
- * @author:
4
- * Created:
5
- * Description: format time.
6
- * History:
7
- * 2017-07-26 @davislu modify.
2
+ * @desc: 时间处理相关函数
3
+ * @author:2017-07-26 @davislu modify.
8
4
  */
9
5
 
10
6
  import { round } from './numUtils';
@@ -14,17 +10,16 @@ import { roundStr } from './stringUtils';
14
10
  * 将时间段进行聚合计算,得出不同时间单位的计数值,例如:3601秒 -> { hour: 1, minute: 0, second: 1 },即:1小时0分1秒
15
11
  * @param {Number} seconds 时间段的总秒数
16
12
  * @param {String} maxUnit 最大计数单位:second-秒,minute-分,hour-小时,day-天,month-月,year-年;默认 year
17
- * 单位大小:year > Month > day > hour > month > second
18
13
  * @param {String} minUnit 最小计数单位:second-秒,minute-分,hour-小时,day-天,month-月,year-年;默认 second
19
14
  * @param {Number} decimal 有不足最小单位数值的情况下,保留几位小数;默认 2
20
- * @returns {Object} result 各计数单位下的数值:
21
- * {Number} result.year - 年; 当maxUnit < 'year' 时,此字段永远为0;此字段为-1时,表示 seconds 参数非法 或 minUnit > maxUnit等异常情况
22
- * {Number} result.month - 月; 当maxUnit < 'month' 时,此字段永远为0;
23
- * {Number} result.day - 天; 当maxUnit < 'day' 时,此字段永远为0;
24
- * {Number} result.hour - 小时;当maxUnit < 'hour' 时,此字段永远为0;
25
- * {Number} result.minute - 分钟;当maxUnit < 'minute' 时,此字段永远为0;
26
- * {Number} result.second - 秒;
27
- * {Number} result.decimal - 不足最小单位的部分,具体含义与 minUnit 参数相关;例如 minUnit = day 时,此字段表示不足1天的部分
15
+ * @returns {Object} result 以下是各计数单位下的数值:
16
+ * @returns {Number} result.year - 年; 当maxUnit < 'year' 时,此字段永远为0;此字段为-1时,表示 seconds 参数非法 或 minUnit > maxUnit等异常情况
17
+ * @returns {Number} result.month - 月; 当maxUnit < 'month' 时,此字段永远为0;
18
+ * @returns {Number} result.day - 天; 当maxUnit < 'day' 时,此字段永远为0;
19
+ * @returns {Number} result.hour - 小时;当maxUnit < 'hour' 时,此字段永远为0;
20
+ * @returns {Number} result.minute - 分钟;当maxUnit < 'minute' 时,此字段永远为0;
21
+ * @returns {Number} result.second - 秒;
22
+ * @returns {Number} result.decimal - 不足最小单位的部分,具体含义与 minUnit 参数相关;例如 minUnit = day 时,此字段表示不足1天的部分
28
23
  */
29
24
  const groupTimeDuration = (seconds, maxUnit = 'year', minUnit = 'second', decimal = 2) => {
30
25
  // 时间参数(seconds)检查
@@ -65,10 +60,9 @@ const groupTimeDuration = (seconds, maxUnit = 'year', minUnit = 'second', decima
65
60
  * 将时间段进行聚合计算并格式化,得出方便人阅读的文案,例如:3601秒 -> 1小时0分1秒
66
61
  * @param {Number} seconds 时间段的总秒数
67
62
  * @param {String} maxUnit 最大计数单位:second-秒,minute-分,hour-小时,day-天,month-月,year-年;默认 year
68
- * 单位大小:year > Month > day > hour > month > second
69
63
  * @param {String} minUnit 最小计数单位:second-秒,minute-分,hour-小时,day-天,month-月,year-年;默认 second
70
64
  * @param {Number} decimal 有不足最小单位数值的情况下,保留几位小数;默认 2
71
- * @returns {String} 示例见测试用例
65
+ * @returns {String}
72
66
  */
73
67
  const formatTimeDuration = (seconds, maxUnit = 'year', minUnit = 'second', decimal = 2) => {
74
68
  const result = groupTimeDuration(seconds, maxUnit, minUnit, decimal);
@@ -89,9 +83,9 @@ const formatTimeDuration = (seconds, maxUnit = 'year', minUnit = 'second', decim
89
83
 
90
84
  /**
91
85
  * @function
92
- * @description 格式化时间
86
+ * @description 格式化时间,>24小时的显示 【x天】;<1小时的显示 【x分钟】;<24小时&>1小时的显示 【x小时y分钟】
93
87
  * @param {Number} seconds 秒数
94
- * @returns {String} 格式化的时间 -> 2小时47分钟或者12天
88
+ * @returns {String} 格式化的时间
95
89
  */
96
90
  const formatTime = (seconds) => {
97
91
  if (typeof seconds !== 'number') return seconds;
@@ -109,7 +103,7 @@ const formatTime = (seconds) => {
109
103
 
110
104
  /**
111
105
  * @function
112
- * @description 将秒数格式化为x天y小时z分钟
106
+ * @description 将秒数格式化: 秒数多于1天显示【x天y小时z分钟】;秒数小于1小时【x分钟】;秒数介于1天和1小时之间显示【x小时y分钟】
113
107
  * @param {Number} seconds 秒数
114
108
  * @returns {String} 格式化后的文案
115
109
  */
@@ -212,17 +206,17 @@ const dateToString = (date, withTime = false, withSeconds = false, join = '-') =
212
206
  /**
213
207
  * 将时间字符串转换为Date对象
214
208
  * @param {String} str 时间字符串,如:2022-03-24 20:02:05
215
- * 支持对日期完整但时间部分缺失的情况进行处理,如:
216
- * 2022-03-24 20:02 -> Date(1648123320000)
217
- * 2022-03-24 20: -> Date(1648123200000)
218
- * 2022-03-24 20 -> Date(1648123200000)
219
- * 2022-03-24 -> Date(1648051200000)
220
- * 小于10的数字可以省略0:
221
- * 2022-3-24 20:2 -> Date(1648123320000)
222
- * 支持任意分割符,如:
223
- * 2022年03月24日 20时02分 -> Date(1648123320000)
224
- * 2022/03/24 20:02:05 -> Date(1648123325000)
225
- * @returns {Date|Null} 时间对象;转换失败时返回null
209
+ 1. 支持对日期完整但时间部分缺失的情况进行处理,如:
210
+ 2. 2022-03-24 20:02 -> Date(1648123320000)
211
+ 3. 2022-03-24 20: -> Date(1648123200000)
212
+ 4. 2022-03-24 20 -> Date(1648123200000)
213
+ 5. 2022-03-24 -> Date(1648051200000)
214
+ 6. 小于10的数字可以省略0:
215
+ 7. 2022-3-24 20:2 -> Date(1648123320000)
216
+ 8. 支持任意分割符,如:
217
+ 9. 2022年03月24日 20时02分 -> Date(1648123320000)
218
+ 10. 2022/03/24 20:02:05 -> Date(1648123325000)
219
+ * @returns {Date} 时间对象;转换失败时返回null
226
220
  */
227
221
  const parseDateTime = (str) => {
228
222
  const arr = new RegExp(/(\d{4})[^\d]+(\d{1,2})[^\d]+(\d{1,2})(.*)/, 'g').exec(str); // 分割日期和时间
@@ -0,0 +1,12 @@
1
+ const path = require('path');
2
+ function resolve(dir) {
3
+ return path.resolve(__dirname, dir);
4
+ }
5
+
6
+ module.exports = {
7
+ [resolve('dist/src')]: {
8
+ title: 'tms-core',
9
+ exclude: '/docs\\/|node_modules|\\.test\\.js|utils|tmsuiUtils/',
10
+ outputPath: '../../prod/tmsapidocs/docs/tmscore/api.md',
11
+ },
12
+ };
package/tsconfig.json CHANGED
@@ -1,28 +1,30 @@
1
1
  {
2
- "compilerOptions": {
3
- "sourceMap": false,
4
- "target": "esnext",
5
- "module": "esnext",
6
- "moduleResolution": "node",
7
- "allowJs": true,
8
- "strict": true,
9
- "declarationMap": false,
10
- "noUnusedLocals": true,
11
- "experimentalDecorators": true,
12
- "resolveJsonModule": true,
13
- "esModuleInterop": true,
14
- "removeComments": false,
15
- "jsx": "preserve",
16
- "lib": ["esnext", "dom"],
17
- "rootDir": ".",
18
- "typeRoots": [
19
- "./node_modules/miniprogram-api-typings"
20
- ],
21
- "paths": {
22
- }
23
- },
24
- "include": [
25
- "src"
26
- ]
27
- }
28
-
2
+ "compilerOptions": {
3
+ "sourceMap": false,
4
+ "target": "esnext",
5
+ "module": "esnext",
6
+ "moduleResolution": "node",
7
+ "allowJs": true,
8
+ "strict": false,
9
+ "declarationMap": false,
10
+ "noUnusedLocals": false,
11
+ "experimentalDecorators": true,
12
+ "resolveJsonModule": true,
13
+ "esModuleInterop": true,
14
+ "removeComments": false,
15
+ "jsx": "preserve",
16
+ "lib": ["esnext"],
17
+ "rootDir": ".",
18
+ "types": [
19
+ "miniprogram-api-typings"
20
+ ],
21
+ "outDir": "dist",
22
+ "paths": {
23
+ }
24
+ },
25
+ "include": [
26
+ "src/**/*.js",
27
+ "src/**/*.ts"
28
+ ]
29
+ }
30
+