Compare commits

..

12 Commits

Author SHA1 Message Date
5493d3cd5d 4.2.10 2017-05-07 20:51:02 +02:00
bd50c122eb fix isDirectory() to return false instead of failing 2017-05-07 20:50:59 +02:00
51f9d76a64 4.2.9 2017-05-02 00:07:43 +02:00
c2f809f9cf revert false assumption 2017-05-02 00:07:39 +02:00
9f311984ac 4.2.8 2017-05-01 23:38:59 +02:00
7515ecf9ce toStringSynv now creates normal strings 2017-05-01 23:38:56 +02:00
fb9766e93b 4.2.7 2017-05-01 22:27:24 +02:00
9cfd147fdc update smartfile cwd 2017-05-01 22:27:15 +02:00
18ff99aef7 4.2.6 2017-05-01 22:07:31 +02:00
46b1151201 update smartfile relative path handling 2017-05-01 22:07:25 +02:00
8e19586e47 4.2.5 2017-05-01 19:49:38 +02:00
9fc581b866 update 2017-05-01 19:49:34 +02:00
8 changed files with 45 additions and 21 deletions

View File

@ -66,4 +66,5 @@ export declare class Smartfile {
isBuffer(): boolean; isBuffer(): boolean;
isDirectory(): boolean; isDirectory(): boolean;
isStream(): boolean; isStream(): boolean;
isSymbolic(): boolean;
} }

View File

@ -8,6 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
}); });
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const plugins = require("./smartfile.plugins");
/** /**
* class Smartfile * class Smartfile
* -> is vinyl file compatible * -> is vinyl file compatible
@ -67,13 +68,13 @@ class Smartfile {
* vinyl-compatibility * vinyl-compatibility
*/ */
get cwd() { get cwd() {
return this.base; return process.cwd();
} }
/** /**
* return relative path of file * return relative path of file
*/ */
get relative() { get relative() {
return this.path; return plugins.path.relative(this.base, this.path);
} }
/** /**
* return truw when the file has content * return truw when the file has content
@ -99,6 +100,9 @@ class Smartfile {
isStream() { isStream() {
return false; return false;
} }
isSymbolic() {
return false;
}
} }
exports.Smartfile = Smartfile; exports.Smartfile = Smartfile;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxlLmNsYXNzZXMuc21hcnRmaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRmaWxlLmNsYXNzZXMuc21hcnRmaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFTQTs7O0dBR0c7QUFDSDtJQXFCRTs7O09BR0c7SUFDSCxZQUFhLFVBQXdDO1FBQ25ELEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQTtRQUMvQyxDQUFDO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDdEQsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO1FBQ3pDLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUE7UUFDM0IsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFBO0lBQzdCLENBQUM7SUFHRDs7O09BR0c7SUFDSCxxQkFBcUIsQ0FBQyxhQUFxQjtRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNHLEtBQUs7O1FBRVgsQ0FBQztLQUFBO0lBRUQ7O09BRUc7SUFDRyxJQUFJOztRQUNWLENBQUM7S0FBQTtJQUVELGtEQUFrRDtJQUNsRCxzQkFBc0I7SUFDdEIsa0RBQWtEO0lBQ2xEOztPQUVHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUE7SUFDM0IsQ0FBQztJQUNELElBQUksUUFBUSxDQUFFLFdBQVc7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUE7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUE7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUE7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTTtRQUNKLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQTtRQUNiLENBQUM7UUFDRCxNQUFNLENBQUMsS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLFlBQVksTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNwQyxNQUFNLENBQUMsSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUNELE1BQU0sQ0FBQyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsV0FBVztRQUNULE1BQU0sQ0FBQyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sQ0FBQyxLQUFLLENBQUE7SUFDZCxDQUFDO0NBQ0Y7QUFqSEQsOEJBaUhDIn0= //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxlLmNsYXNzZXMuc21hcnRmaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRmaWxlLmNsYXNzZXMuc21hcnRmaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSwrQ0FBOEM7QUFTOUM7OztHQUdHO0FBQ0g7SUFxQkU7OztPQUdHO0lBQ0gsWUFBYSxVQUF3QztRQUNuRCxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUE7UUFDL0MsQ0FBQztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ3RELENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtRQUN6QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFBO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQTtJQUM3QixDQUFDO0lBR0Q7OztPQUdHO0lBQ0gscUJBQXFCLENBQUMsYUFBcUI7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDRyxLQUFLOztRQUVYLENBQUM7S0FBQTtJQUVEOztPQUVHO0lBQ0csSUFBSTs7UUFDVixDQUFDO0tBQUE7SUFFRCxrREFBa0Q7SUFDbEQsc0JBQXNCO0lBQ3RCLGtEQUFrRDtJQUNsRDs7T0FFRztJQUNILElBQUksUUFBUTtRQUNWLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFBO0lBQzNCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBRSxXQUFXO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksR0FBRztRQUNMLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUE7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3BELENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUE7UUFDYixDQUFDO1FBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDTixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxZQUFZLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQTtRQUNiLENBQUM7UUFDRCxNQUFNLENBQUMsS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLENBQUMsS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLENBQUMsS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELFVBQVU7UUFDUixNQUFNLENBQUMsS0FBSyxDQUFBO0lBQ2QsQ0FBQztDQUNGO0FBckhELDhCQXFIQyJ9

11
dist/smartfile.fs.js vendored

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
{ {
"name": "smartfile", "name": "smartfile",
"version": "4.2.4", "version": "4.2.10",
"description": "offers smart ways to work with files in nodejs", "description": "offers smart ways to work with files in nodejs",
"main": "dist/index.js", "main": "dist/index.js",
"typings": "dist/index.d.ts", "typings": "dist/index.d.ts",
@ -40,7 +40,7 @@
"vinyl-file": "^3.0.0" "vinyl-file": "^3.0.0"
}, },
"devDependencies": { "devDependencies": {
"gulp-function": "^2.2.3", "gulp-function": "^2.2.9",
"tapbundle": "^1.0.10" "tapbundle": "^1.0.10"
} }
} }

View File

@ -51,9 +51,10 @@ tap.test('.fs.listFileTree() -> should get a file tree', async () => {
expect(folderArrayArg).to.not.deep.include('mytest.json') expect(folderArrayArg).to.not.deep.include('mytest.json')
}) })
tap.test('.fs.toObjectFromFileTree -> should read a file tree into an Object', async () => { tap.test('.fs.fileTreeToObject -> should read a file tree into an Object', async () => {
let fileArrayArg = await smartfile.fs.fileTreeToObject(path.resolve('./test/'), '**/*.txt') let fileArrayArg = await smartfile.fs.fileTreeToObject(path.resolve('./test/'), '**/*.txt')
// expect(fileArrayArg[1]).to.be.instanceof(smartfile.Smartfile) expect(fileArrayArg[0]).to.be.instanceof(smartfile.Smartfile)
expect(fileArrayArg[0].contents.toString()).to.equal(fileArrayArg[0].contentBuffer.toString())
}) })
tap.test('.fs.copy() -> should copy a directory', async () => { tap.test('.fs.copy() -> should copy a directory', async () => {

View File

@ -87,14 +87,14 @@ export class Smartfile {
* vinyl-compatibility * vinyl-compatibility
*/ */
get cwd () { get cwd () {
return this.base return process.cwd()
} }
/** /**
* return relative path of file * return relative path of file
*/ */
get relative (): string { get relative (): string {
return this.path return plugins.path.relative(this.base, this.path)
} }
/** /**
@ -124,4 +124,8 @@ export class Smartfile {
isStream () { isStream () {
return false return false
} }
isSymbolic () {
return false
}
} }

View File

@ -43,7 +43,11 @@ export let fileExists = function (filePath) {
* Checks if given path points to an existing directory * Checks if given path points to an existing directory
*/ */
export let isDirectory = function (pathArg): boolean { export let isDirectory = function (pathArg): boolean {
try {
return plugins.fsExtra.statSync(pathArg).isDirectory() return plugins.fsExtra.statSync(pathArg).isDirectory()
} catch (err) {
return false
}
} }
/** /**
@ -203,8 +207,8 @@ export let toObjectSync = function (filePathArg, fileTypeArg?) {
* @param filePath * @param filePath
* @returns {string|Buffer|any} * @returns {string|Buffer|any}
*/ */
export let toStringSync = function (filePath: string) { export let toStringSync = function (filePath: string): string {
let fileString = plugins.fsExtra.readFileSync(filePath, 'utf8') let fileString: any = plugins.fsExtra.readFileSync(filePath, 'utf8')
return fileString return fileString
} }
@ -220,10 +224,13 @@ export let fileTreeToObject = async (dirPathArg: string, miniMatchFilter: string
let fileTree = await listFileTree(dirPath, miniMatchFilter) let fileTree = await listFileTree(dirPath, miniMatchFilter)
let smartfileArray: Smartfile[] = [] let smartfileArray: Smartfile[] = []
for (let filePath of fileTree) { for (let filePath of fileTree) {
smartfileArray.push(new Smartfile({ let fileContentString = toStringSync(
contentBuffer: new Buffer(toStringSync(
plugins.path.join(dirPath, filePath) plugins.path.join(dirPath, filePath)
)), )
// push a read file as Smartfile
smartfileArray.push(new Smartfile({
contentBuffer: new Buffer(fileContentString),
base: dirPath, base: dirPath,
path: filePath path: filePath
})) }))

View File

@ -186,9 +186,9 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6:
version "4.1.11" version "4.1.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
gulp-function@^2.2.3: gulp-function@^2.2.9:
version "2.2.6" version "2.2.9"
resolved "https://registry.yarnpkg.com/gulp-function/-/gulp-function-2.2.6.tgz#e14c1eefdab4d4ac11d9f4abfdbe94115a12d10d" resolved "https://registry.yarnpkg.com/gulp-function/-/gulp-function-2.2.9.tgz#de513103db9d817e94bb8aab45f30bf286f19ae5"
dependencies: dependencies:
"@types/through2" "^2.0.32" "@types/through2" "^2.0.32"
smartq "^1.1.1" smartq "^1.1.1"