@tarojs/shared 4.0.0-canary.9 → 4.0.0

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/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":["import { internalComponents } from './components'\nimport { PLATFORM_CONFIG_MAP, PLATFORM_TYPE } from './constants'\nimport { hooks } from './runtime-hooks'\n\nexport const EMPTY_OBJ: any = {}\n\nexport const EMPTY_ARR = []\n\nexport const noop = (..._: unknown[]) => {}\n\n/**\n * Boxed value.\n *\n * @typeparam T Value type.\n */\nexport interface Box<T> {\n v: T\n}\n\n/**\n * box creates a boxed value.\n *\n * @typeparam T Value type.\n * @param v Value.\n * @returns Boxed value.\n */\nexport const box = <T>(v: T) => ({ v })\n\n/**\n * box creates a boxed value.\n *\n * @typeparam T Value type.\n * @param b Boxed value.\n * @returns Value.\n */\nexport const unbox = <T>(b: Box<T>) => b.v\n\nexport function toDashed (s: string) {\n return s.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase()\n}\n\nexport function toCamelCase (s: string) {\n let camel = ''\n let nextCap = false\n for (let i = 0; i < s.length; i++) {\n if (s[i] !== '-') {\n camel += nextCap ? s[i].toUpperCase() : s[i]\n nextCap = false\n } else {\n nextCap = true\n }\n }\n return camel\n}\n\nexport const toKebabCase = function (string) {\n return string.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()\n}\n\nexport function capitalize (s: string) {\n return s.charAt(0).toUpperCase() + s.slice(1)\n}\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty\n\nexport const hasOwn = (\n val: Record<any, any>,\n key: string | symbol\n) => hasOwnProperty.call(val, key)\n\n/**\n * ensure takes a condition and throw a error if the condition fails,\n * like failure::ensure: https://docs.rs/failure/0.1.1/failure/macro.ensure.html\n * @param condition condition.\n * @param msg error message.\n */\nexport function ensure (condition: boolean, msg: string): asserts condition {\n if (!condition) {\n if (process.env.NODE_ENV !== 'production') {\n const reportIssue = '\\n如有疑问,请提交 issue 至:https://github.com/nervjs/taro/issues'\n throw new Error(msg + reportIssue)\n } else {\n throw new Error(msg)\n }\n }\n}\n\nexport function warn (condition: boolean, msg: string) {\n if (process.env.NODE_ENV !== 'production') {\n if (condition) {\n console.warn(`[taro warn] ${msg}`)\n }\n }\n}\n\nexport function queryToJson (str) {\n const dec = decodeURIComponent\n const qp = str.split('&')\n const ret = {}\n let name\n let val\n for (let i = 0, l = qp.length, item; i < l; ++i) {\n item = qp[i]\n if (item.length) {\n const s = item.indexOf('=')\n if (s < 0) {\n name = dec(item)\n val = ''\n } else {\n name = dec(item.slice(0, s))\n val = dec(item.slice(s + 1))\n }\n if (typeof ret[name] === 'string') { // inline'd type check\n ret[name] = [ret[name]]\n }\n\n if (Array.isArray(ret[name])) {\n ret[name].push(val)\n } else {\n ret[name] = val\n }\n }\n }\n return ret // Object\n}\n\nlet _uniqueId = 1\nconst _loadTime = (new Date()).getTime().toString()\n\nexport function getUniqueKey () {\n return _loadTime + (_uniqueId++)\n}\n\nconst cacheData = {}\n\nexport function cacheDataSet (key, val) {\n cacheData[key] = val\n}\n\nexport function cacheDataGet (key, delelteAfterGet?) {\n const temp = cacheData[key]\n delelteAfterGet && delete cacheData[key]\n return temp\n}\n\nexport function cacheDataHas (key) {\n return key in cacheData\n}\n\nexport function mergeInternalComponents (components) {\n Object.keys(components).forEach(name => {\n if (name in internalComponents) {\n Object.assign(internalComponents[name], components[name])\n } else {\n internalComponents[name] = components[name]\n }\n })\n return internalComponents\n}\n\nexport function getComponentsAlias (origin: typeof internalComponents) {\n const mapping = {}\n const viewAttrs = origin.View\n const extraList = {\n '#text': {},\n StaticView: viewAttrs,\n StaticImage: origin.Image,\n StaticText: origin.Text,\n PureView: viewAttrs,\n CatchView: viewAttrs\n }\n origin = { ...origin, ...extraList }\n Object.keys(origin)\n .sort((a, b) => {\n const reg = /^(Static|Pure|Catch)*(View|Image|Text)$/\n const isACommonly = reg.test(a)\n const isBCommonly = reg.test(b)\n if (isACommonly && isBCommonly) {\n return a > b ? 1 : -1\n } else if (isACommonly) {\n return -1\n } else if (isBCommonly) {\n return 1\n } else {\n return a >= b ? 1 : -1\n }\n })\n .forEach((key, num) => {\n const obj = {\n _num: String(num)\n }\n Object.keys(origin[key])\n .filter(attr => !(/^bind/.test(attr)) && !['focus', 'blur'].includes(attr))\n .sort()\n .forEach((attr, index) => {\n obj[toCamelCase(attr)] = 'p' + index\n })\n mapping[toDashed(key)] = obj\n })\n\n return mapping\n}\n\nexport function getPlatformType (platform = 'weapp', configNameOrType: string = PLATFORM_TYPE.MINI): PLATFORM_TYPE {\n if (Object.keys(PLATFORM_CONFIG_MAP).includes(platform)) {\n configNameOrType = platform\n }\n const param = PLATFORM_CONFIG_MAP[configNameOrType] || {}\n return param.type || configNameOrType\n}\n\nexport function mergeReconciler (hostConfig, hooksForTest?) {\n const obj = hooksForTest || hooks\n const keys = Object.keys(hostConfig)\n keys.forEach(key => {\n obj.tap(key, hostConfig[key])\n })\n}\n\nexport function nonsupport (api) {\n return function () {\n console.warn(`小程序暂不支持 ${api}`)\n }\n}\n\nexport function setUniqueKeyToRoute (key: string, obj) {\n const routerParamsPrivateKey = '__key_'\n const useDataCacheApis = [\n 'navigateTo',\n 'redirectTo',\n 'reLaunch',\n 'switchTab'\n ]\n\n if (useDataCacheApis.indexOf(key) > -1) {\n const url = obj.url = obj.url || ''\n const hasMark = url.indexOf('?') > -1\n const cacheKey = getUniqueKey()\n obj.url += (hasMark ? '&' : '?') + `${routerParamsPrivateKey}=${cacheKey}`\n }\n}\n\nexport function indent (str: string, size: number): string {\n return str.split('\\n')\n .map((line, index) => {\n const indent = index === 0 ? '' : Array(size).fill(' ').join('')\n return indent + line\n })\n .join('\\n')\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":["import { internalComponents } from './components'\nimport { PLATFORM_CONFIG_MAP, PLATFORM_TYPE } from './constants'\nimport { hooks } from './runtime-hooks'\n\nexport const EMPTY_OBJ: any = {}\n\nexport const EMPTY_ARR = []\n\nexport const noop = (..._: unknown[]) => {}\n\n/**\n * Boxed value.\n *\n * @typeparam T Value type.\n */\nexport interface Box<T> {\n v: T\n}\n\n/**\n * box creates a boxed value.\n *\n * @typeparam T Value type.\n * @param v Value.\n * @returns Boxed value.\n */\nexport const box = <T>(v: T) => ({ v })\n\n/**\n * box creates a boxed value.\n *\n * @typeparam T Value type.\n * @param b Boxed value.\n * @returns Value.\n */\nexport const unbox = <T>(b: Box<T>) => b.v\n\nexport function toDashed (s: string) {\n return s.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase()\n}\n\nexport function toCamelCase (s: string) {\n let camel = ''\n let nextCap = false\n for (let i = 0; i < s.length; i++) {\n if (s[i] !== '-') {\n camel += nextCap ? s[i].toUpperCase() : s[i]\n nextCap = false\n } else {\n nextCap = true\n }\n }\n return camel\n}\n\nexport const toKebabCase = function (string) {\n return string.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()\n}\n\nexport function capitalize (s: string) {\n return s.charAt(0).toUpperCase() + s.slice(1)\n}\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty\n\nexport const hasOwn = (\n val: Record<any, any>,\n key: string | symbol\n) => hasOwnProperty.call(val, key)\n\n/**\n * ensure takes a condition and throw a error if the condition fails,\n * like failure::ensure: https://docs.rs/failure/0.1.1/failure/macro.ensure.html\n * @param condition condition.\n * @param msg error message.\n */\nexport function ensure (condition: boolean, msg: string): asserts condition {\n if (!condition) {\n if (process.env.NODE_ENV !== 'production') {\n const reportIssue = '\\n如有疑问,请提交 issue 至:https://github.com/nervjs/taro/issues'\n throw new Error(msg + reportIssue)\n } else {\n throw new Error(msg)\n }\n }\n}\n\nexport function warn (condition: boolean, msg: string) {\n if (process.env.NODE_ENV !== 'production') {\n if (condition) {\n console.warn(`[taro warn] ${msg}`)\n }\n }\n}\n\nexport function queryToJson (str) {\n const dec = decodeURIComponent\n const qp = str.split('&')\n const ret = {}\n let name\n let val\n for (let i = 0, l = qp.length, item; i < l; ++i) {\n item = qp[i]\n if (item.length) {\n const s = item.indexOf('=')\n if (s < 0) {\n name = dec(item)\n val = ''\n } else {\n name = dec(item.slice(0, s))\n val = dec(item.slice(s + 1))\n }\n if (typeof ret[name] === 'string') { // inline'd type check\n ret[name] = [ret[name]]\n }\n\n if (Array.isArray(ret[name])) {\n ret[name].push(val)\n } else {\n ret[name] = val\n }\n }\n }\n return ret // Object\n}\n\nlet _uniqueId = 1\nconst _loadTime = (new Date()).getTime().toString()\n\nexport function getUniqueKey () {\n return _loadTime + (_uniqueId++)\n}\n\nconst cacheData = {}\n\nexport function cacheDataSet (key, val) {\n cacheData[key] = val\n}\n\nexport function cacheDataGet (key, delelteAfterGet?) {\n const temp = cacheData[key]\n delelteAfterGet && delete cacheData[key]\n return temp\n}\n\nexport function cacheDataHas (key) {\n return key in cacheData\n}\n\nexport function mergeInternalComponents (components) {\n Object.keys(components).forEach(name => {\n if (name in internalComponents) {\n Object.assign(internalComponents[name], components[name])\n } else {\n internalComponents[name] = components[name]\n }\n })\n return internalComponents\n}\n\nexport function getComponentsAlias (origin: typeof internalComponents) {\n const mapping = {}\n const viewAttrs = origin.View\n const extraList = {\n '#text': {},\n StaticView: viewAttrs,\n StaticImage: origin.Image,\n StaticText: origin.Text,\n PureView: viewAttrs,\n CatchView: viewAttrs\n }\n origin = { ...origin, ...extraList }\n Object.keys(origin)\n .sort((a, b) => {\n const reg = /^(Static|Pure|Catch)*(View|Image|Text)$/\n const isACommonly = reg.test(a)\n const isBCommonly = reg.test(b)\n if (isACommonly && isBCommonly) {\n return a > b ? 1 : -1\n } else if (isACommonly) {\n return -1\n } else if (isBCommonly) {\n return 1\n } else {\n return a >= b ? 1 : -1\n }\n })\n .forEach((key, num) => {\n const obj = {\n _num: String(num)\n }\n Object.keys(origin[key])\n .filter(attr => !(/^bind/.test(attr)) && !['focus', 'blur'].includes(attr))\n .sort()\n .forEach((attr, index) => {\n obj[toCamelCase(attr)] = 'p' + index\n })\n mapping[toDashed(key)] = obj\n })\n\n return mapping\n}\n\nexport function getPlatformType (platform = 'weapp', configNameOrType: string = PLATFORM_TYPE.MINI): PLATFORM_TYPE {\n if (Object.keys(PLATFORM_CONFIG_MAP).includes(platform)) {\n configNameOrType = platform\n }\n const param = PLATFORM_CONFIG_MAP[configNameOrType] || {}\n return param.type || configNameOrType\n}\n\nexport function mergeReconciler (hostConfig, hooksForTest?) {\n const obj = hooksForTest || hooks\n const keys = Object.keys(hostConfig)\n keys.forEach(key => {\n obj.tap(key, hostConfig[key])\n })\n}\n\nexport function nonsupport (api) {\n return function () {\n console.warn(`小程序暂不支持 ${api}`)\n }\n}\n\nexport function setUniqueKeyToRoute (key: string, obj) {\n const routerParamsPrivateKey = '__key_'\n const useDataCacheApis = [\n 'navigateTo',\n 'redirectTo',\n 'reLaunch',\n 'switchTab'\n ]\n\n if (useDataCacheApis.indexOf(key) > -1) {\n const url = obj.url = obj.url || ''\n const hasMark = url.indexOf('?') > -1\n const cacheKey = getUniqueKey()\n obj.url += (hasMark ? '&' : '?') + `${routerParamsPrivateKey}=${cacheKey}`\n }\n}\n\nexport function indent (str: string, size: number): string {\n return str.split('\\n')\n .map((line, index) => {\n const indent = index === 0 ? '' : Array(size).fill(' ').join('')\n return indent + line\n })\n .join('\\n')\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,8 @@
1
1
  {
2
2
  "name": "@tarojs/shared",
3
- "version": "4.0.0-canary.9",
3
+ "version": "4.0.0",
4
4
  "description": "Taro utils internal use.",
5
- "author": "yuche <i@yuche.me>",
6
- "homepage": "https://github.com/nervjs/taro/tree/master/packages/shared#readme",
5
+ "author": "O2Team",
7
6
  "license": "MIT",
8
7
  "browser": "dist/index.js",
9
8
  "main:h5": "dist/shared.esm.js",
@@ -21,20 +20,19 @@
21
20
  "bugs": {
22
21
  "url": "https://github.com/NervJS/taro/issues"
23
22
  },
23
+ "engines": {
24
+ "node": ">= 18"
25
+ },
24
26
  "devDependencies": {
25
- "@rollup/plugin-typescript": "^11.1.0",
26
- "jest": "^29.3.1",
27
- "jest-cli": "^29.3.1",
28
- "lodash": "^4.17.21",
29
- "rollup": "^3.8.1",
30
- "rollup-plugin-ts": "^3.0.2",
31
- "ts-jest": "^29.0.5",
32
- "typescript": "^4.7.4"
27
+ "lodash": "^4.17.21"
33
28
  },
34
29
  "scripts": {
30
+ "prod": "pnpm run build",
31
+ "prebuild": "pnpm run clean",
32
+ "clean": "rimraf --impl=move-remove ./dist",
35
33
  "build": "pnpm run rollup --environment NODE_ENV:production",
36
34
  "dev": "pnpm run rollup --environment NODE_ENV:development -w",
37
- "rollup": "rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript --bundleConfigAsCjs",
35
+ "rollup": "rollup --config rollup.config.ts --configPlugin typescript",
38
36
  "test": "jest"
39
37
  }
40
38
  }
@@ -1,307 +0,0 @@
1
- declare const touchEvents: {
2
- bindTouchStart: string;
3
- bindTouchMove: string;
4
- bindTouchEnd: string;
5
- bindTouchCancel: string;
6
- bindLongTap: string;
7
- };
8
- declare const animation: {
9
- animation: string;
10
- bindAnimationStart: string;
11
- bindAnimationIteration: string;
12
- bindAnimationEnd: string;
13
- bindTransitionEnd: string;
14
- };
15
- declare function singleQuote(s: string): string;
16
- declare const internalComponents: Record<string, Record<string, string>>;
17
- declare const controlledComponent: Set<string>;
18
- declare const focusComponents: Set<string>;
19
- declare const voidElements: Set<string>;
20
- declare const nestElements: Map<string, number>;
21
- declare enum PLATFORM_TYPE {
22
- MINI = "mini",
23
- WEB = "web",
24
- RN = "rn",
25
- HARMONY = "harmony",
26
- QUICK = "quickapp"
27
- }
28
- declare const PLATFORM_CONFIG_MAP: {
29
- h5: {
30
- type: PLATFORM_TYPE;
31
- };
32
- harmony: {
33
- type: PLATFORM_TYPE;
34
- };
35
- mini: {
36
- type: PLATFORM_TYPE;
37
- };
38
- rn: {
39
- type: PLATFORM_TYPE;
40
- };
41
- quickapp: {
42
- type: PLATFORM_TYPE;
43
- };
44
- };
45
- type EventName = string | symbol;
46
- type EventCallbacks = Record<EventName, Record<"next" | "tail", unknown>>;
47
- declare class Events {
48
- protected callbacks?: EventCallbacks;
49
- static eventSplitter: string; // Note: Harmony ACE API 8 开发板不支持使用正则 split 字符串 /\s+/
50
- constructor(opts?: any);
51
- on(eventName: EventName, callback: (...args: any[]) => void, context?: any): this;
52
- once(events: EventName, callback: (...r: any[]) => void, context?: any): this;
53
- off(events?: EventName, callback?: (...args: any[]) => void, context?: any): this;
54
- trigger(events: EventName, ...args: any[]): this;
55
- }
56
- declare function isString(o: unknown): o is string;
57
- declare function isUndefined(o: unknown): o is undefined;
58
- declare function isNull(o: unknown): o is null;
59
- declare function isObject<T>(o: unknown): o is T;
60
- declare function isBoolean(o: unknown): o is boolean;
61
- declare function isFunction(o: unknown): o is (...args: any[]) => any;
62
- declare function isNumber(o: unknown): o is number;
63
- declare function isBooleanStringLiteral(o: unknown): o is string;
64
- declare const isArray: (arg: any) => arg is any[];
65
- declare const isWebPlatform: () => boolean;
66
- type IObject = Record<string, any>;
67
- interface IProcessApisIOptions {
68
- noPromiseApis?: Set<string>;
69
- needPromiseApis?: Set<string>;
70
- handleSyncApis?: (key: string, global: IObject, args: any[]) => any;
71
- transformMeta?: (key: string, options: IObject) => {
72
- key: string;
73
- options: IObject;
74
- };
75
- modifyApis?: (apis: Set<string>) => void;
76
- modifyAsyncResult?: (key: string, res: any) => void;
77
- isOnlyPromisify?: boolean;
78
- [propName: string]: any;
79
- }
80
- interface IApiDiff {
81
- [key: string]: {
82
- /** API重命名 */
83
- alias?: string;
84
- options?: {
85
- /** API参数键名修改 */
86
- change?: {
87
- old: string;
88
- new: string;
89
- }[];
90
- /** API参数值修改 */
91
- set?: {
92
- key: string;
93
- value: ((options: Record<string, any>) => unknown) | unknown;
94
- }[];
95
- };
96
- };
97
- }
98
- declare function processApis(taro: any, global: any, config?: IProcessApisIOptions): void;
99
- // 字符串简写
100
- declare const enum Shortcuts {
101
- Container = "container",
102
- Childnodes = "cn",
103
- Text = "v",
104
- NodeType = "nt",
105
- NodeName = "nn",
106
- // Attrtibutes
107
- Style = "st",
108
- Class = "cl",
109
- Src = "src"
110
- }
111
- declare const EMPTY_OBJ: any;
112
- declare const EMPTY_ARR: never[];
113
- declare const noop: (..._: unknown[]) => void;
114
- /**
115
- * Boxed value.
116
- *
117
- * @typeparam T Value type.
118
- */
119
- interface Box<T> {
120
- v: T;
121
- }
122
- /**
123
- * box creates a boxed value.
124
- *
125
- * @typeparam T Value type.
126
- * @param v Value.
127
- * @returns Boxed value.
128
- */
129
- declare const box: <T>(v: T) => {
130
- v: T;
131
- };
132
- /**
133
- * box creates a boxed value.
134
- *
135
- * @typeparam T Value type.
136
- * @param b Boxed value.
137
- * @returns Value.
138
- */
139
- declare const unbox: <T>(b: Box<T>) => T;
140
- declare function toDashed(s: string): string;
141
- declare function toCamelCase(s: string): string;
142
- declare const toKebabCase: (string: any) => any;
143
- declare function capitalize(s: string): string;
144
- declare const hasOwn: (val: Record<any, any>, key: string | symbol) => any;
145
- /**
146
- * ensure takes a condition and throw a error if the condition fails,
147
- * like failure::ensure: https://docs.rs/failure/0.1.1/failure/macro.ensure.html
148
- * @param condition condition.
149
- * @param msg error message.
150
- */
151
- declare function ensure(condition: boolean, msg: string): asserts condition;
152
- declare function warn(condition: boolean, msg: string): void;
153
- declare function queryToJson(str: any): {};
154
- declare function getUniqueKey(): string;
155
- declare function cacheDataSet(key: any, val: any): void;
156
- declare function cacheDataGet(key: any, delelteAfterGet?: any): any;
157
- declare function cacheDataHas(key: any): boolean;
158
- declare function mergeInternalComponents(components: any): Record<string, Record<string, string>>;
159
- declare function getComponentsAlias(origin: typeof internalComponents): {};
160
- declare function getPlatformType(platform?: string, configNameOrType?: string): PLATFORM_TYPE;
161
- declare function mergeReconciler(hostConfig: any, hooksForTest?: any): void;
162
- declare function nonsupport(api: any): () => void;
163
- declare function setUniqueKeyToRoute(key: string, obj: any): void;
164
- declare function indent(str: string, size: number): string;
165
- // Note: @tarojs/runtime 不依赖 @tarojs/taro, 所以不能改为从 @tarojs/taro 引入 (可能导致循环依赖)
166
- type TFunc = (...args: any[]) => any;
167
- declare enum HOOK_TYPE {
168
- SINGLE = 0,
169
- MULTI = 1,
170
- WATERFALL = 2
171
- }
172
- interface Hook {
173
- type: HOOK_TYPE;
174
- initial?: TFunc | null;
175
- }
176
- interface MiniLifecycle {
177
- app: [
178
- string,
179
- /** onLaunch */ string,
180
- /** onShow */ string /** onHide */
181
- ];
182
- page: [
183
- string,
184
- /** onLoad */ string,
185
- /** onUnload */ string,
186
- /** onReady */ string,
187
- /** onShow */ string,
188
- /** onHide */ string[],
189
- /** others */ string[] /** side-effects */
190
- ];
191
- component: [
192
- string,
193
- /** attached */ string
194
- ];
195
- }
196
- interface MiniElementData {
197
- [Shortcuts.Childnodes]?: MiniData[];
198
- [Shortcuts.NodeName]: string;
199
- [Shortcuts.Class]?: string;
200
- [Shortcuts.Style]?: string;
201
- uid?: string;
202
- sid: string;
203
- [key: string]: unknown;
204
- }
205
- interface MiniTextData {
206
- [Shortcuts.Text]: string;
207
- [Shortcuts.NodeName]: string;
208
- }
209
- type MiniData = MiniElementData | MiniTextData;
210
- interface UpdatePayload {
211
- path: string;
212
- value: string | boolean | (() => MiniData | MiniData[]);
213
- }
214
- type Target = Record<string, unknown> & {
215
- dataset: Record<string, unknown>;
216
- id: string;
217
- };
218
- interface MpEvent {
219
- type: string;
220
- detail: Record<string, unknown>;
221
- target: Target;
222
- currentTarget: Target;
223
- }
224
- declare function TaroHook(type: HOOK_TYPE, initial?: TFunc): Hook;
225
- declare class TaroHooks<T extends Record<string, TFunc> = any> extends Events {
226
- hooks: Record<keyof T, Hook>;
227
- constructor(hooks: Record<keyof T, Hook>, opts?: any);
228
- private tapOneOrMany;
229
- tap<K extends Extract<keyof T, string>>(hookName: K, callback: T[K] | T[K][]): void;
230
- call<K extends Extract<keyof T, string>>(hookName: K, ...rest: Parameters<T[K]>): ReturnType<T[K]> | undefined;
231
- isExist(hookName: string): boolean;
232
- }
233
- type ITaroHooks = {
234
- /** 小程序端 App、Page 构造对象的生命周期方法名称 */
235
- getMiniLifecycle: (defaultConfig: MiniLifecycle) => MiniLifecycle;
236
- getMiniLifecycleImpl: () => MiniLifecycle;
237
- /** 解决 React 生命周期名称的兼容问题 */
238
- getLifecycle: (instance: any, lifecyle: any) => TFunc | Array<TFunc> | undefined;
239
- /** 提供Hook,为不同平台提供修改生命周期配置 */
240
- modifyRecursiveComponentConfig: (defaultConfig: MiniLifecycle, options: any) => any;
241
- /** 解决百度小程序的模版语法问题 */
242
- getPathIndex: (indexOfNode: number) => string;
243
- /** 解决支付宝小程序分包时全局作用域不一致的问题 */
244
- getEventCenter: (EventsClass: typeof Events) => Events;
245
- isBubbleEvents: (eventName: string) => boolean;
246
- getSpecialNodes: () => string[];
247
- /** 解决 Vue2 布尔值属性值的设置问题 */
248
- onRemoveAttribute: (element: any, qualifiedName: string) => boolean;
249
- /** 用于把 React 同一事件回调中的所有 setState 合并到同一个更新处理中 */
250
- batchedEventUpdates: (cb: TFunc) => void;
251
- /** 用于处理 React 中的小程序生命周期 hooks */
252
- mergePageInstance: (prev: any, next: any) => void;
253
- /** 用于修改传递给小程序 Page 构造器的对象 */
254
- modifyPageObject: (config: Record<any, any>) => void;
255
- /** H5 下拉刷新 wrapper */
256
- createPullDownComponent: (el: any, path: string, framework: any, customWrapper?: any, stampId?: string) => void;
257
- /** H5 获取原生 DOM 对象 */
258
- getDOMNode: (instance: any) => any;
259
- /**
260
- * @todo: multi
261
- * 修改 Taro DOM 序列化数据
262
- **/
263
- modifyHydrateData: (data: Record<string, any>, node: any) => void;
264
- /**
265
- * 自定义处理 Taro DOM 序列化数据,如使其脱离 data 树
266
- */
267
- transferHydrateData: (data: Record<string, any>, element: any, componentsAlias: Record<string, any>) => void;
268
- /**
269
- * @todo: multi
270
- * 修改 Taro DOM 序列化数据
271
- **/
272
- modifySetAttrPayload: (element: any, key: string, payload: UpdatePayload, componentsAlias: Record<string, any>) => void;
273
- /**
274
- * @todo: multi
275
- * 修改 Taro DOM 序列化数据
276
- **/
277
- modifyRmAttrPayload: (element: any, key: string, payload: UpdatePayload, componentsAlias: Record<string, any>) => void;
278
- /**
279
- * @todo: multi
280
- * 调用 addEventListener 时触发
281
- **/
282
- onAddEvent: (type: string, handler: any, options: any, node: any) => void;
283
- /** 用于修改小程序原生事件对象 */
284
- modifyMpEvent: (event: MpEvent) => void;
285
- modifyMpEventImpl: (event: MpEvent) => void;
286
- /** 用于修改 Taro DOM 事件对象 */
287
- modifyTaroEvent: (event: any, element: any) => void;
288
- dispatchTaroEvent: (event: any, element: any) => void;
289
- dispatchTaroEventFinish: (event: any, element: any) => void;
290
- modifyTaroEventReturn: (node: any, event: any, returnVal: any) => any;
291
- modifyDispatchEvent: (event: any, element: any) => void;
292
- injectNewStyleProperties: (styleProperties: string[]) => void;
293
- initNativeApi: (taro: Record<string, any>) => void;
294
- patchElement: (node: any) => void;
295
- /** 解 Proxy */
296
- proxyToRaw: (proxyObj: any) => Record<any, any>;
297
- /** 元素增加事件监听钩子 */
298
- modifyAddEventListener: (element: any, sideEffect: boolean, getComponentsAlias: () => Record<string, any>) => void;
299
- /** 元素删除事件监听钩子 */
300
- modifyRemoveEventListener: (element: any, sideEffect: boolean, getComponentsAlias: () => Record<string, any>) => void;
301
- /** 鸿蒙用于监听 memory 等级的钩子 */
302
- getMemoryLevel: (level: {
303
- level: number;
304
- }) => void;
305
- };
306
- declare const hooks: TaroHooks<ITaroHooks>;
307
- export { touchEvents, animation, singleQuote, internalComponents, controlledComponent, focusComponents, voidElements, nestElements, PLATFORM_TYPE, PLATFORM_CONFIG_MAP, Events, isString, isUndefined, isNull, isObject, isBoolean, isFunction, isNumber, isBooleanStringLiteral, isArray, isWebPlatform, IApiDiff, processApis, HOOK_TYPE, TaroHook, TaroHooks, hooks, Shortcuts, EMPTY_OBJ, EMPTY_ARR, noop, Box, box, unbox, toDashed, toCamelCase, toKebabCase, capitalize, hasOwn, ensure, warn, queryToJson, getUniqueKey, cacheDataSet, cacheDataGet, cacheDataHas, mergeInternalComponents, getComponentsAlias, getPlatformType, mergeReconciler, nonsupport, setUniqueKeyToRoute, indent };