wapp-cli
Version:
543 lines (463 loc) • 14.2 kB
TypeScript
/* tslint:disable */
type WXCommonCallback = (data: any) => void;
type WXMergedAPI = WXNetAPI & WXMediaAPI & WXStorageAPI & WXLocationAPI & WXDeviceAPI & WXUIAPI & WXOpenAPI & WXAny;
interface WXAny {
[key: string]: any;
}
interface WXCommonObj {
success?: WXCommonCallback;
fail?: WXCommonCallback;
complete?: WXCommonCallback;
}
interface WXNetAPIRequestObj extends WXCommonObj {
url: string;
data?: Object | string;
header?: Object;
method?: string;
}
interface WXNetAPIDownloadFileObj {
url: string;
header?: Object;
success?: (res: { tempFilePath: string, [propName: string]: any }) => void;
fail?: WXCommonCallback;
complete?: WXCommonCallback;
}
interface WXNetAPIUploadFileObj extends WXCommonObj {
url: string;
filePath: string;
name: string;
header?: Object;
formData?: Object;
}
interface WXNetAPIConnectSocketObj extends WXCommonObj {
url: string;
data?: Object;
header?: Object;
method?: string;
}
interface WXNetAPI {
request(obj: WXNetAPIRequestObj);
downloadFile(obj: WXNetAPIDownloadFileObj);
uploadFile(obj: WXNetAPIUploadFileObj);
connectSocket(obj: WXNetAPIConnectSocketObj);
onSocketOpen(cb: WXCommonCallback);
onSocketError(cb: WXCommonCallback);
sendSocketMessage(obj: { data: string | ArrayBuffer } & WXCommonObj);
onSocketMessage(callback: (data: string | ArrayBuffer) => void);
closeSocket();
onSocketClose(cb: WXCommonCallback);
}
interface WXTempFileObj {
tempFilePaths: string[];
[propName: string]: any;
}
interface WXChooseImageObj {
count?: number;
sizeType?: string[];
sourceType?: string[];
success: (res: WXTempFileObj) => void;
fail: WXCommonCallback;
complete: WXCommonCallback;
}
interface WXPreviewImageObj extends WXCommonObj {
current?: string;
urls: string[];
}
interface WXGetImageObj {
src: string;
success?: (res: { width: number, height: number, [propName: string]: any }) => void;
fail?: WXCommonCallback;
complete?: WXCommonCallback;
}
interface WXStartRecordObj {
success?: (res: { tempFilePath: string, [propName: string]: any }) => void;
fail?: WXCommonCallback;
complete?: WXCommonCallback;
}
interface WXGetBackgroundAudioPlayerStateObj {
success?: (res: { duration: number, currentPostion: number, status: number, downloadPercent: number, dataUrl: string, [propName: string]: any }) => void;
fail?: WXCommonCallback;
complete?: WXCommonCallback;
}
interface WXSaveFileObj {
tempFilePath: string;
success?: (res: { savedFilePath: string, [propName: string]: any }) => void;
fail?: WXCommonCallback;
complete?: WXCommonCallback;
}
interface WXGetSaveFileObj {
success?: (res: { errMsg: string, fileList: Array<{ filePath: string, createTime: number, size: number, [propName: string]: any }> }) => void;
fail?: WXCommonCallback;
complete?: WXCommonCallback;
}
interface WXGetSaveFileInfoObj {
filePath: string;
success?: (res: { errMsg: string, createTime: number, size: number, [propName: string]: any }) => void;
fail?: WXCommonCallback;
complete?: WXCommonCallback;
}
interface WXRemoveSavedFileObj {
filePath: string;
success?: (res: { errMsg: string, fileList: Array<{ filePath: string, createTime: number, size: number, [propName: string]: any }> }) => void;
fail?: WXCommonCallback;
complete?: WXCommonCallback;
}
interface WXChooseVideoObj extends WXCommonObj {
sourceType?: string[];
maxDuration?: number;
camera?: string[];
}
interface WXVideo {
tempFilePath: string;
duration: number;
size: number;
height: number;
width: number;
}
interface WXAudioContext {
play();
pause();
seek(position: number);
}
interface WXVideoContext {
play();
pause();
seek(position: number);
sendDanmu(danmu: { text: string, color: string });
}
interface WXMediaAPI {
chooseImage(obj: WXChooseImageObj);
previewImage(obj: WXPreviewImageObj);
getImageInfo(obj: WXGetImageObj);
startRecord(obj: WXStartRecordObj);
stopRecord();
playVoice(obj: { filePath: string } & WXCommonObj);
pauseVoice();
stopVoice();
getBackgroundAudioPlayerState(obj: WXGetBackgroundAudioPlayerStateObj);
playBackgroundAudio(obj: { dataUrl: string, title?: string, coverImgUrl?: string } & WXCommonObj);
pauseBackgroundAudio();
seekBackgroundAudio(obj: { position: number } & WXCommonObj);
stopBackgroundAudio();
onBackgroundAudioPlay(cb: WXCommonCallback);
onBackgroundAudioPause(cb: WXCommonCallback);
onBackgroundAudioStop(cb: WXCommonCallback);
saveFile(obj: WXSaveFileObj);
getSavedFileList(obj: WXGetSaveFileObj);
getSavedFileInfo(obj: WXGetSaveFileInfoObj);
removeSavedFile(obj: WXRemoveSavedFileObj);
openDocument(obj: { filePath: string } & WXCommonObj);
chooseVideo(obj: WXChooseVideoObj): WXVideo;
createAudioContext(audioId: string): WXAudioContext;
createVideoContext(vedioId: string): WXVideoContext;
}
interface WXGetStorageObj {
key: string;
success: (res: { data: any, [propName: string]: any }) => void;
fail?: WXCommonCallback;
complete?: WXCommonCallback;
}
interface WXGetStorageInfoObj {
success: (res: { keys: string[], currentSize: number, limitSize: number, [propName: string]: any }) => void;
fail?: WXCommonCallback;
complete?: WXCommonCallback;
}
interface WXStorageAPI {
setStorage(obj: { key: string, data: Object | string } & WXCommonObj);
setStorageSync(key: string, data: Object | string);
getStorage(obj: WXGetStorageObj);
getStorageSync(key: string): any;
getStorageInfo(obj: WXGetStorageInfoObj);
getStorageInfoSync(): { keys: string[], currentSize: number, limitSize: number };
removeStorage(obj: WXGetStorageObj);
removeStorageSync(key: string);
clearStorage();
clearStorageSync();
}
interface WXGetLocationObj {
type: string;
success: (res: { latitude: number, longitude: number, speed: number, accuracy: number, [propName: string]: any }) => void;
cancel?: WXCommonCallback;
fail?: WXCommonCallback;
complete?: WXCommonCallback;
}
interface WXChooseLocationObj {
success: (res: { latitude: number, longitude: number, name: string, address: string, [propName: string]: any }) => void;
fail?: WXCommonCallback;
complete?: WXCommonCallback;
}
interface WXOpenLocationObj extends WXCommonObj {
latitude: number;
longitude: number;
scale?: number;
name?: string;
address?: string;
}
interface WXLocationAPI {
getLocation(obj: WXGetLocationObj);
chooseLocation(obj: WXGetLocationObj);
openLocation(obj: WXOpenLocationObj);
}
interface WXSystemInfo {
model: string;
pixelRatio: number;
windowWidth: number;
windowHeight: number;
language: string;
version: string;
[propName: string]: any;
}
interface WXDeviceAPI {
getNetworkType(obj: { success: (res: { networkType: string, [propName: string]: any }) => void, fail?: WXCommonCallback, complete?: WXCommonCallback });
getSystemInfo(obj: { success: (res: WXSystemInfo) => void, fail?: WXCommonCallback, complete?: WXCommonCallback });
getSystemInfoSync(): WXSystemInfo;
onAccelerometerChange(cb: (res: { x: number, y: number, z: number, [propName: string]: any }) => void);
onCompassChange(cb: (res: { direction: number, [propName: string]: any }) => void);
makePhoneCall(obj: { phoneNumber: string } & WXCommonObj);
}
interface WXToast extends WXCommonObj {
title: string;
icon?: string;
duration?: number;
}
interface WXModal {
title: string;
content: string;
showCancel?: boolean;
cancelText?: string;
cancelColor?: string;
confirmText?: string;
confirmColor?: string;
success?: (res: { confirm: number, [propName: string]: any }) => void;
fail?: WXCommonCallback;
complete?: WXCommonCallback;
}
interface WXActionSheet {
itemList: string[];
itemColor?: string;
success?: (res: { tabIndex: number, cancel: boolean, [propName: string]: any }) => void;
fail?: WXCommonCallback;
complete?: WXCommonCallback;
}
interface WXCreateAnimationObj {
duration?: number;
timingFunction?: string;
delay?: number;
transformOrigin?: string;
}
interface WXAnimation {
opacity(value: number): WXAnimation;
backgroundColor(color: string): WXAnimation;
width(length: number): WXAnimation;
height(length: number): WXAnimation;
top(length: number): WXAnimation;
left(length: number): WXAnimation;
bottom(length: number): WXAnimation;
right(length: number): WXAnimation;
rotate(deg: number): WXAnimation;
rotateX(deg: number): WXAnimation;
rotateY(deg: number): WXAnimation;
rotateZ(deg: number): WXAnimation;
rotate3d(deg: number, x: number, y: number, z: number): WXAnimation;
scale(sx: number, sy?: number): WXAnimation;
scaleX(sx: number): WXAnimation;
scaleY(sy: number): WXAnimation;
scaleZ(sz: number): WXAnimation;
scale3d(sx: number, sy: number, sz: number): WXAnimation;
translate(tx: number, ty?: number): WXAnimation;
translateX(tx: number): WXAnimation;
translateY(ty: number): WXAnimation;
translateZ(tz: number): WXAnimation;
translate3d(tx: number, ty: number, tz: number): WXAnimation;
skew(ax: number, ay?: number): WXAnimation;
skewX(ax: number): WXAnimation;
skewY(ay: number): WXAnimation;
matrix(a: number, b: number, c: number, d: number, tx: number, ty: number): WXAnimation;
matrix3d(a1: number, b1: number, c1: number, d1: number, a2: number, b2: number, c2: number, d2: number, a3: number, b3: number, c3: number, d3: number, a4: number, b4: number, c4: number, d4: number): WXAnimation;
step();
}
interface WXContext {
font: string;
textAlign: string;
getActions(): any;
clearActions();
scale(scaleWidth: number, scaleHeight: number);
rotate(degree: number);
translate(x: number, y: number);
save();
draw(isSave?: boolean, callback?: Function);
restore();
fillRect(x: number, y: number, width: number, height: number);
clearRect(x: number, y: number, width: number, height: number);
fillText(text: string, x: number, y: number);
drawImage(imageResource: string, x: number, y: number, width: number, height: number);
fill();
stroke();
clip();
beginPath();
closePath();
moveTo(x: number, y: number);
lineTo(x: number, y: number);
rect(x: number, y: number, width: number, height: number);
arc(x: number, y: number, radius: number, startAngle: number, sweepAngle: number);
quadraticCurveTo(cpx: number, cpy: number, x: number, y: number);
bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number);
measureText(text: string);
setTextBaseline(textBaseline: string);
setTextAlign(align: string);
setFillStyle(color: string);
setStrokeStyle(color: string);
setGlobalAlpha(alpha: number);
setShadow(offsetX: number, offsetY: number, blur: number, color: string);
setFontSize(fontSize: number);
setLineWidth(lineWidth: number);
setLineCap(lineCap: string);
setLineJoin(lineJoin: string);
setMiterLimit(miterLimit: number);
}
interface WXUIAPI {
showToast(obj: WXToast);
hideToast();
showModal(obj: WXModal);
showActionSheet(obj: WXActionSheet);
setNavigationBarTitle(obj: { title: string } & WXCommonObj);
showNavigationBarLoading();
hideNavigationBarLoading();
navigateTo(obj: { url: string } & WXCommonObj);
redirectTo(obj: { url: string } & WXCommonObj);
navigateBack(obj: { delta: number });
createAnimation(obj: WXCreateAnimationObj): WXAnimation;
createCanvasContext(canvansId: string): WXContext;
createContext(): WXContext;
drawCanvas(obj: { canvasId: string, actions: any[], reserve?: boolean });
canvasToTempFilePath(obj: { canvasId: string, destWidth?: number, destHeight?: number } & WXCommonObj);
hideKeyboard();
stopPullDownRefresh();
}
interface WXPayment extends WXCommonObj {
timeStamp: number;
nonceStr: string;
package: string;
signType: string;
paySign: string;
}
interface IUserInfo {
userInfo: Object,
rawData: string,
signature: string,
encryptedData: string,
iv: string,
[propName: string]: any
}
interface WXOpenAPI {
login(obj: { success?: (res: { errMsg: string, code: string, [propName: string]: any }) => void, fail?: WXCommonCallback, complete?: WXCommonCallback });
checkSession(obj: WXCommonObj);
getUserInfo(obj: { success?: (res: userInfo) => void, fail?: WXCommonCallback, complete?: WXCommonCallback });
requestPayment(obj: WXPayment);
}
interface WXPageObj {
data?: any;
onLoad?: Function;
onReady?: Function;
onShow?: Function;
onHide?: Function;
onUnload?: Function;
onPullDownRefresh?: Function;
onReachBottom?: Function;
onShareAppMessage?: Function;
[propName: string]: any;
}
interface WXComponentObj extends WXPageObj {
properties?: IProperties;
behaviors?: Array[string];
externalClasses?: Array[string];
options?: IOptions;
}
interface IOptions {
[propName: string]: boolean;
}
interface IProperties {
[propName: string]: {
type: any,
value: Boolean | string | Object | Array,
observer?: Function;
};
}
interface WXAppObj {
onLaunch?: Function;
onShow?: Function;
onHide?: Function;
[propName: string]: any;
}
interface IComponent {
(obj: WXComponentObj): void;
setData(obj: Object);
}
interface IPage {
(obj: WXPageObj): void;
setData(obj: Object);
forceUpdate();
update();
}
interface IApp {
(obj: WXAppObj): void;
globalData: any;
}
// 微信的文档太弱了,这块儿没有说明
interface WXGetAppObj {
globalData: any;
[propName: string]: any;
getUserInfo(cb: (userInfo: Object) => void);
getCurrentPage(): IPage;
}
interface WXEventTarget {
id: string;
offsetLeft: number;
offsetTop: number;
dataset: {
[key: string]: any;
}
}
interface WXEventBasic {
type: string;
timeStamp: number;
target: WXEventTarget;
currentTarget: WXEventTarget;
detail: {
formId?: string;
value?: any;
userInfo?: Object;
[key: string]: any;
}
}
interface WXImageLoad extends WXEventBasic {
detail: {
width: string;
height: string;
}
}
interface WXNodeRect {
id: string;
dataset: any;
left: number;
right: number;
top: number;
bottom: number;
width: number;
height: number;
}
declare let wx: WXMergedAPI;
declare let Component: IComponent;
declare let Page: IPage;
declare let App: IApp;
declare function getApp(): WXGetAppObj;
declare function getCurrentPages(): any[];
declare var require: any;
declare var module: any;
declare module 'WXAPI' {
export let wx: WXMergedAPI;
export let Page: IPage;
export function App(obj: WXAppObj);
export function getApp(): WXGetAppObj;
export function getCurrentPages(): any[];
}