Compare commits

..

4 Commits

Author SHA1 Message Date
2cb8c5117a 4.0.22 2016-09-29 14:17:49 +02:00
2c52dec8ea add removeMany and removeManySync 2016-09-29 14:17:46 +02:00
1fdd492eff 4.0.21 2016-09-24 21:42:49 +02:00
38354d2944 add ensureFile and ensureFileSync 2016-09-24 21:42:45 +02:00
6 changed files with 209 additions and 52 deletions

View File

@ -21,14 +21,6 @@ export declare let isDirectory: (pathArg: any) => boolean;
* Checks if a given path points to an existing file
*/
export declare let isFile: (pathArg: any) => boolean;
/**
* ensures that a directory is in place
*/
export declare let ensureDir: (dirPathArg: string) => plugins.q.Promise<{}>;
/**
* ensures that a directory is in place
*/
export declare let ensureDirSync: (dirPathArg: string) => void;
/**
* copies a file from A to B on the local disk
*/
@ -37,14 +29,46 @@ export declare let copy: (fromArg: string, toArg: string) => plugins.q.Promise<{
* copies a file SYNCHRONOUSLY from A to B on the local disk
*/
export declare let copySync: (fromArg: string, toArg: string) => boolean;
/**
* ensures that a directory is in place
*/
export declare let ensureDir: (dirPathArg: string) => plugins.q.Promise<{}>;
/**
* ensures that a directory is in place
*/
export declare let ensureDirSync: (dirPathArg: string) => void;
/**
* ensures that a file is on disk
* @param filePath the filePath to ensureDir
* @param the fileContent to place into a new file in case it doesn't exist yet
* @returns Promise<void>
* @exec ASYNC
*/
export declare let ensureFile: (filePathArg: any, initFileStringArg: any) => plugins.q.Promise<void>;
/**
* ensures that a file is on disk
* @param filePath the filePath to ensureDir
* @param the fileContent to place into a new file in case it doesn't exist yet
* @returns Promise<void>
* @exec SYNC
*/
export declare let ensureFileSync: (filePathArg: string, initFileStringArg: string) => void;
/**
* removes a file or folder from local disk
*/
export declare let remove: (pathArg: string) => plugins.q.Promise<{}>;
export declare let remove: (pathArg: string) => plugins.q.Promise<void>;
/**
* removes a file SYNCHRONOUSLY from local disk
*/
export declare let removeSync: (pathArg: string) => boolean;
/**
* removes an array of filePaths from disk
*/
export declare let removeMany: (filePathArrayArg: string[]) => plugins.q.Promise<void[]>;
/**
* like removeFilePathArray but SYNCHRONOUSLY
*/
export declare let removeManySync: (filePathArrayArg: string[]) => boolean;
/**
*
* @param filePathArg

78
dist/smartfile.fs.js vendored

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
{
"name": "smartfile",
"version": "4.0.20",
"version": "4.0.22",
"description": "offers smart ways to work with files in nodejs",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
@ -31,7 +31,7 @@
"@types/vinyl": "^1.1.29",
"beautylog": "^5.0.23",
"fs-extra": "^0.30.0",
"glob": "^7.0.6",
"glob": "^7.1.0",
"gulp": "^3.9.1",
"gulp-remote-src": "^0.4.1",
"js-yaml": "^3.6.1",

File diff suppressed because one or more lines are too long

View File

@ -81,8 +81,25 @@ describe('smartfile'.yellow, function () {
it('should remove an entire directory', function () {
})
it('should remove single files', function () {
it('smartfile.fs.remove -> should remove single files', function (done) {
smartfile.fs.remove('./test/temp/mytestRenamed.yaml')
.then(() => { done() })
})
it('smartfile.fs.removeSync -> should remove single files synchronouly',function() {
smartfile.fs.removeSync('./test/temp/testfile1.txt')
should(smartfile.fs.fileExistsSync('./test/temp/testfile1.txt')).be.false()
})
it('smartfile.fs.removeMany -> should remove and array of files',function(done) {
smartfile.fs.removeMany(['./test/temp/testfile1.txt','./test/temp/testfile2.txt']).then(() => {
should(smartfile.fs.fileExistsSync('./test/temp/testfile1.txt')).be.false()
should(smartfile.fs.fileExistsSync('./test/temp/testfile2.txt')).be.false()
done()
})
})
it('smartfile.fs.removeManySync -> should remove and array of single files synchronouly',function() {
smartfile.fs.removeManySync(['./test/temp/testfile1.txt','./test/temp/testfile2.txt'])
should(smartfile.fs.fileExistsSync('./test/temp/testfile1.txt')).be.false()
should(smartfile.fs.fileExistsSync('./test/temp/testfile2.txt')).be.false()
})
})
})

View File

@ -2,7 +2,7 @@ import 'typings-global'
import plugins = require('./smartfile.plugins')
import SmartfileInterpreter = require('./smartfile.interpreter')
import * as memory from './smartfile.memory'
/*===============================================================
============================ Checks =============================
===============================================================*/
@ -54,22 +54,6 @@ export let isFile = function(pathArg): boolean{
============================ FS ACTIONS =========================
===============================================================*/
/**
* ensures that a directory is in place
*/
export let ensureDir = (dirPathArg: string) => {
let done = plugins.q.defer()
plugins.fsExtra.ensureDir(dirPathArg,done.resolve)
return done.promise
}
/**
* ensures that a directory is in place
*/
export let ensureDirSync = (dirPathArg: string) => {
plugins.fsExtra.ensureDirSync(dirPathArg)
}
/**
* copies a file from A to B on the local disk
*/
@ -89,11 +73,56 @@ export let copySync = function(fromArg: string,toArg: string): boolean{
return true
}
/**
* removes a file or folder from local disk
*/
export let remove = function(pathArg: string){
/**
* ensures that a directory is in place
*/
export let ensureDir = (dirPathArg: string) => {
let done = plugins.q.defer()
plugins.fsExtra.ensureDir(dirPathArg,done.resolve)
return done.promise
}
/**
* ensures that a directory is in place
*/
export let ensureDirSync = (dirPathArg: string) => {
plugins.fsExtra.ensureDirSync(dirPathArg)
}
/**
* ensures that a file is on disk
* @param filePath the filePath to ensureDir
* @param the fileContent to place into a new file in case it doesn't exist yet
* @returns Promise<void>
* @exec ASYNC
*/
export let ensureFile = (filePathArg, initFileStringArg): plugins.q.Promise<void> => {
let done = plugins.q.defer<void>()
ensureFileSync(filePathArg, initFileStringArg)
done.resolve()
return done.promise
}
/**
* ensures that a file is on disk
* @param filePath the filePath to ensureDir
* @param the fileContent to place into a new file in case it doesn't exist yet
* @returns Promise<void>
* @exec SYNC
*/
export let ensureFileSync = (filePathArg: string, initFileStringArg: string): void => {
if (fileExistsSync(filePathArg)) {
return null
} else {
memory.toFsSync(initFileStringArg, filePathArg)
}
}
/**
* removes a file or folder from local disk
*/
export let remove = function(pathArg: string): plugins.q.Promise<void> {
let done = plugins.q.defer<void>()
plugins.fsExtra.remove(pathArg,function(){
done.resolve()
})
@ -108,6 +137,27 @@ export let removeSync = function(pathArg: string): boolean{
return true
}
/**
* removes an array of filePaths from disk
*/
export let removeMany = function(filePathArrayArg: string[]){
let promiseArray: plugins.q.Promise<void>[] = []
for (let filePath of filePathArrayArg) {
promiseArray.push(remove(filePath))
}
return plugins.q.all(promiseArray)
}
/**
* like removeFilePathArray but SYNCHRONOUSLY
*/
export let removeManySync = function(filePathArrayArg: string[]){
for (let filePath of filePathArrayArg) {
removeSync(filePath)
}
return true
}
/*===============================================================
============================ Write/Read =========================
===============================================================*/