@ray-js/api 1.4.50 → 1.4.52

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.
@@ -60,8 +60,8 @@ interface CreateAnimationProps {
60
60
 
61
61
  interface NodesRef {
62
62
  fields(e: any, t: any): SelectorQuery
63
- boundingClientRect(e: any): SelectorQuery
64
- scrollOffset(e: any): SelectorQuery
63
+ boundingClientRect(e?: any): SelectorQuery
64
+ scrollOffset(e?: any): SelectorQuery
65
65
  }
66
66
  interface SelectorQuery {
67
67
  select: (e: any) => NodesRef
@@ -280,7 +280,7 @@ declare namespace ty {
280
280
  export function createMapContext(mapId: string): MapContext
281
281
  export function createIpcPlayerContext(deviceId: string): IpcContext
282
282
  export function createCameraContext(): CameraContext
283
- export function createWebviewContext(): WebviewContext
283
+ export function createWebviewContext(mapId: string): WebviewContext
284
284
  export type env = {
285
285
  USER_DATA_PATH: string
286
286
  }
@@ -1,2 +1,2 @@
1
- export default function getCdnUrl(path: string): string;
2
- export declare function getCdnUrlAsync(path: string): Promise<string>;
1
+ export default function getCdnUrl(path: string, cdnMap?: Record<string, string>, region?: string): string;
2
+ export declare function getCdnUrlAsync(path: string, cdnMap?: Record<string, string>, region?: string): Promise<string>;
@@ -1,8 +1,7 @@
1
1
  export default function getCdnUrl(path) {
2
- // 暂未实现获取cdn方法,将直接返回path
3
2
  return path;
4
3
  }
5
- export function getCdnUrlAsync(path) {
4
+ export async function getCdnUrlAsync(path) {
6
5
  // 暂未实现获取cdn方法,将直接返回path
7
6
  return Promise.resolve(path);
8
7
  }
@@ -1,2 +1,2 @@
1
- export default function getCdnUrl(path: string): string;
2
- export declare function getCdnUrlAsync(path: string): Promise<string>;
1
+ export default function getCdnUrl(path: string, cdnMap?: Record<string, string>, region?: string): string;
2
+ export declare function getCdnUrlAsync(path: string, cdnMap?: Record<string, string>, region?: string): Promise<string>;
@@ -1,8 +1,7 @@
1
1
  export default function getCdnUrl(path) {
2
- // 暂未实现获取cdn方法,将直接返回path
3
2
  return path;
4
3
  }
5
- export function getCdnUrlAsync(path) {
4
+ export async function getCdnUrlAsync(path) {
6
5
  // 暂未实现获取cdn方法,将直接返回path
7
6
  return Promise.resolve(path);
8
7
  }
@@ -1,27 +1,28 @@
1
1
  type LanguageMap = {
2
2
  [key: string]: Record<string, string>;
3
3
  };
4
- export default class I18N {
4
+ export declare const updateI18n: (data: LanguageMap) => void;
5
+ export default class I18N<LanMap extends LanguageMap, Lan extends LanMap[keyof LanMap] = LanMap[keyof LanMap]> {
5
6
  [x: string]: any;
6
- strings: LanguageMap;
7
+ strings: LanMap;
7
8
  defaultLang: string;
8
9
  __language: string;
9
- constructor(props: LanguageMap);
10
+ constructor(props: LanMap);
10
11
  forceUpdateNetworkLang(productId: string): void;
11
- mergeLanguage(L1: LanguageMap, L2: LanguageMap): LanguageMap;
12
+ mergeLanguage(L1: LanguageMap, L2: LanguageMap): any;
12
13
  isZh(language: string): boolean;
13
14
  setLanguage(language: string): void;
14
15
  buildLanguage(language: string): void;
15
16
  _getBestMatchingLanguage(language: string, props: LanguageMap): any;
16
17
  formatString(str: string, ...values: any[]): string;
17
- formatValue(key: string, ...values: any[]): any;
18
+ formatValue(key: keyof Lan, ...values: any[]): any;
18
19
  _replaceAll(find: string, replace: string, str: string): string;
19
20
  getDpLang(code: string | number, value?: undefined | boolean | string): any;
20
21
  getDpName(code: string, defaultName: string): any;
21
22
  getDpsLang(key: {
22
23
  [key: string]: string;
23
24
  }): {};
24
- getLang(key: string, defaultString?: string): any;
25
+ getLang(key: keyof Lan, defaultString?: string): any;
25
26
  /**
26
27
  * 获取picker标题
27
28
  * @param {*} dpCode
@@ -1,6 +1,21 @@
1
1
  import "core-js/modules/es.string.replace.js";
2
2
  import { requestCloud, getSystemInfoSync, THING } from '../..';
3
3
  import { getBitValue } from '../utils';
4
+
5
+ /**
6
+ * I18n 智能小程序中用来获取多语言的对象
7
+ * 文档: https://developer.tuya.com/cn/miniapp/framework/app/i18n
8
+ */
9
+
10
+ export const updateI18n = () => {
11
+ // 微信小程序中使用的方法,这里不需要实现
12
+ };
13
+ function hasKey(key) {
14
+ if (typeof I18n.has === 'function') {
15
+ return I18n.has(key);
16
+ }
17
+ return I18n.t(key) !== key;
18
+ }
4
19
  export default class I18N {
5
20
  constructor(props) {
6
21
  this.strings = this.mergeLanguage(props, {});
@@ -107,7 +122,7 @@ export default class I18N {
107
122
  return res;
108
123
  }
109
124
  formatValue(key) {
110
- let res = typeof this[key] !== 'undefined' ? this[key] : I18n.t(key);
125
+ let res = this.getLang(key);
111
126
  for (let i = 0; i < (arguments.length <= 1 ? 0 : arguments.length - 1); i++) {
112
127
  res = this._replaceAll("{".concat(i, "}"), i + 1 < 1 || arguments.length <= i + 1 ? undefined : arguments[i + 1], res);
113
128
  }
@@ -129,30 +144,30 @@ export default class I18N {
129
144
  } else {
130
145
  key = "dp_".concat(code, "_").concat(value).toLowerCase();
131
146
  }
132
- return I18n.t(key) !== key ? I18n.t(key) : typeof this[key] !== 'undefined' ? this[key] : I18n.t(key);
147
+ return hasKey(key) ? I18n.t(key) : typeof this[key] !== 'undefined' ? this[key] : I18n.t(key);
133
148
  }
134
149
  getDpName(code, defaultName) {
135
150
  const key = "dp_".concat(code).toLowerCase();
136
- return I18n.t(key) !== key ? I18n.t(key) : typeof this[key] !== 'undefined' ? this[key] : defaultName;
151
+ return hasKey(key) ? I18n.t(key) : typeof this[key] !== 'undefined' ? this[key] : defaultName;
137
152
  }
138
153
  getDpsLang(key) {
139
154
  let strs = {};
140
155
  if (typeof key === 'object') {
141
156
  if (typeof key.strKey === 'string') {
142
- strs = I18n.t(key.strKey) !== key.strKey ? I18n.t(key.strKey) : typeof this[key.strKey] !== 'undefined' ? this[key.strKey] : I18n.t(key.strKey);
157
+ strs = hasKey(key.strKey) ? I18n.t(key.strKey) : typeof this[key.strKey] !== 'undefined' ? this[key.strKey] : I18n.t(key.strKey);
143
158
  } else {
144
159
  Object.keys(key).map(i => {
145
- strs[key[i]] = I18n.t(key[i]) !== key[i] ? I18n.t(key[i]) : typeof this[key[i]] !== 'undefined' ? this[key[i]] : I18n.t(key[i]);
160
+ strs[key[i]] = hasKey(key[i]) ? I18n.t(key[i]) : typeof this[key[i]] !== 'undefined' ? this[key[i]] : I18n.t(key[i]);
146
161
  return null;
147
162
  });
148
163
  }
149
164
  } else {
150
- strs = I18n.t(key) !== key ? I18n.t(key) : typeof this[key] !== 'undefined' ? this[key] : I18n.t(key);
165
+ strs = hasKey(key) ? I18n.t(key) : typeof this[key] !== 'undefined' ? this[key] : I18n.t(key);
151
166
  }
152
167
  return strs;
153
168
  }
154
169
  getLang(key, defaultString) {
155
- return I18n.t(key) !== key ? I18n.t(key) : typeof this[key] !== 'undefined' ? this[key] : typeof defaultString !== 'undefined' ? defaultString : I18n.t(key);
170
+ return hasKey(key) ? I18n.t(key) : typeof this[key] !== 'undefined' ? this[key] : typeof defaultString !== 'undefined' ? defaultString : I18n.t(key);
156
171
  }
157
172
 
158
173
  /**
@@ -165,7 +180,7 @@ export default class I18N {
165
180
  const lists = schema.range;
166
181
  lists.map(v => {
167
182
  const key = "dp_".concat(dpCode, "_").concat(v).toLowerCase();
168
- result[v] = I18n.t(key) !== key ? I18n.t(key) : typeof this[key] !== 'undefined' ? this[key] : I18n.t(key);
183
+ result[v] = hasKey(key) ? I18n.t(key) : typeof this[key] !== 'undefined' ? this[key] : I18n.t(key);
169
184
  return null;
170
185
  });
171
186
  return result;
@@ -180,11 +195,11 @@ export default class I18N {
180
195
  parseCountdown(t, power) {
181
196
  const h = parseFloat("".concat(t / 3600));
182
197
  const m = parseFloat("".concat(t / 60 - h * 60));
183
- const tHour = I18n.t('t_hour') !== 't_hour' ? I18n.t('t_hour') : typeof this.t_hour !== 'undefined' ? this.t_hour : I18n.t('t_hour');
184
- const tMinute = I18n.t('t_minute') !== 't_minute' ? I18n.t('t_minute') : typeof this.t_minute !== 'undefined' ? this.t_minute : I18n.t('t_minute');
198
+ const tHour = hasKey('t_hour') ? I18n.t('t_hour') : typeof this.t_hour !== 'undefined' ? this.t_hour : I18n.t('t_hour');
199
+ const tMinute = hasKey('t_minute') ? I18n.t('t_minute') : typeof this.t_minute !== 'undefined' ? this.t_minute : I18n.t('t_minute');
185
200
  const time = h >= 1.0 ? "".concat(Math.round(h)).concat(tHour) : "".concat(Math.round(m)).concat(tMinute);
186
201
  const key = "countdown_".concat(power ? 'on' : 'off');
187
- const str = I18n.t(key) !== key ? I18n.t(key) : typeof this[key] !== 'undefined' ? this[key] : I18n.t(key);
202
+ const str = hasKey(key) ? I18n.t(key) : typeof this[key] !== 'undefined' ? this[key] : I18n.t(key);
188
203
  return this.formatString(str, time);
189
204
  }
190
205
  getFaultStrings(schema, faultCode, faultValue) {
@@ -1,3 +1,4 @@
1
+ import { UrlObject } from 'query-string';
1
2
  type Opts = {
2
3
  deprecated?: boolean;
3
4
  namespace?: string;
@@ -7,4 +8,6 @@ export declare function factory(name: string, opts?: Opts): (option: {
7
8
  data?: any;
8
9
  }) => any;
9
10
  export declare function factoryContants(name: string, opts?: Opts): any;
11
+ export declare const parseUrl: (url: string) => import("query-string").ParsedUrl;
12
+ export declare const stringifyUrl: (object: UrlObject) => string;
10
13
  export {};
@@ -1,5 +1,6 @@
1
1
  // @ts-ignore
2
2
  import * as tyWx from '@ray-js/wechat';
3
+ import { stringifyUrl as _stringifyUrl, parseUrl as _parseUrl } from 'query-string';
3
4
  export function factory(name) {
4
5
  let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5
6
  if (/(set|get|remove|clear)+Storage(Sync)?$/.test(name)) {
@@ -38,4 +39,19 @@ export function factoryContants(name) {
38
39
  return;
39
40
  }
40
41
  return inst[name];
41
- }
42
+ }
43
+ export const parseUrl = url => {
44
+ return _parseUrl(url, {
45
+ arrayFormat: 'bracket',
46
+ // WARN: 这里的参数与微信不一致, 但是无法进行修改了, 存量的项目已经在使用
47
+ // 例如 url=encodeURIComponent('https://www.baidu.com?name=1&age=2') 在微信中不会进行 decode
48
+ // 而在涂鸦小程序上会进行 decode, 这里是需要注意的地方
49
+ decode: true
50
+ });
51
+ };
52
+ export const stringifyUrl = object => {
53
+ return _stringifyUrl(object, {
54
+ arrayFormat: 'bracket',
55
+ encode: true
56
+ });
57
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ray-js/api",
3
- "version": "1.4.50",
3
+ "version": "1.4.52",
4
4
  "description": "Ray universal api",
5
5
  "keywords": [
6
6
  "ray"
@@ -29,14 +29,14 @@
29
29
  "watch": "ray start --type=component"
30
30
  },
31
31
  "dependencies": {
32
- "@ray-js/framework": "1.4.50",
33
- "@ray-js/router": "1.4.50",
32
+ "@ray-js/framework": "1.4.52",
33
+ "@ray-js/router": "1.4.52",
34
34
  "@ray-js/wechat": "^0.2.8",
35
35
  "base64-browser": "^1.0.1",
36
36
  "query-string": "^7.1.3"
37
37
  },
38
38
  "devDependencies": {
39
- "@ray-js/cli": "1.4.50",
39
+ "@ray-js/cli": "1.4.52",
40
40
  "art-template": "^4.13.2",
41
41
  "fs-extra": "^10.1.0",
42
42
  "miniprogram-api-typings": "^3.12.2",
@@ -46,5 +46,5 @@
46
46
  "access": "public",
47
47
  "registry": "https://registry.npmjs.org"
48
48
  },
49
- "gitHead": "636bf104679f0a1e64338bec9bee9c159c9cf9d7"
49
+ "gitHead": "a33185e617507f1a5406e074e3369ce4902dc04a"
50
50
  }