33 lines
1.1 KiB
TypeScript
33 lines
1.1 KiB
TypeScript
function isElement(node:any):boolean {
|
|
return !!(node && (node.nodeName || node.prop && node.attr && node.find));
|
|
}
|
|
|
|
export class FileLikeObject {
|
|
public lastModifiedDate:any;
|
|
public size:any;
|
|
public type:string;
|
|
public name:string;
|
|
|
|
public constructor(fileOrInput:any) {
|
|
let isInput = isElement(fileOrInput);
|
|
let fakePathOrObject = isInput ? fileOrInput.value : fileOrInput;
|
|
let postfix = typeof fakePathOrObject === 'string' ? 'FakePath' : 'Object';
|
|
let method = '_createFrom' + postfix;
|
|
(this as any)[method](fakePathOrObject);
|
|
}
|
|
|
|
public _createFromFakePath(path:string):void {
|
|
this.lastModifiedDate = void 0;
|
|
this.size = void 0;
|
|
this.type = 'like/' + path.slice(path.lastIndexOf('.') + 1).toLowerCase();
|
|
this.name = path.slice(path.lastIndexOf('/') + path.lastIndexOf('\\') + 2);
|
|
}
|
|
|
|
public _createFromObject(object:{size:number, type:string, name:string}):void {
|
|
// this.lastModifiedDate = copy(object.lastModifiedDate);
|
|
this.size = object.size;
|
|
this.type = object.type;
|
|
this.name = object.name;
|
|
}
|
|
}
|