Runtime API
createApi(adapters, options)
初始化 MorJS API,默认会自动初始化一个全局的 mor api
adapters
: 初始化选项adapters[x].initApi
: 初始化接口方法, 接受 apiOptions 作为参数
options
: 初始化选项, 默认为 {}
import { createApi } from '@morjs/api'
createApi([], {})
mor(adapters, options)
初始化 mor 接口
registerFactory(factoryName, factoryFunction)
注册接口初始化工厂函数
factoryName
: 接口初始化工厂函数名称factoryFunction
: 接口初始化工厂函数
import { registerFactory } from '@morjs/api'
registerFactory(factoryName, factoryFunction)
init(options)
初始化一个新的 mor api 实例
options
: 选项
import { init } from '@morjs/api'
init(options)
Base64.encode(this, input)
对输入的值进行 encode 编码
this
: IBase64 对象本省input
: 需要进行 encode 编码的字符串
import { Base64 } from '@morjs/api'
Base64.encode(this, input)
Base64.decode(this, input)
对输入的值进行 decode 解码
this
: IBase64 对象本省input
: 需要进行 decode 解码的字符串
import { Base64 } from '@morjs/api'
Base64.decode(this, input)
Base64.utf8Encode(this, input)
对输入的值进行 utf8 格式的 encode 编码
this
: IBase64 对象本省input
: 需要进行 utf8 格式的 encode 编码的字符串
import { Base64 } from '@morjs/api'
Base64.utf8Encode(this, input)
Base64.utf8Decode(this, input)
对输入的值进行 utf8 格式的 decode 解码
this
: IBase64 对象本省input
: 需要进行 utf8 格式的 decode 解码的字符串
import { Base64 } from '@morjs/api'
Base64.utf8Decode(this, input)
getEnv()
获取小程序运行环境
import { getEnv } from '@morjs/api'
const env = getEnv()
getEnvDesc()
获取当前环境描述信息
import { getEnvDesc } from '@morjs/api'
const envDesc = getEnvDesc()
getGlobalObject()
获取全局对象,如支付宝的 my,微信的 wx
import { getGlobalObject } from '@morjs/api'
const global = getGlobalObject()
createEvent(reason, all)
创建 Emitter 实例
reason
: 事件创建原因, 用于统计all
: 自定义 Map 用于存储事件名称和事件处理函数
import { createEvent } from '@morjs/api'
createEvent(reason, all)
getAllEvents()
获取所有 event 实例
import { getAllEvents } from '@morjs/api'
getAllEvents()
event
全局默认 Event
createHooks(reason)
创建 hooks 对象
reason
: Hooks 创建原因
import { createHooks } from '@morjs/api'
createHooks(reason)
getAllHooks()
获取所有 hooks
import { getAllHooks } from '@morjs/api'
getAllHooks()
hooks
获取全局共享属性,用于作为原子化的兜底实现
applyPlugins(hooks, plugins)
应用插件
hooks
: Hooksplugins
: 插件列表
import { applyPlugins } from '@morjs/api'
applyPlugins(hooks, plugins)
applySolutions(hooks, solutions)
应用 Solutions
hooks
: Hookssolutions
: 插件集列表
import { applySolutions } from '@morjs/api'
applySolutions(hooks, solutions)
logger.warn(msg)
在控制台打印 warn
类型的日志输出
msg
: 显示日志的输出内容
import { logger } from '@morjs/api'
logger.warn(msg)
logger.log(msg)
在控制台打印 log
类型的日志输出
msg
: 显示日志的输出内容
import { logger } from '@morjs/api'
logger.log(msg)
logger.error(msg)
在控制台打印 error
类型的日志输出
msg
: 显示日志的输出内容
import { logger } from '@morjs/api'
logger.error(msg)
logger.info(msg)
在控制台打印 info
类型的日志输出
msg
: 显示日志的输出内容
import { logger } from '@morjs/api'
logger.info(msg)
logger.debug(msg)
在控制台打印 debug
类型的日志输出
msg
: 显示日志的输出内容,仅在开启 debug 时显示
import { logger } from '@morjs/api'
logger.debug(msg)
logger.deprecated(msg)
在控制台打印一段 warn
类型的 deprecate 日志输出
import { logger } from '@morjs/api'
logger.deprecated(msg)
logger.time(label) & logger.timeEnd(label)
耗时性能日志输出, 需要 logger.time()
配合 logger.timeEnd()
一起使用
label
: 必填string
类型,打印同一label
值从开始到结束之间的耗时,单位 ms
import { logger } from '@morjs/api'
logger.time(label)
logger.timeEnd(label)
ModuleManager
模块管理,用于获取当前小程序中的插件、分包和模块等
asArray(arr)
确保一个对象是数组
- 如果 对象 == null 则返回空数组
- 如果 对象不是数组 则返回包含该对象的数组
- 如果 对象是数组 直接返回
arr
: 需要转换为数组的参数
import { asArray } from '@morjs/api'
asArray(arr)
compose(stack)
将多个函数合并为一个函数
stack
: 函数堆栈
import { compose } from '@morjs/api'
compose(stack)
generateId()
生成 ID
import { generateId } from '@morjs/api'
generateId()
getSharedProperty(propName, context)
获取全局共享属性,用于作为原子化的兜底实现
- 首先查找上下文中对应的属性
- 如果不存在,则查找 getApp 中的
- 如果不存在,则查找 小程序环境的 globalObject, 如 my 中是否存在
- 如果不存在,则使用 SHARED 作为兜底
propName
: 共享属性名称context
: 当前执行环境的上下文
import { getSharedProperty } from '@morjs/api'
getSharedProperty(propName, context)
hasOwnProperty(obj, propertyName)
对象中是否包含对应的属性
obj
: 对象propertyName
: 属性名称
import { hasOwnProperty } from '@morjs/api'
hasOwnProperty(obj, propertyName)
transformApis(mor, global, config, installAllGlobalApis, allowOverride)
接口抹平转换
- MorJS: mor 接口对象
global
: 小程序目标平台全局对象config
: 接口抹平配置installAllGlobalApis
: 是否在 mor 中添加所有的 APIallowOverride
: 是否允许覆盖 API
import { transformApis } from '@morjs/api'
transformApis(mor, global, config, installAllGlobalApis, allowOverride)
markAsUnsupport(apiName)
返回暂不支持的 函数
apiName
: 接口名称
import { markAsUnsupport } from '@morjs/api'
markAsUnsupport(apiName)