2017-03-04 20:10:46 +00:00
|
|
|
import * as plugins from './smartfile.plugins'
|
|
|
|
|
|
|
|
export interface ISmartfileConstructorOptions {
|
|
|
|
path?: string
|
2017-04-29 15:20:09 +00:00
|
|
|
contentString?: string
|
2017-03-04 20:10:46 +00:00
|
|
|
contentBuffer?: Buffer
|
|
|
|
}
|
2016-09-20 15:56:49 +00:00
|
|
|
|
2017-04-27 14:48:08 +00:00
|
|
|
/**
|
|
|
|
* class Smartfile
|
|
|
|
* -> is vinyl file compatible
|
|
|
|
*/
|
2017-03-04 20:10:46 +00:00
|
|
|
export class Smartfile {
|
2017-04-27 14:48:08 +00:00
|
|
|
/**
|
|
|
|
* the full path of the file on disk
|
|
|
|
*/
|
2017-03-04 20:10:46 +00:00
|
|
|
path: string
|
2017-04-27 14:48:08 +00:00
|
|
|
|
|
|
|
/**
|
2017-04-29 15:20:09 +00:00
|
|
|
* gulp-compatibility: alias of this.contentBuffer
|
2017-04-27 14:48:08 +00:00
|
|
|
*/
|
2017-03-04 20:10:46 +00:00
|
|
|
contents: Buffer
|
2017-04-27 14:48:08 +00:00
|
|
|
|
2017-04-29 15:20:09 +00:00
|
|
|
/**
|
|
|
|
* the content of the file as Buffer
|
|
|
|
*/
|
|
|
|
contentBuffer: Buffer
|
|
|
|
|
2017-04-27 14:48:08 +00:00
|
|
|
/**
|
|
|
|
* The current working directory of the file
|
|
|
|
*/
|
|
|
|
cwd: string
|
|
|
|
|
|
|
|
/**
|
|
|
|
* sync the file with disk
|
|
|
|
*/
|
|
|
|
sync: boolean
|
|
|
|
|
|
|
|
/**
|
|
|
|
* the constructor of Smartfile
|
|
|
|
* @param optionsArg
|
|
|
|
*/
|
|
|
|
constructor (optionsArg: ISmartfileConstructorOptions) {
|
2017-03-04 20:10:46 +00:00
|
|
|
if (optionsArg.contentBuffer) {
|
2017-04-29 15:20:09 +00:00
|
|
|
this.contentBuffer = optionsArg.contentBuffer
|
2017-03-04 20:10:46 +00:00
|
|
|
this.contents = optionsArg.contentBuffer
|
2017-04-29 15:20:09 +00:00
|
|
|
} else if (optionsArg.contentString) {
|
|
|
|
this.contents = Buffer.from(optionsArg.contentString)
|
|
|
|
} else {
|
|
|
|
console.log('created empty Smartfile?')
|
2016-09-20 15:56:49 +00:00
|
|
|
}
|
2017-03-04 20:10:46 +00:00
|
|
|
this.path = optionsArg.path
|
|
|
|
}
|
|
|
|
|
2017-04-27 14:48:08 +00:00
|
|
|
/**
|
|
|
|
* return relative path of file
|
|
|
|
* ->
|
|
|
|
*/
|
|
|
|
get relative () {
|
|
|
|
return ''
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2017-03-04 20:10:46 +00:00
|
|
|
/**
|
|
|
|
* set contents from string
|
|
|
|
* @param contentString
|
|
|
|
*/
|
2017-04-27 14:48:08 +00:00
|
|
|
setContentsFromString(contentString: string) {
|
2017-03-04 20:10:46 +00:00
|
|
|
this.contents = new Buffer(contentString)
|
|
|
|
}
|
2017-04-27 14:48:08 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* write file to disk
|
|
|
|
*/
|
|
|
|
async write () {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* read file from disk
|
|
|
|
*/
|
|
|
|
async read () {
|
|
|
|
}
|
2016-09-20 15:56:49 +00:00
|
|
|
}
|