template-demo/miniprogram_npm/@jdmini/api/index.d.ts

296 lines
10 KiB
TypeScript
Raw Normal View History

2025-09-24 00:55:36 +08:00
// Generated by dts-bundle v0.7.3
declare module '@jdmini/api' {
import { onLoginReady, waitLogin } from '@jdmini/api/app';
import HttpClient, { gatewayHttpClient, baseHttpClient, apiHttpClient } from '@jdmini/api/httpClient';
import { injectApp, injectPage, injectComponent, hijackApp, hijackAllPage } from '@jdmini/api/injector';
import adManager from '@jdmini/api/adManager';
export { onLoginReady, waitLogin, injectApp, injectPage, injectComponent, hijackApp, hijackAllPage, gatewayHttpClient, baseHttpClient, apiHttpClient, HttpClient, adManager, };
}
declare module '@jdmini/api/app' {
export interface AppOptions {
gatewayUrl?: string;
baseUrl?: string;
apiUrl?: string;
}
export interface PageOptions {
showInterstitialAd?: boolean;
}
export function initApp(options?: AppOptions): Promise<void>;
export function showPage(options: PageOptions | undefined, pageId: string): Promise<void>;
export const checkTokenValid: () => boolean;
/**
*
* @param {Function} callback -
* @returns {void}
*/
export function onLoginReady(callback: (...args: any[]) => void): void;
/**
*
* @returns {Promise<void>}
*/
export function waitLogin(): Promise<void>;
export function login(): Promise<void>;
export function fetchEchoData(): Promise<void>;
export function trackVisit(): Promise<void>;
}
declare module '@jdmini/api/httpClient' {
import { HttpClientOptions, RequestOptions, ApiResponse } from '@jdmini/api/types';
class HttpClient {
constructor({ baseURL, timeout }: HttpClientOptions);
setBaseURL(baseURL: string): void;
/**
*
* @param {string} path
* @param {string} method , GET
* @param {Object} data , {}
* @param {Object} options wx.request的其他配置, {}
* @returns {Promise<Object>} Promise对象
*/
request<T = any>(path: string, method?: WechatMiniprogram.RequestOption['method'], data?: Record<string, any>, options?: RequestOptions): Promise<ApiResponse<T>>;
/**
*
* @param {string} filePath
* @param {Object} data , {}
* @param {'avatar' | 'file'} type , 'file'
* @returns {Promise<Object>} Promise对象
*/
uploadFile<T = any>(filePath: string, data?: Record<string, any>, type?: 'avatar' | 'file'): Promise<ApiResponse<T>>;
/**
*
* @param {string} filePath
* @param {Object} data , {}
* @param {'avatar' | 'file'} type , 'file'
* @returns {Promise<Object>} Promise对象
*/
upload<T = any>(path: string, filePath: string, data?: Record<string, any>): Promise<ApiResponse<T>>;
/**
*
* @param {number} fileId id
* @returns {Promise<Object>} Promise对象
*/
deleteFile(fileId: number): Promise<ApiResponse<null>>;
/**
*
* @param {string} filePath
* @returns {Promise<Object>} Promise对象
*/
uploadAvatar<T = any>(filePath: string): Promise<ApiResponse<T>>;
}
export const gatewayHttpClient: HttpClient;
export const baseHttpClient: HttpClient;
export const apiHttpClient: HttpClient;
export default HttpClient;
}
declare module '@jdmini/api/injector' {
interface AppConfig {
onLaunch?: (...args: any[]) => void | Promise<void>;
[key: string]: any;
}
interface PageConfig {
onShow?: (...args: any[]) => void | Promise<void>;
[key: string]: any;
}
interface ComponentConfig {
methods?: {
onLoad?: (...args: any[]) => void | Promise<void>;
onShow?: (...args: any[]) => void | Promise<void>;
[key: string]: any;
};
[key: string]: any;
}
interface InjectAppOptions {
gatewayUrl?: string;
baseUrl?: string;
apiUrl?: string;
}
interface InjectPageOptions {
showInterstitialAd?: boolean;
}
/**
*
* @param {Object} options -
* @param {string} [options.gatewayUrl] - 使CONFIG.API.GATEWAY_URL
* @param {string} [options.baseUrl] - 使CONFIG.API.BASE_URL
* @param {string} [options.apiUrl] - api地址使CONFIG.API.API_URL
* @returns {Function}
*/
export function injectApp(options?: InjectAppOptions): (appConfig: AppConfig) => AppConfig;
/**
*
* @param {InjectPageOptions} options -
* @param {boolean} [options.showInterstitialAd] - onShow显示插屏广告
* @returns {Function}
*/
export function injectPage(options?: InjectPageOptions): (pageConfig?: PageConfig) => PageConfig;
/**
*
* @param {InjectPageOptions} options -
* @param {boolean} [options.showInterstitialAd] - onShow显示插屏广告
* @returns {Function}
*/
export function injectComponent(options?: InjectPageOptions): (pageConfig?: PageConfig) => ComponentConfig;
/**
* App
* @param {InjectAppOptions} options -
* @param {string} [options.gatewayUrl] - 使CONFIG.API.GATEWAY_URL
* @param {string} [options.baseUrl] - 使CONFIG.API.BASE_URL
* @param {string} [options.apiUrl] - api地址使CONFIG.API.API_URL
* @returns {void}
*/
export const hijackApp: (options?: InjectAppOptions) => void;
/**
* Page
* @param {InjectPageOptions} options -
* @param {boolean} [options.showInterstitialAd] - onShow显示插屏广告
* @returns {void}
*/
export const hijackAllPage: (options?: InjectPageOptions) => void;
export {};
}
declare module '@jdmini/api/adManager' {
import { AdData, LinkData, TopData } from '@jdmini/api/types';
type Ads = Partial<Record<AdData['appPage'], AdData['ads'][0]['adUnitId']>>;
class AdManager {
/**
* 广
*/
ads: Ads;
/**
*
*/
link: LinkData[];
/**
* 广
*/
top: TopData | null;
constructor();
/**
* 广
* @param {Function} callback -
* @returns {void}
*/
onDataReady: (callback: (...args: any[]) => void) => void;
/**
* 广
* @returns {Promise<void>}
*/
waitAdData: () => Promise<void>;
/**
* 广
* @returns {void}
*/
init: () => void;
/**
* 广
* @returns {Promise<void>}
*/
createAndShowInterstitialAd: () => Promise<void>;
/**
* 广
* @param {any} context -
* @param {string} [pageId] - ID
* @returns {Promise<boolean>}
*/
createAndShowRewardedVideoAd: (context: any, pageId?: string) => Promise<boolean>;
}
const _default: AdManager;
export default _default;
}
declare module '@jdmini/api/types' {
export interface Config {
API: {
GATEWAY_URL: string;
BASE_URL: string;
API_URL: string;
};
APP: {
APP_ID: number;
LOGIN_MAX_RETRY: number;
};
HTTP: {
TIMEOUT: number;
};
DATA: {
PAGE_ID: string;
};
STORAGE_KEYS: {
TOKEN: string;
USER_INFO: string;
SPA_DATA: string;
LINK_DATA: string;
TOP_DATA: string;
};
EVENT_KEYS: {
LOGIN_SUCCESS: string;
AD_DATA_READY: string;
REWARDED_VIDEO_AD_CLOSE: string;
};
}
export interface HttpClientOptions {
baseURL: string;
timeout?: number;
}
export interface RequestOptions {
headers?: Record<string, string>;
[key: string]: any;
}
export interface LoginData {
appId: number;
code: string;
brand: string;
model: string;
platform: string;
}
export interface ApiResponse<T = any> {
code: number;
message?: string;
data?: T;
}
export interface UserInfo {
token: string;
user: {
id: number;
name: string;
avatar: string;
openId: string;
};
}
export interface EchoData {
isPublished: boolean;
spads: AdData[];
links: LinkData[];
top: TopData;
version: number;
}
export interface AdData {
id: number;
status: number;
appPage: 'banner' | 'custom' | 'video' | 'interstitial' | 'rewarded';
ads: {
id: number;
type: number;
adId: number;
adUnitId: string;
}[];
}
export interface LinkData {
appId: string;
appLogo: string;
linkName: string;
linkPage: string;
}
export interface TopData {
appId: string;
appLogo: string;
linkName: string;
appDsc: string;
}
}