Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

febs

Package Overview
Dependencies
Maintainers
1
Versions
206
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

febs - npm Package Compare versions

Comparing version 0.3.9 to 0.3.10

2

package.json

@@ -47,3 +47,3 @@ {

"name": "febs",
"version": "0.3.9"
"version": "0.3.10"
}

@@ -6,579 +6,586 @@ // Type definitions for febs

export declare const __line: number;
export declare var __debug: boolean;
export declare var __debug: boolean;
export declare namespace console {
function debug(...format:string[]): void;
function debug(...format: string[]): void;
}
export interface WeekFmt {
'0'?: string;
'1'?: string;
'2'?: string;
'3'?: string;
'4'?: string;
'5'?: string;
'6'?: string;
}
export interface StrFmt {
now?: string;
second?: string;
minute?: string;
hour?: string;
day_yesterday?: string;
day?: string;
month?: string;
time?: string; // 超过6个月将使用此格式格式化时间
}
declare namespace febs {
//
// utils.
export declare namespace utils {
/**
* @desc: 模拟sleep.
* @return: Promise.
* 在ms时间后执行.
* @e.g.
* febs.utils.sleep(1000).then(()=>{
//1000ms之后resolve.
});
*/
function sleep(ms:number): Promise<void>;
function browserIsMobile(agent?:string): boolean;
function browserIsIOS(agent?:string): boolean;
function browserIsPhone(agent?:string): boolean;
function browserIsWeixin(agent?:string): boolean;
export interface WeekFmt {
'0'?: string;
'1'?: string;
'2'?: string;
'3'?: string;
'4'?: string;
'5'?: string;
'6'?: string;
}
// only in client.
function browserIsSupportHtml5(): boolean;
export interface StrFmt {
now?: string;
second?: string;
minute?: string;
hour?: string;
day_yesterday?: string;
day?: string;
month?: string;
time?: string; // 超过6个月将使用此格式格式化时间
}
/**
* @desc: 获取时间的string.
* @param time: ms.
* @param fmt: 格式化, 默认为 'HH:mm:ss'
* 年(y)、月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q)
* 'yyyy-MM-dd hh:mm:ss.S' ==> 2006-07-02 08:09:04.423
* 'yyyy-MM-dd E HH:mm:ss' ==> 2009-03-10 星期二 20:09:04
* 'yyyy-M-d h:m:s.S' ==> 2006-7-2 8:9:4.18
* @param weekFmt: 星期的文字格式, 默认为 {'0':'星期天', '1': '星期一', ..., '6':'星期六'}
* @return: string.
*/
function getTimeString(time:number, fmt?:string, weekFmt?:WeekFmt): string;
/**
* @desc: 获取指定时间距离现在的时间描述.
* 例如, 昨天, 1小时前等.
* @param time: ms. 小于当前时间, 大于当前时间将显示为 '刚刚';
* @param strFmt: 需要显示的文字.
* 默认为 {
* now: '刚刚', // 3秒钟以内将显示此信息.
* second: '秒前',
* minute: '分钟前',
* hour: '小时前',
* day_yesterday: '昨天',
* day: '天前',
* month: '个月前', // 6个月内将显示此信息.
* time: 'yyyy-M-d h:m:s' // 超过6个月将使用此格式格式化时间
* }
* @return: string.
*/
function getTimeStringFromNow(time:number, strFmt?:StrFmt): string;
/**
* @desc: getDate('2012-05-09')
* @return: Date.
*/
function getDate(strDate:string):Date;
/**
* @desc: 合并多个map.
* @return: {}
*/
function mergeMap(...map:object[]):object;
//
// utils.
export namespace utils {
/**
* @desc: 模拟sleep.
* @return: Promise.
* 在ms时间后执行.
* @e.g.
* febs.utils.sleep(1000).then(()=>{
//1000ms之后resolve.
});
*/
function sleep(ms: number): Promise<void>;
function browserIsMobile(agent?: string): boolean;
function browserIsIOS(agent?: string): boolean;
function browserIsPhone(agent?: string): boolean;
function browserIsWeixin(agent?: string): boolean;
/**
* @desc: 判断参数是否是null,undefined,NaN
* @return: boolean
*/
function isNull(e:any):boolean;
/**
* @desc: 将异步回调方式的方法转换成promise, 函数中的this可以为指定值.
* 例如: yield denodeify(fs.exists)(path);
* @param self: 指定的调用对象
* @return: promise.
*/
function denodeify(fn:any, self:any, argumentCount?:number): Promise<any>;
// only in client.
function browserIsSupportHtml5(): boolean;
/**
* @desc: 判断是否是bigint.
*/
function bigint_check(v:any):boolean;
/**
* @desc: a+b.
*/
function bigint_add(a:any, b:any):any;
/**
* @desc: a-b.
*/
function bigint_minus(a:any, b:any):any;
/**
* @desc: a/b.
*/
function bigint_dividedBy(a:any, b:any):any;
/**
* @desc: a*b.
*/
function bigint_mul(a:any, b:any):any;
/**
* @desc: a==b.
*/
function bigint_equal(a:any, b:any):boolean;
/**
* @desc: a>b.
*/
function bigint_more_than(a:any, b:any):boolean;
/**
* @desc: a>=b.
*/
function bigint_more_than_e(a:any, b:any):boolean;
/**
* @desc: a<b.
*/
function bigint_less_than(a:any, b:any):boolean;
/**
* @desc: a<=b.
*/
function bigint_less_than_e(a:any, b:any):boolean;
/**
* @desc: 转换bigint->string.
* @param fixed: 小数位个数, 默认为0.
* @return: string.
*/
function bigint_toFixed(a:any, fixed?:boolean):string;
}
/**
* @desc: 获取时间的string.
* @param time: ms.
* @param fmt: 格式化, 默认为 'HH:mm:ss'
* 年(y)、月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q)
* 'yyyy-MM-dd hh:mm:ss.S' ==> 2006-07-02 08:09:04.423
* 'yyyy-MM-dd E HH:mm:ss' ==> 2009-03-10 星期二 20:09:04
* 'yyyy-M-d h:m:s.S' ==> 2006-7-2 8:9:4.18
* @param weekFmt: 星期的文字格式, 默认为 {'0':'星期天', '1': '星期一', ..., '6':'星期六'}
* @return: string.
*/
function getTimeString(time: number, fmt?: string, weekFmt?: WeekFmt): string;
/**
* @desc: 获取指定时间距离现在的时间描述.
* 例如, 昨天, 1小时前等.
* @param time: ms. 小于当前时间, 大于当前时间将显示为 '刚刚';
* @param strFmt: 需要显示的文字.
* 默认为 {
* now: '刚刚', // 3秒钟以内将显示此信息.
* second: '秒前',
* minute: '分钟前',
* hour: '小时前',
* day_yesterday: '昨天',
* day: '天前',
* month: '个月前', // 6个月内将显示此信息.
* time: 'yyyy-M-d h:m:s' // 超过6个月将使用此格式格式化时间
* }
* @return: string.
*/
function getTimeStringFromNow(time: number, strFmt?: StrFmt): string;
/**
* @desc: getDate('2012-05-09')
* @return: Date.
*/
function getDate(strDate: string): Date;
/**
* @desc: 合并多个map.
* @return: {}
*/
function mergeMap(...map: object[]): object;
//
// string.
declare namespace string {
/**
* @desc: 判断是否是手机号码.
* @return: boolean.
*/
function isPhoneMobile(str:string):boolean;
/**
* @desc: 是否为空串.
* @return: boolean.
*/
function isEmpty(s?:string):boolean;
/**
* @desc: 获得字符串utf8编码后的字节长度.
* @return: u32.
*/
function getByteSize(s?:string):number;
/**
* @desc: 替换字符串中所有的strSrc->strDest.
* @return: string.
*/
function replace(str:string, strSrc:string, strDest:string):string;
}
/**
* @desc: 判断参数是否是null,undefined,NaN
* @return: boolean
*/
function isNull(e: any): boolean;
/**
* @desc: 将异步回调方式的方法转换成promise, 函数中的this可以为指定值.
* 例如: yield denodeify(fs.exists)(path);
* @param self: 指定的调用对象
* @return: promise.
*/
function denodeify(fn: any, self: any, argumentCount?: number): Promise<any>;
export interface base64Result {
c1 : number;
c2 : number;
c3 : number;
c4 : number;
data : Array<number>; // 字节数组
}
/**
* @desc: 判断是否是bigint.
*/
function bigint_check(v: any): boolean;
/**
* @desc: a+b.
*/
function bigint_add(a: any, b: any): any;
/**
* @desc: a-b.
*/
function bigint_minus(a: any, b: any): any;
/**
* @desc: a/b.
*/
function bigint_dividedBy(a: any, b: any): any;
/**
* @desc: a*b.
*/
function bigint_mul(a: any, b: any): any;
/**
* @desc: a==b.
*/
function bigint_equal(a: any, b: any): boolean;
/**
* @desc: a>b.
*/
function bigint_more_than(a: any, b: any): boolean;
/**
* @desc: a>=b.
*/
function bigint_more_than_e(a: any, b: any): boolean;
/**
* @desc: a<b.
*/
function bigint_less_than(a: any, b: any): boolean;
/**
* @desc: a<=b.
*/
function bigint_less_than_e(a: any, b: any): boolean;
/**
* @desc: 转换bigint->string.
* @param fixed: 小数位个数, 默认为0.
* @return: string.
*/
function bigint_toFixed(a: any, fixed?: boolean): string;
}
//
// crypt.
export declare namespace crypt {
/**
* @return 生成一个uuid字符串.
*/
function uuid(): string;
/**
* @desc: 计算字符串的crc32值
* @param crc 可以在这个值得基础上继续计算
* @return: number.
*/
function crc32( str:string, crc?:number ): number;
/**
* @desc: [客户端调用] 通过文件表单控件进行文件的crc32计算.
* @param fileObj: 表单文件对象, 例如表单为:
* <form enctype="multipart/form-data">
* <input id="file" type="file" name="file" multiple>
* </form>
* $('#file')[0].files[0] 即为第一个文件对象.
* @param cb: function(crc32) {}; 计算出来的crc32通过回调函数返回
*/
function crc32_file(fileObj:object, cb:(crc32:number)=>void):void;
/**
* @desc: [服务端调用] 直接对文件进行计算.
* @param filename: 文件路径
* @return: number
*/
function crc32_file(filename:string): number;
/**
* @desc: base64编码.
* @return: string.
*/
function base64_encode(arrByte:Buffer): string;
/**
* @desc: base64编码.
* @param arrByte: 字节数组.
* @return: string.
*/
function base64_encode(arrByte:Array<number>): string;
/**
* @desc: base64解码.
* @return: 字节数组.
*/
function base64_decode(strBase64:string):Array<number>;
/**
* @desc: [服务端端调用] 使用上次的解码的数据继续进行base64解码.
* @return:
{
c1,
c2,
c3,
c4,
data, // 字节数组
}.
*/
function base64_decode(strBase64:string, c2?:number, c3?:number, c4?:number): base64Result;
}
export interface Options {
defaultTimeout?: number;
}
//
// nav.
export declare namespace nav {
/**
* @desc: 使用跳转函数初始化.
* @param navCallback: function(object); 触发页面切换时的回调.
* @param urlObjEquelCallback: function(obj1, obj2) : bool; 判断两个页面是否相等.
* @param options: {
defaultTimeout: 10000,
}
* @return:
*/
function init(navCallback:(object:any)=>void, urlObjEquelCallback:(obj1:any, obj2:any)=>boolean, options?:Options):void;
/**
* @desc: 跳转至指定位置.
* @param urlObject: null则当前页面刷新.
* @return:
*/
function go(urlObject:any):void;
/**
* @desc: 记录一个新页面.
* @param urlObject: 包含参数等链接的信息.
* @return: 浏览器锚点url.
//
// string.
namespace string {
/**
* @desc: 判断是否是手机号码.
* @return: boolean.
*/
function push(urlObject:any):void;
/**
* @desc: 刷新页面.
*/
function refresh():void;
/**
* @desc 刷新指定元素.
* @param elem: jquery对象.
*/
function refresh_elem(elem:object, url:string):void;
/**
* @desc: 寻找指定的url
* @return: url.
*/
function url(anchor:string):string;
}
function isPhoneMobile(str: string): boolean;
/**
* @desc: 是否为空串.
* @return: boolean.
*/
function isEmpty(s?: string): boolean;
/**
* @desc: 获得字符串utf8编码后的字节长度.
* @return: u32.
*/
function getByteSize(s?: string): number;
/**
* @desc: 替换字符串中所有的strSrc->strDest.
* @return: string.
*/
function replace(str: string, strSrc: string, strDest: string): string;
}
//
// net.
export declare namespace net {
/**
* @desc: 进行ajax请求, 同 febs.nav.ajax.
*/
function ajax(option:object):void;
/**
* @desc: 使用fetch方式进行数据请求.
* 如果超時, 可以catch到 'timeout'
* @param option: 请求选项.
* {
method, // 请求方法 get, post, delete 等.
mode, // 'no-cors', 'same-origin'等; (可忽略)
headers, // 请求header, 例如:
{
"Content-Type": "application/json",
"Accept": 'application/json',
}
body, // 请求内容.
timeout, // 超时 (ms), 默认为5000,
credentials, // 携带了credentials='include'则服务器需设置Access-Control-Allow-Credentials
}
* @return: 返回 Promise;
* @e.g.
febs.net.fetch(url, {})
.then(response=>response.json())
.then(data=>{})
.catch(err=>{
if (err === 'timeout) // 超时.
});
*/
function fetch(url:string, option:object):Promise<any>;
/**
* @desc: jsonp方式获取数据.
* 如果超時, 可以catch到 'timeout'
* @param option: 请求选项同fetch. 可以附带如下的更多属性. jsonp只能使用`get`方式.
* {
jsonpCallback, // jsonp请求时附带到地址中的callback参数, 默认为 'callback';
// 服务端需将查询字符串中的此参数作为返回数据中 `callback`([data])的 callback值
}
* @return: 返回 Promise;
* @e.g.
febs.net.jsonp(url, {})
.then(response=>response.json())
.then(data=>{})
.catch(err=>{
if (err === 'timeout) // 超时.
});
*/
function jsonp(url:string, option:object):Promise<any>;
}
export interface base64Result {
c1: number;
c2: number;
c3: number;
c4: number;
data: Array<number>; // 字节数组
}
//
// exception.
export class exception {
constructor(msg:string, code:string, filename:string, line:number);
/** @desc: 错误代码 */
code:string;
/** @desc: 错误消息 */
msg:string;
/** @desc: 错误文件 */
filename:string;
/** @desc: 错误所在行 */
line:string;
}
//
// crypt.
export namespace crypt {
/**
* @return 生成一个uuid字符串.
*/
function uuid(): string;
/**
* @desc: 计算字符串的crc32值
* @param crc 可以在这个值得基础上继续计算
* @return: number.
*/
function crc32(str: string, crc?: number): number;
/**
* @desc: [客户端调用] 通过文件表单控件进行文件的crc32计算.
* @param fileObj: 表单文件对象, 例如表单为:
* <form enctype="multipart/form-data">
* <input id="file" type="file" name="file" multiple>
* </form>
* $('#file')[0].files[0] 即为第一个文件对象.
* @param cb: function(crc32) {}; 计算出来的crc32通过回调函数返回
*/
function crc32_file(fileObj: object, cb: (crc32: number) => void): void;
/**
* @desc: [服务端调用] 直接对文件进行计算.
* @param filename: 文件路径
* @return: number
*/
function crc32_file(filename: string): number;
/**
* @desc: base64编码.
* @return: string.
*/
function base64_encode(arrByte: Buffer): string;
/**
* @desc: base64编码.
* @param arrByte: 字节数组.
* @return: string.
*/
function base64_encode(arrByte: Array<number>): string;
/**
* @desc: base64解码.
* @return: 字节数组.
*/
function base64_decode(strBase64: string): Array<number>;
/**
* @desc: [服务端端调用] 使用上次的解码的数据继续进行base64解码.
* @return:
{
c1,
c2,
c3,
c4,
data, // 字节数组
}.
*/
function base64_decode(strBase64: string, c2?: number, c3?: number, c4?: number): base64Result;
}
export interface DirExplorerRet {
files: Array<string>;
dirs: Array<string>;
}
export interface Options {
defaultTimeout?: number;
}
//
// nav.
export namespace nav {
/**
* @desc: 使用跳转函数初始化.
* @param navCallback: function(object); 触发页面切换时的回调.
* @param urlObjEquelCallback: function(obj1, obj2) : bool; 判断两个页面是否相等.
* @param options: {
defaultTimeout: 10000,
}
* @return:
*/
function init(navCallback: (object: any) => void, urlObjEquelCallback: (obj1: any, obj2: any) => boolean, options?: Options): void;
/**
* @desc: 跳转至指定位置.
* @param urlObject: null则当前页面刷新.
* @return:
*/
function go(urlObject: any): void;
/**
* @desc: 记录一个新页面.
* @param urlObject: 包含参数等链接的信息.
* @return: 浏览器锚点url.
*/
function push(urlObject: any): void;
/**
* @desc: 刷新页面.
*/
function refresh(): void;
/**
* @desc 刷新指定元素.
* @param elem: jquery对象.
*/
function refresh_elem(elem: object, url: string): void;
/**
* @desc: 寻找指定的url
* @return: url.
*/
function url(anchor: string): string;
}
//
// file.
export declare namespace file {
/**
* @desc: 判断文件夹是否存在.
* @return: boolean.
*/
function dirIsExist(dir:string):boolean;
/**
* @desc: 保证文件夹存在.
* @return: bool. 若不存在新建; 文件夹存在返回true.
*/
function dirAssure(dir:string):boolean;
/**
* @desc: 复制文件夹.
* @param callback: (err) => {}, 执行此函数时表示复制完成.
* @return: bool.
*/
function dirCopy(src:string, dest:string, callback:(err:any)=>void):void;
/**
* @desc: 删除文件夹.
* @return:bool.指明是否删除.
*/
function dirRemoveRecursive(dir:string):boolean;
/**
* @desc: 获取当前目录下的子文件与子目录.
* @param dir: 要搜索的目录路径.
* @param pattern: 子文件或子目录名称,匹配的正则表达式
* 仅从名称的第一个字符开始匹配, 例如: / a.* /, 匹配 a开头的文件名.
* @return: {files:[], dirs:[]}; 发生错误返回null.
*/
function dirExplorer(dir:string):DirExplorerRet|null;
/**
* @desc: 递归获取当前目录下的所有子文件.
* @param dir: 要搜索的目录路径.
* @param pattern: 子文件或子目录名称,匹配的正则表达式
* 仅从名称的第一个字符开始匹配, 例如: / a.* /, 匹配 a开头的文件名.
* @return: Array; 发生错误返回null.
*/
function dirExplorerFilesRecursive(dir:string, pattern:RegExp):Array<string>|null;
/**
* @desc: 递归获取当前目录下的所有子目录.
* @param dir: 要搜索的目录路径.
* @param pattern: 子文件或子目录名称,匹配的正则表达式
* 仅从名称的第一个字符开始匹配, 例如: / a.* /, 匹配 a开头的文件名.
* @return: Array; 发生错误返回null.
*/
function dirExplorerDirsRecursive(dir:string, pattern:RegExp):Array<string>|null;
/**
* @desc: 获得文件的字节大小.
* @return: number.-1表示错误.
*/
function fileSize(file:string):number;
/**
* @desc: 判断文件是否存在.
* @return: boolean.
*/
function fileIsExist(file:string):boolean;
/**
* @desc: 复制文件.
* @param callback: (err) => {}, 执行此函数时表示复制完成.
* @return: bool.
*/
function fileCopy(src:string, dest:string, callback:(err:any)=>void):boolean;
/**
* @desc: 移除文件.
* @return: bool.指明是否删除.
*/
function fileRemove(file:string):boolean;
}
//
// net.
export namespace net {
/**
* @desc: 进行ajax请求, 同 febs.nav.ajax.
*/
function ajax(option: object): void;
/**
* @desc: 使用fetch方式进行数据请求.
* 如果超時, 可以catch到 'timeout'
* @param option: 请求选项.
* {
method, // 请求方法 get, post, delete 等.
mode, // 'no-cors', 'same-origin'等; (可忽略)
headers, // 请求header, 例如:
{
"Content-Type": "application/json",
"Accept": 'application/json',
}
body, // 请求内容.
timeout, // 超时 (ms), 默认为5000,
credentials, // 携带了credentials='include'则服务器需设置Access-Control-Allow-Credentials
}
* @return: 返回 Promise;
* @e.g.
febs.net.fetch(url, {})
.then(response=>response.json())
.then(data=>{})
.catch(err=>{
if (err === 'timeout) // 超时.
});
*/
function fetch(url: string, option: object): Promise<any>;
/**
* @desc: jsonp方式获取数据.
* 如果超時, 可以catch到 'timeout'
* @param option: 请求选项同fetch. 可以附带如下的更多属性. jsonp只能使用`get`方式.
* {
jsonpCallback, // jsonp请求时附带到地址中的callback参数, 默认为 'callback';
// 服务端需将查询字符串中的此参数作为返回数据中 `callback`([data])的 callback值
}
* @return: 返回 Promise;
* @e.g.
febs.net.jsonp(url, {})
.then(response=>response.json())
.then(data=>{})
.catch(err=>{
if (err === 'timeout) // 超时.
});
*/
function jsonp(url: string, option: object): Promise<any>;
}
//
// controls
export declare namespace controls {
/**
* @desc: 使用延时显示加载框.
* @param text: 提示文本.
* @param timeout: 延时显示, 默认为0.
* @return:
*/
function loading_show(text:string, timeout?:number):any;
//
// exception.
export class exception {
constructor(msg: string, code: string, filename: string, line: number);
/**
* @desc: 通过每500ms改变文本的方式显示加载框; 例如显示 3,2,1,3,2,1循环显示.
* @param textArray: 变化的文本数组.
* @param changeTextCB: 当前显示文本的回调. function(text).
* @param hideCB: 隐藏加载框时的设置文本的函数. function().
* @return:
*/
function loading_show_text(textArray:Array<string>, changeTextCB:(text:string)=>void, hideCB:()=>void):void;
/** @desc: 错误代码 */
code: string;
/** @desc: 错误消息 */
msg: string;
/** @desc: 错误文件 */
filename: string;
/** @desc: 错误所在行 */
line: string;
}
/**
* @desc: 隐藏加载对话框
* @return:
*/
function loading_hide():void;
export interface DirExplorerRet {
files: Array<string>;
dirs: Array<string>;
}
/**
* @desc: 初始化page控件.
* @param elem: 将控件插入到elem中, elem是一个jquery的对象.
* @param curPage: 当前页
* @param pageCount: 总页数
* @param totalCount: 总条数
* @param pageCallback: 页面跳转函数, function(page) {}
* @return:
*/
function page_init(elem:any, curPage:number, pageCount:number, totalCount:number, pageCallback:(page:any)=>void):void;
/** [客户端调用] 需要 jquery,jquery.form 库支持.
* 并且 <input type="file" name="file"... 中, 必须存在name属性.
* 使用post方式上传文件.
* @param cfg: object, 其中
* {
* data: , // 上传到服务器的任意字符串数据.
* formObj: , // 含有enctype="multipart/form-data"的form
* fileObj: , // form中的file对象
* uploadUrl: , // 上传文件内容的url. 系统将自动使用 uploadUrl?crc32=&size=的方式来上传.
* maxFileSize: , // 允许上传的最大文件.0表示无限制.默认为0
* fileType: , // 允许的文件类型. 如: image/gif,image/jpeg,image/x-png
* finishCB: , // 上传完成后的回调. function(err, fileObj, serverData)
* // err: - 'no file' 未选择文件.
* // - 'size too big' 文件太大.
* // - 'check crc32 err' 计算本地文件hash值时错误.
* // - 'ajax err' ajax上传时出错.
* // serverData: 服务器返回的数据.
* progressCB: , // 上传进度的回调. function(fileObj, percent)
* }
*/
function upload(cfg:any): void;
/**
* [客户端调用] post方式上传文件.
* 使用文件流片段的方式. 每个片段进行验证.速度稍慢
* @param cfg: object, 其中
* {
* data: , // 上传到服务器的任意字符串数据,将在发送请求时发送.
* fileBase64Str: , // 文件的base64格式字符串
* headerUrl: , // 上传开始前的header请求地址.
* uploadUrl: , // 上传文件内容的url.
* chunkSize: 1024*20, // 每次上传的块大小.默认20kb
* finishCB: , // 上传完成后的回调. function(err, serverData)
* // err: - 'no file' 未选择文件.
* // - 'size too big' 文件太大.
* // - 'check crc32 err' 计算本地文件hash值时错误.
* // - 'ajax err' ajax上传时出错.
* // serverData: 服务器返回的数据. 至少包含一个filename
* progressCB: , // 上传进度的回调. function(percent),
* headers: { // 设置request headers
* 'customHeader': 'value'
* },
* crossDomain: true, // 跨域, 默认为true
* withCredentials: true, // 是否附带cookie, 默认为true
* }
*/
function uploadBase64(cfg:any):void;
}
export declare namespace controls {
namespace upload {
//
// file.
export namespace file {
/**
* [服务端调用] 接收上传文件内容.
* @param conditionCB: async function(data, filesize, filename, filemimeType):string.
* - data: 用户上传的数据.
* - filesize: 将要存储的文件大小.
* - filename: 上传的文件名.
* - filemimeType: 文件类型, 例如: 'image/jpeg'.
* - return: 存储的文件路径, 返回null表示不存储.
* @return Promise.
* @resolve
* - bool. 指明是否存储成功.
* @desc: 判断文件夹是否存在.
* @return: boolean.
*/
function accept(app:any, conditionCB:(data:any, filesize:number, filename:string, filemimeType:string)=>string|null):Promise<boolean>;
}
namespace uploadBase64 {
function dirIsExist(dir: string): boolean;
/**
* 准备接收上传文件.
* @param conditionCB: async function(data, filesize):string.
* - filesize: 将要存储的文件大小(base64大小)
* - data: 用户上传的数据.
* - return: 本地存储的文件路径, 返回null表示不存储. 存储的文件必须不存在.
* @param sessionSet: function(data){} 用于设置存储在session中的临时文件信息;
* @return Promise.
* @resolve
* - bool. 指明是否开始接收文件流.
* @desc: 保证文件夹存在.
* @return: bool. 若不存在新建; 文件夹存在返回true.
*/
function acceptHeader(app:any, conditionCB:(filesize:number,data:any)=>string|null, sessionSet:(data:any)=>void):Promise<boolean>;
function dirAssure(dir: string): boolean;
/**
* 上传文件内容.
* 发生错误会自动调用 cleanup
* @param finishCB: async function(filename):object.
* - filename: 本地存储的文件名.
* - return: 返回给客户端的数据. 不能包含err数据.
*
* @param sessionGet: function() {} 用于获取存储在session中的临时文件信息;
* @param sessionSet: function(data){} 用于设置存储在session中的临时文件信息;
* @param sessionClear: function() {} 用于清除存储在session中的临时信息
* @return Promise
* @resolve
* @desc: 复制文件夹.
* @param callback: (err) => {}, 执行此函数时表示复制完成.
* @return: bool.
*/
function accept(app:any, finishCB:(filename:string)=>any, sessionGet:()=>any, sessionSet:(data:any)=>void, sessionClear:()=>void) : Promise<void>;
function dirCopy(src: string, dest: string, callback: (err: any) => void): void;
/**
* @desc: 在用户登出或其他中断传输中清除上传的数据.
* @param sessionGet: function() {} 用于获取存储在session中的临时文件信息;
* @param sessionClear: function() {} 用于清除存储在session中的临时信息
* @desc: 删除文件夹.
* @return:bool.指明是否删除.
*/
function dirRemoveRecursive(dir: string): boolean;
/**
* @desc: 获取当前目录下的子文件与子目录.
* @param dir: 要搜索的目录路径.
* @param pattern: 子文件或子目录名称,匹配的正则表达式
* 仅从名称的第一个字符开始匹配, 例如: / a.* /, 匹配 a开头的文件名.
* @return: {files:[], dirs:[]}; 发生错误返回null.
*/
function dirExplorer(dir: string): DirExplorerRet | null;
/**
* @desc: 递归获取当前目录下的所有子文件.
* @param dir: 要搜索的目录路径.
* @param pattern: 子文件或子目录名称,匹配的正则表达式
* 仅从名称的第一个字符开始匹配, 例如: / a.* /, 匹配 a开头的文件名.
* @return: Array; 发生错误返回null.
*/
function dirExplorerFilesRecursive(dir: string, pattern: RegExp): Array<string> | null;
/**
* @desc: 递归获取当前目录下的所有子目录.
* @param dir: 要搜索的目录路径.
* @param pattern: 子文件或子目录名称,匹配的正则表达式
* 仅从名称的第一个字符开始匹配, 例如: / a.* /, 匹配 a开头的文件名.
* @return: Array; 发生错误返回null.
*/
function dirExplorerDirsRecursive(dir: string, pattern: RegExp): Array<string> | null;
/**
* @desc: 获得文件的字节大小.
* @return: number.-1表示错误.
*/
function fileSize(file: string): number;
/**
* @desc: 判断文件是否存在.
* @return: boolean.
*/
function fileIsExist(file: string): boolean;
/**
* @desc: 复制文件.
* @param callback: (err) => {}, 执行此函数时表示复制完成.
* @return: bool.
*/
function fileCopy(src: string, dest: string, callback: (err: any) => void): boolean;
/**
* @desc: 移除文件.
* @return: bool.指明是否删除.
*/
function fileRemove(file: string): boolean;
}
//
// controls
export namespace controls {
/**
* @desc: 使用延时显示加载框.
* @param text: 提示文本.
* @param timeout: 延时显示, 默认为0.
* @return:
*/
function cleanup(sessionGet:()=>any, sessionClear:()=>void, cleanFile?:boolean):void;
function loading_show(text: string, timeout?: number): any;
/**
* @desc: 通过每500ms改变文本的方式显示加载框; 例如显示 3,2,1,3,2,1循环显示.
* @param textArray: 变化的文本数组.
* @param changeTextCB: 当前显示文本的回调. function(text).
* @param hideCB: 隐藏加载框时的设置文本的函数. function().
* @return:
*/
function loading_show_text(textArray: Array<string>, changeTextCB: (text: string) => void, hideCB: () => void): void;
/**
* @desc: 隐藏加载对话框
* @return:
*/
function loading_hide(): void;
/**
* @desc: 初始化page控件.
* @param elem: 将控件插入到elem中, elem是一个jquery的对象.
* @param curPage: 当前页
* @param pageCount: 总页数
* @param totalCount: 总条数
* @param pageCallback: 页面跳转函数, function(page) {}
* @return:
*/
function page_init(elem: any, curPage: number, pageCount: number, totalCount: number, pageCallback: (page: any) => void): void;
/** [客户端调用] 需要 jquery,jquery.form 库支持.
* 并且 <input type="file" name="file"... 中, 必须存在name属性.
* 使用post方式上传文件.
* @param cfg: object, 其中
* {
* data: , // 上传到服务器的任意字符串数据.
* formObj: , // 含有enctype="multipart/form-data"的form
* fileObj: , // form中的file对象
* uploadUrl: , // 上传文件内容的url. 系统将自动使用 uploadUrl?crc32=&size=的方式来上传.
* maxFileSize: , // 允许上传的最大文件.0表示无限制.默认为0
* fileType: , // 允许的文件类型. 如: image/gif,image/jpeg,image/x-png
* finishCB: , // 上传完成后的回调. function(err, fileObj, serverData)
* // err: - 'no file' 未选择文件.
* // - 'size too big' 文件太大.
* // - 'check crc32 err' 计算本地文件hash值时错误.
* // - 'ajax err' ajax上传时出错.
* // serverData: 服务器返回的数据.
* progressCB: , // 上传进度的回调. function(fileObj, percent)
* }
*/
function upload(cfg: any): void;
/**
* [客户端调用] post方式上传文件.
* 使用文件流片段的方式. 每个片段进行验证.速度稍慢
* @param cfg: object, 其中
* {
* data: , // 上传到服务器的任意字符串数据,将在发送请求时发送.
* fileBase64Str: , // 文件的base64格式字符串
* headerUrl: , // 上传开始前的header请求地址.
* uploadUrl: , // 上传文件内容的url.
* chunkSize: 1024*20, // 每次上传的块大小.默认20kb
* finishCB: , // 上传完成后的回调. function(err, serverData)
* // err: - 'no file' 未选择文件.
* // - 'size too big' 文件太大.
* // - 'check crc32 err' 计算本地文件hash值时错误.
* // - 'ajax err' ajax上传时出错.
* // serverData: 服务器返回的数据. 至少包含一个filename
* progressCB: , // 上传进度的回调. function(percent),
* headers: { // 设置request headers
* 'customHeader': 'value'
* },
* crossDomain: true, // 跨域, 默认为true
* withCredentials: true, // 是否附带cookie, 默认为true
* }
*/
function uploadBase64(cfg: any): void;
}
}
export declare namespace exception {
export namespace controls {
namespace upload {
/**
* [服务端调用] 接收上传文件内容.
* @param conditionCB: async function(data, filesize, filename, filemimeType):string.
* - data: 用户上传的数据.
* - filesize: 将要存储的文件大小.
* - filename: 上传的文件名.
* - filemimeType: 文件类型, 例如: 'image/jpeg'.
* - return: 存储的文件路径, 返回null表示不存储.
* @return Promise.
* @resolve
* - bool. 指明是否存储成功.
*/
function accept(app: any, conditionCB: (data: any, filesize: number, filename: string, filemimeType: string) => string | null): Promise<boolean>;
}
/** @desc: 一般错误. */
const ERROR:string;
/** @desc: 参数错误. */
const PARAM:string;
/** @desc: 越界 */
const OUT_OF_RANGE:string;
namespace uploadBase64 {
/**
* 准备接收上传文件.
* @param conditionCB: async function(data, filesize):string.
* - filesize: 将要存储的文件大小(base64大小)
* - data: 用户上传的数据.
* - return: 本地存储的文件路径, 返回null表示不存储. 存储的文件必须不存在.
* @param sessionSet: function(data){} 用于设置存储在session中的临时文件信息;
* @return Promise.
* @resolve
* - bool. 指明是否开始接收文件流.
*/
function acceptHeader(app: any, conditionCB: (filesize: number, data: any) => string | null, sessionSet: (data: any) => void): Promise<boolean>;
/**
* 上传文件内容.
* 发生错误会自动调用 cleanup
* @param finishCB: async function(filename):object.
* - filename: 本地存储的文件名.
* - return: 返回给客户端的数据. 不能包含err数据.
*
* @param sessionGet: function() {} 用于获取存储在session中的临时文件信息;
* @param sessionSet: function(data){} 用于设置存储在session中的临时文件信息;
* @param sessionClear: function() {} 用于清除存储在session中的临时信息
* @return Promise
* @resolve
*/
function accept(app: any, finishCB: (filename: string) => any, sessionGet: () => any, sessionSet: (data: any) => void, sessionClear: () => void): Promise<void>;
/**
* @desc: 在用户登出或其他中断传输中清除上传的数据.
* @param sessionGet: function() {} 用于获取存储在session中的临时文件信息;
* @param sessionClear: function() {} 用于清除存储在session中的临时信息
* @return:
*/
function cleanup(sessionGet: () => any, sessionClear: () => void, cleanFile?: boolean): void;
}
}
export namespace exception {
/** @desc: 一般错误. */
const ERROR: string;
/** @desc: 参数错误. */
const PARAM: string;
/** @desc: 越界 */
const OUT_OF_RANGE: string;
}
}
export default febs;
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc