add ensureFile and ensureFileSync

This commit is contained in:
Philipp Kunz 2016-09-24 21:42:45 +02:00
parent 760913bad3
commit 38354d2944
4 changed files with 114 additions and 40 deletions

View File

@ -21,6 +21,14 @@ export declare let isDirectory: (pathArg: any) => boolean;
* Checks if a given path points to an existing file * Checks if a given path points to an existing file
*/ */
export declare let isFile: (pathArg: any) => boolean; export declare let isFile: (pathArg: any) => boolean;
/**
* copies a file from A to B on the local disk
*/
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 * ensures that a directory is in place
*/ */
@ -30,13 +38,21 @@ export declare let ensureDir: (dirPathArg: string) => plugins.q.Promise<{}>;
*/ */
export declare let ensureDirSync: (dirPathArg: string) => void; export declare let ensureDirSync: (dirPathArg: string) => void;
/** /**
* copies a file from A to B on the local disk * 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 copy: (fromArg: string, toArg: string) => plugins.q.Promise<{}>; export declare let ensureFile: (filePathArg: any, initFileStringArg: any) => plugins.q.Promise<void>;
/** /**
* copies a file SYNCHRONOUSLY from A to B on the local disk * 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 copySync: (fromArg: string, toArg: string) => boolean; export declare let ensureFileSync: (filePathArg: string, initFileStringArg: string) => void;
/** /**
* removes a file or folder from local disk * removes a file or folder from local disk
*/ */

59
dist/smartfile.fs.js vendored

File diff suppressed because one or more lines are too long

View File

@ -31,7 +31,7 @@
"@types/vinyl": "^1.1.29", "@types/vinyl": "^1.1.29",
"beautylog": "^5.0.23", "beautylog": "^5.0.23",
"fs-extra": "^0.30.0", "fs-extra": "^0.30.0",
"glob": "^7.0.6", "glob": "^7.1.0",
"gulp": "^3.9.1", "gulp": "^3.9.1",
"gulp-remote-src": "^0.4.1", "gulp-remote-src": "^0.4.1",
"js-yaml": "^3.6.1", "js-yaml": "^3.6.1",

View File

@ -2,7 +2,7 @@ import 'typings-global'
import plugins = require('./smartfile.plugins') import plugins = require('./smartfile.plugins')
import SmartfileInterpreter = require('./smartfile.interpreter') import SmartfileInterpreter = require('./smartfile.interpreter')
import * as memory from './smartfile.memory'
/*=============================================================== /*===============================================================
============================ Checks ============================= ============================ Checks =============================
===============================================================*/ ===============================================================*/
@ -54,22 +54,6 @@ export let isFile = function(pathArg): boolean{
============================ FS ACTIONS ========================= ============================ 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 * copies a file from A to B on the local disk
*/ */
@ -89,6 +73,51 @@ export let copySync = function(fromArg: string,toArg: string): boolean{
return true return true
} }
/**
* 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 * removes a file or folder from local disk
*/ */