2 Star 0 Fork 0

mirrors_Qihoo360/thinkjs

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
index.d.ts 17.63 KB
一键复制 编辑 原始数据 按行查看 历史
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859
import * as Koa from 'koa';
import * as Helper from 'think-helper';
import * as ThinkCluster from 'think-cluster';
declare namespace ThinkJs {
export var think: Think;
export interface ThinkKoa extends Koa {
think: Think;
}
interface ContextExtend {
readonly controller: string;
readonly action: string;
/**
* get userAgent header
* @memberOf ContextExtend
*/
readonly userAgent: string;
/**
* is get request
* @memberOf ContextExtend
*/
readonly isGet: boolean;
/**
* is post request
* @memberOf ContextExtend
*/
readonly isPost: boolean;
/**
* is command line invoke
* @memberOf ContextExtend
*/
readonly isCli: boolean;
/**
* get referer header
* @memberOf ContextExtend
*/
referer(onlyHost: boolean): string;
/**
* get referer header
* @memberOf ContextExtend
*/
referrer(onlyHost: boolean): string;
/**
* @memberOf ContextExtend
*/
isMethod(method: string): boolean;
/**
* is ajax request
* @memberOf ContextExtend
*/
isAjax(method: string): boolean;
/**
* is jsonp request
* callbackField default to this.config('jsonpCallbackField')
*
* @memberOf ContextExtend
*/
isJsonp(callbackField?: string): boolean;
/**
* send jsonp data, callbackField default to this.config('jsonpCallbackField')
*
* @memberOf ContextExtend
*/
jsonp(data: any, callbackField?: string): any;
/**
* send json data
* @memberOf ContextExtend
*/
json(data: any): any;
/**
* send success data
* @memberOf ContextExtend
*/
success(data?: object | string, message?: string): any;
/**
* send fail data
* @memberOf ContextExtend
*/
fail(errno: any, errmsg?: string, data?: string): any;
/**
* set expires header
* @memberOf ContextExtend
*/
expires(time: any): any
/**
*
* get config
* @memberOf Controller
*/
config(name: string): Promise<string>;
/**
* set config
* @memberOf Controller
*/
config(name: string, value: string): Promise<string>;
/**
* get or set config
* @memberOf Controller
*/
config(name: string, value: string, module: string): Promise<string>;
/**
* get param
*
* @memberOf ContextExtend
*/
param(): object;
/**
* get param
* name can be slit by comma 'field1,field2' or 'field'
*
* @memberOf ContextExtend
*/
param(name: string): object;
/**
*
* set param
*
* @memberOf ContextExtend
*/
param(value: object): ContextExtend
/**
* get query data
* `query` or `get` is already used in koa
* @memberOf Controller
*/
param(name: string, value: any): ContextExtend
/**
* get post data
* @memberOf Controller
*/
post(): object;
/**
* set post data
* @memberOf Controller
*/
post(value: object): ContextExtend;
/**
* get post data, name can be split by comma 'field1,field2' or 'field'
* @memberOf Controller
*/
post(name: string): object;
/**
*
* set post value
* @memberOf ContextExtend
*/
post(name: string, value: any): ContextExtend;
/**
* get file data
*
* @memberOf ContextExtend
*/
file(): object;
/**
* set file data
*
* @memberOf ContextExtend
*/
file(data: object): ContextExtend;
/**
* get file data by name
* @memberOf ContextExtend
*/
file(name: string): any;
/**
* get file data
*
* @memberOf ContextExtend
*/
file(name: string, value: any): ContextExtend;
/**
*
* get or set cookie, if value is null mean delete the cookie.
* if value is undefined mean get cookie by name
*
* @memberOf Controller
*/
cookie(name: string, value: string, options?: object): void;
/**
* get service
*
* @memberOf Controller
*/
service(name: string, module?: string, ...args: any[]): any;
/**
* download
* @memberOf ContextExtend
*/
download(filepath: string, filename?: string): void;
}
interface ControllerExtend {
body: any;
readonly ip: string;
readonly ips: string[];
status: number | string;
type: string;
/**
* get userAgent header
* @memberOf ControllerExtend
*/
readonly userAgent: string;
readonly method: string;
/**
* is get request
* @memberOf ControllerExtend
*/
readonly isGet: boolean;
/**
* is post request
* @memberOf ControllerExtend
*/
readonly isPost: boolean;
/**
* is command line invoke
* @memberOf ControllerExtend
*/
readonly isCli: boolean;
/**
*
* get config
* @memberOf Controller
*/
config(name: string): Promise<string>;
/**
* set config
* @memberOf Controller
*/
config(name: string, value: string): Promise<string>;
/**
* get or set config
* @memberOf Controller
*/
config(name: string, value: string, module: string): Promise<string>;
/**
* @memberOf ControllerExtend
*/
isMethod(method: string): boolean;
/**
* is ajax request
* @memberOf ControllerExtend
*/
isAjax(method: string): boolean;
/**
* is jsonp request
* callbackField default to this.config('jsonpCallbackField')
*
* @memberOf ControllerExtend
*/
isJsonp(callbackField?: string): boolean;
/**
* send jsonp data, callbackField default to this.config('jsonpCallbackField')
*
* @memberOf ControllerExtend
*/
jsonp(data: any, callbackField?: string): any;
/**
* send json data
* @memberOf ControllerExtend
*/
json(data: any): any;
/**
* send success data
* @memberOf ControllerExtend
*/
success(data?: object | string, message?: string): any;
/**
* send fail data
* @memberOf ControllerExtend
*/
fail(errno: any, errmsg?: string, data?: string): any;
/**
* set expires header
* @memberOf ControllerExtend
*/
expires(time: any): any
/**
* get or set param
*
* @memberOf ControllerExtend
*/
get(name?: string, value?: any): any;
/**
* get or set param
*
* @memberOf ControllerExtend
*/
query(name?: string, value?: any): any;
/**
* get post data
* @memberOf Controller
*/
post(): object;
/**
* set post data
* @memberOf Controller
*/
post(value: object): ControllerExtend;
/**
* get post data, name can be split by comma 'field1,field2' or 'field'
* @memberOf Controller
*/
post(name: string): object;
/**
*
* set post value
* @memberOf ControllerExtend
*/
post(name: string, value: any): ControllerExtend;
/**
* get or set file data
*
* @memberOf ControllerExtend
*/
file(name?: string, value?: any): any;
/**
* get this.ctx.header[name]
* @memberOf ControllerExtend
*/
header(name: string): Promise<string>;
/**
* get or set headere
* @memberOf ControllerExtend
*/
header(name?: string, value?: any): any;
/**
* this.ctx.set
*
* @memberOf ControllerExtend
*/
header(keyValues: object): any;
/**
* get referer header
* @memberOf ControllerExtend
*/
referer(onlyHost: boolean): string;
/**
* get referer header
* @memberOf ControllerExtend
*/
referrer(onlyHost: boolean): string;
/**
* Perform a 302 redirect to `url`.
*
* The string "back" is special-cased
* to provide Referrer support, when Referrer
* is not present `alt` or "/" is used.
*
* Examples:
*
* this.redirect('back');
* this.redirect('back', '/index.html');
* this.redirect('/login');
* this.redirect('http://google.com');
*/
redirect(url: string, alt?: string): void;
/**
* get controller instance
* @memberOf ControllerExtend
*/
controller(name: string, module?: string): Controller;
/**
*
* set param
*
* @memberOf ControllerExtend
*/
param(value: object): ControllerExtend
/**
* get query data
* `query` or `get` is already used in koa
* @memberOf ControllerExtend
*/
param(name: string, value: any): ControllerExtend
/**
* get service
*
* @memberOf ControllerExtend
*/
service(name: string, module?: string, ...args: any[]): any;
/**
* execute action
*
* @memberOf ControllerExtend
*/
action(controller: Controller, actionsName: string, module?: string): Promise<any>;
/**
*
* execute action
*
* @memberOf ControllerExtend
*/
action(controllerName: string, actionsName: string, module?: string): Promise<any>;
/**
* download
* @memberOf ControllerExtend
*/
download(filepath: string, filename?: string): void;
}
interface ServiceExtend {
}
interface ModelExtend {
model(name: string, config?: any, module?: string): Model;
}
interface ViewExtend {
/**
* assign one value
* @memberOf ViewExtend
*/
assign(name: string, value: any): void;
/**
* multiple value assign
* @memberOf ViewExtend
*/
assign(value: object): void;
/**
* get assigned value by name
* @memberOf ViewExtend
*/
assign(name: string): any;
/**
* get all assigned value
* @memberOf ViewExtend
*/
assign(): any;
render(file?: string, config?: object | string): Promise<string>;
display(file?: string, config?: object | string): Promise<any>;
/**
* display base on current controller and action
*
* @memberOf ViewExtend
*/
display(): Promise<any>;
}
interface SessionExtend {
/**
* get session
* @memberOf SessionExtend
*/
session(name: string): Promise<string>;
/**
* set session
* @memberOf SessionExtend
*/
session(name: string, value: string): Promise<string>;
/**
* delete the whole session
* @memberOf SessionExtend
*/
session(name: null): Promise<string>;
}
interface I18NExtend {
getI18n(forceLocale?: string): object;
/**
` * get current locale
* @memberOf I18NExtend
*/
getLocale(): Array<string>;
}
interface CacheExtend {
/**
* get cache
*
* @memberOf CacheExtend
*/
cache(name: string): Promise<any>;
/**
* get or set cache
* if value is null means delete cache
* if value is undefined, get cache by name
* else mean set cache
* @memberOf CacheExtend
*/
cache(name: string, value?: string, config?: object): Promise<any>;
/**
* get cache
*
* @memberOf CacheExtend
*/
cache(name: string, value: Function): Promise<any>;
}
interface Logger {
debug(msg: string): void;
info(msg: string): void;
warn(msg: string): void;
error(msg: string): void;
}
interface WebsocketExtend {
readonly wsData: any;
readonly websocket: any;
readonly isWebsocket: boolean;
emit(event: string, data: any): void;
broadcast(event: string, data: any): void;
}
export interface Model {
new(modelName?: string, config?: object): Model;
/**
* get or set db
*/
db(db?: any): any;
/**
* get or set all store models
*/
models: object;
/**
* get table prefix
*/
readonly tablePrefix: string;
/**
* get table name, with table prefix
*/
readonly tableName: string;
/**
* get primary key
*/
readonly pk: string;
/**
* get last sql
*/
readonly lastSql: string;
/**
* get model instance
*/
model(name: string): Model;
/**
* set cache options
*/
cache(key?: string, config?: object): Model;
/**
* set limit options
*/
limit(offset?: Array<string | number> | number | string, length?: number | string): Model;
/**
* set page options
*/
page(page?: Array<string | number> | number | string, listRows?: string | number): Model;
/**
* set where options
* @return {} []
*/
where(where?: string | object): Model;
/**
* set field options
*/
field(field?: string, reverse?: boolean): Model;
/**
* set field reverse
*/
fieldReverse(field?: string): Model;
/**
* set table name
*/
table(table?: string, hasPrefix?: boolean): Model;
/**
* union options
*/
union(union?: string, all?: boolean): Model;
/**
* join
*/
join(join?: string | Array<string>): Model;
/**
* set order options
*/
order(value: string): Model;
/**
* set table alias
*/
alias(value: string): Model;
/**
* set having options
*/
having(value: string): Model;
/**
* set group options
*/
group(value: string): Model;
/**
* set lock options
*/
lock(value: string): Model;
/**
* set auto options
*/
auto(value: string): Model;
/**
* set distinct options
*/
distinct(data: any): Model;
/**
* set explain
*/
explain(explain: string): Model;
/**
* parse options, reset this.options to {}
* @param {Object} options
*/
parseOptions(options: any): Promise<any>;
/**
* add data
*/
add(data: object, options?: object): Promise<string>;
/**
* add data when not exist
* @return {} []
*/
thenAdd(data: object, where?: object | string): Promise<object>;
/**
* update data when exist, otherwise add data
* @return {id}
*/
thenUpdate(data: object, where?: object | string): Promise<object>;
/**
* add multi data
*/
addMany(data: Array<object>, options?: object): Promise<Array<string>>;
/**
* delete data
*/
delete(options?: object): Promise<number>;
/**
* update data
*/
update(data: object, options?: object): Promise<number>;
/**
* update all data
*/
updateMany(dataList: Array<object>, options?: object): Promise<any>;
/**
* find data
*/
find(options?: object): Promise<any>;
/**
* select
*/
select(options?: object): Promise<any>;
/**
* select add
*/
selectAdd(options?: object): Promise<any>;
/**
* count select
*/
countSelect(options?: object, pageFlag?: boolean): Promise<Object>;
/**
* get field data
* if num is ture mean get one value
*/
getField(field: string, num?: boolean | number): Promise<object>;
/**
* increment field data
*/
increment(field: string, step?: number): Promise<any>;
/**
* decrement field data
* @return {} []
*/
decrement(field: string, step?: number): Promise<any>;
/**
* get count
*/
count(field: string): Promise<number>;
/**
* get sum
*/
sum(field: string): Promise<number>;
/**
* get min value
*/
min(field: string): Promise<number>;
/**
* get max valud
*/
max(field: string): Promise<number>;
/**
* get value average
*/
avg(field: string): Promise<number>;
/**
* query
*/
query(sqlOptions: object): Promise<any>;
/**
* execute sql
*/
execute(sqlOptions: object): Promise<any>;
/**
* parse sql
*/
parseSql(sqlOptions: object, ...args: Array<any>): object
/**
* false means disable all, true means enable all
*/
setRelation(value: boolean): Model;
/**
* set relation
*/
setRelation(name: string, value?: boolean): Model;
/**
* start transaction
*/
startTrans(): Promise<any>;
/**
* commit transcation
*/
commit(): Promise<any>;
/**
* rollback transaction
*/
rollback(): Promise<any>;
/**
* transaction exec functions
* @param {Function} fn [async exec function]
*/
transaction(fn: Function): Promise<any>;
}
export interface ModelRelation {
readonly HAS_ONE: number;
readonly HAS_MANY: number;
readonly BELONG_TO: number;
readonly MANY_TO_MANY: number;
}
export interface Context extends ContextExtend, ModelExtend, Koa.Context, CacheExtend, SessionExtend, WebsocketExtend { }
export interface Controller extends ControllerExtend, ModelExtend, CacheExtend, I18NExtend, ViewExtend, SessionExtend, WebsocketExtend {
new(ctx: Context): Controller;
ctx: Context;
}
export interface Logic extends Controller {
new(ctx: Context): Logic;
validate(rules: Object, msgs?: Object): Object;
validateErrors?: Object;
allowMethods: string;
}
export interface Service extends ModelExtend {
}
export interface Model extends ModelExtend {
}
export interface Think extends Helper.Think, ModelExtend, CacheExtend {
app: ThinkKoa;
isCli: boolean;
/**
* Get thisnk.app.env.
*/
env: string;
version: string;
messenger: ThinkCluster.Messenger;
Controller: Controller;
Logic: Logic;
Service: Service;
Model: Model;
ROOT_PATH: string;
APP_PATH: string;
logger: Logger;
service(name: string, m: any, ...args: any[]): any;
beforeStartServer(fn: Function): Promise<any>;
}
export class Application {
constructor(options: {
ROOT_PATH: string,
APP_PATH?: string,
watch?: any,
transpiler?: any,
notifier?: Function,
env?: string
})
}
}
export = ThinkJs;
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mirrors_Qihoo360/thinkjs.git
git@gitee.com:mirrors_Qihoo360/thinkjs.git
mirrors_Qihoo360
thinkjs
thinkjs
master

搜索帮助