Compare commits

..

6 Commits

Author SHA1 Message Date
fc23f221eb 4.0.23 2016-09-30 16:16:15 +02:00
cfcd1f7aaf fix absolute pathing 2016-09-30 16:16:11 +02:00
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
9 changed files with 241 additions and 62 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[]) => void;
/**
*
* @param filePathArg
@ -111,6 +135,7 @@ export declare let listAllItems: (pathArg: string, regexFilter?: RegExp) => plug
export declare let listAllItemsSync: (pathArg: string, regexFilter?: RegExp) => string[];
/**
* lists a file tree using a miniMatch filter
* note: if the miniMatch Filter is an absolute path, the cwdArg will be omitted
* @returns Promise<string[]> string array with the absolute paths of all matching files
*/
export declare let listFileTree: (dirPath: string, miniMatchFilter: string) => plugins.q.Promise<string[]>;
export declare let listFileTree: (dirPathArg: string, miniMatchFilter: string) => plugins.q.Promise<string[]>;

88
dist/smartfile.fs.js vendored

File diff suppressed because one or more lines are too long

View File

@ -9,8 +9,9 @@ export declare let g: {
};
export import path = require('path');
export import q = require('q');
export declare let request: any;
export declare let requireReload: any;
export import smartpath = require('smartpath');
export import vinyl = require('vinyl');
export declare let vinylFile: any;
export declare let yaml: any;
export declare let request: any;
export declare let requireReload: any;

View File

@ -10,9 +10,10 @@ exports.g = {
};
exports.path = require("path");
exports.q = require("q");
exports.request = require('request');
exports.requireReload = require('require-reload');
exports.smartpath = require("smartpath");
exports.vinyl = require("vinyl");
exports.vinylFile = require('vinyl-file');
exports.yaml = require('js-yaml');
exports.request = require('request');
exports.requireReload = require('require-reload');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxlLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGZpbGUucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEJBQXVCO0FBQ3ZCLHlDQUE4QztBQUM5QywyQkFBZ0M7QUFDaEMsc0NBQTJDO0FBQ2hDLFFBQUEsSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUN0QixRQUFBLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDdEIsUUFBQSxDQUFDLEdBQUc7SUFDWCxTQUFTLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0NBQ3hDLENBQUE7QUFDRCwrQkFBb0M7QUFDcEMseUJBQThCO0FBQzlCLGlDQUFzQztBQUMzQixRQUFBLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUE7QUFDakMsUUFBQSxJQUFJLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBQ3pCLFFBQUEsT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUM1QixRQUFBLGFBQWEsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQSJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxlLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGZpbGUucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEJBQXVCO0FBQ3ZCLHlDQUE4QztBQUM5QywyQkFBZ0M7QUFDaEMsc0NBQTJDO0FBQ2hDLFFBQUEsSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUN0QixRQUFBLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDdEIsUUFBQSxDQUFDLEdBQUc7SUFDWCxTQUFTLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0NBQ3hDLENBQUE7QUFDRCwrQkFBb0M7QUFDcEMseUJBQThCO0FBQ25CLFFBQUEsT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUM1QixRQUFBLGFBQWEsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtBQUNwRCx5Q0FBOEM7QUFDOUMsaUNBQXNDO0FBQzNCLFFBQUEsU0FBUyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQTtBQUNqQyxRQUFBLElBQUksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUEifQ==

View File

@ -1,6 +1,6 @@
{
"name": "smartfile",
"version": "4.0.20",
"version": "4.0.23",
"description": "offers smart ways to work with files in nodejs",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
@ -31,13 +31,14 @@
"@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",
"q": "^1.4.1",
"request": "^2.75.0",
"require-reload": "0.2.2",
"smartpath": "^3.2.2",
"typings-global": "^1.0.14",
"vinyl": "^1.2.0",
"vinyl-file": "^2.0.0"

File diff suppressed because one or more lines are too long

View File

@ -79,10 +79,27 @@ describe('smartfile'.yellow, function () {
})
describe('.remove()', 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,26 @@ 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[]): void {
for (let filePath of filePathArrayArg) {
removeSync(filePath)
}
}
/*===============================================================
============================ Write/Read =========================
===============================================================*/
@ -272,10 +321,20 @@ export let listAllItemsSync = function(pathArg: string, regexFilter?: RegExp): s
/**
* lists a file tree using a miniMatch filter
* note: if the miniMatch Filter is an absolute path, the cwdArg will be omitted
* @returns Promise<string[]> string array with the absolute paths of all matching files
*/
export let listFileTree = (dirPath: string, miniMatchFilter: string): plugins.q.Promise<string[]> => {
export let listFileTree = (dirPathArg: string, miniMatchFilter: string): plugins.q.Promise<string[]> => {
let done = plugins.q.defer<string[]>()
// handle absolute miniMatchFilter
let dirPath: string
if(plugins.path.isAbsolute(miniMatchFilter)){
dirPath = '/'
} else {
dirPath = dirPathArg
}
let options = {
cwd: dirPath
}

View File

@ -9,8 +9,9 @@ export let g = {
}
export import path = require('path')
export import q = require('q')
export let request = require('request')
export let requireReload = require('require-reload')
export import smartpath = require('smartpath')
export import vinyl = require('vinyl')
export let vinylFile = require('vinyl-file')
export let yaml = require('js-yaml')
export let request = require('request')
export let requireReload = require('require-reload')