Compare commits

...

8 Commits

Author SHA1 Message Date
49aba4c85f 4.0.19 2016-09-18 20:09:32 +02:00
37d81fa4c6 improve README 2016-09-18 20:09:17 +02:00
0256166c2f 4.0.18 2016-09-18 12:26:59 +02:00
bef2bd6b3a add vinyl typings 2016-09-18 12:26:43 +02:00
759e1655da 4.0.17 2016-09-17 23:11:58 +02:00
d732d1ba97 4.0.16 2016-09-17 23:11:44 +02:00
eeab2cf0cd 4.0.15 2016-09-02 16:31:50 +02:00
ab76cae75e update 2016-09-02 16:31:39 +02:00
17 changed files with 112 additions and 78 deletions

9
.gitignore vendored
View File

@ -1,12 +1,7 @@
node_modules/ node_modules/
.settings/
.idea/
coverage/ coverage/
docs/ pages/
public/
ts/*.js
ts/*.js.map
ts/typings/
test/temp/ test/temp/

View File

@ -1,13 +1,36 @@
# smartfile # smartfile
make files easily accessible for processing in javascript. make files easily accessible for processing in javascript.
## Status ## Availabililty
[![npm](https://push.rocks/assets/repo-button-npm.svg)](https://www.npmjs.com/package/smartfile)
[![git](https://push.rocks/assets/repo-button-git.svg)](https://gitlab.com/pushrocks/smartfile)
[![git](https://push.rocks/assets/repo-button-mirror.svg)](https://github.com/pushrocks/smartfile)
[![docs](https://push.rocks/assets/repo-button-docs.svg)](https://pushrocks.gitlab.io/smartfile/)
## Status for master
[![build status](https://gitlab.com/pushrocks/smartfile/badges/master/build.svg)](https://gitlab.com/pushrocks/smartfile/commits/master) [![build status](https://gitlab.com/pushrocks/smartfile/badges/master/build.svg)](https://gitlab.com/pushrocks/smartfile/commits/master)
[![coverage report](https://gitlab.com/pushrocks/smartfile/badges/master/coverage.svg)](https://gitlab.com/pushrocks/smartfile/commits/master)
[![Dependency Status](https://david-dm.org/pushrocks/smartfile.svg)](https://david-dm.org/pushrocks/smartfile) [![Dependency Status](https://david-dm.org/pushrocks/smartfile.svg)](https://david-dm.org/pushrocks/smartfile)
[![bitHound Dependencies](https://www.bithound.io/github/pushrocks/smartfile/badges/dependencies.svg)](https://www.bithound.io/github/pushrocks/smartfile/master/dependencies/npm) [![bitHound Dependencies](https://www.bithound.io/github/pushrocks/smartfile/badges/dependencies.svg)](https://www.bithound.io/github/pushrocks/smartfile/master/dependencies/npm)
[![bitHound Code](https://www.bithound.io/github/pushrocks/smartfile/badges/code.svg)](https://www.bithound.io/github/pushrocks/smartfile) [![bitHound Code](https://www.bithound.io/github/pushrocks/smartfile/badges/code.svg)](https://www.bithound.io/github/pushrocks/smartfile)
[![codecov.io](https://codecov.io/github/pushrocks/smartfile/coverage.svg?branch=master)](https://codecov.io/github/pushrocks/smartfile?branch=master) [![TypeScript](https://img.shields.io/badge/TypeScript-2.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![node](https://img.shields.io/badge/node->=%206.x.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
## Usage ## Usage
smartfile is an approach of being one tool to handle files in diverse environments. smartfile is an approach of being one tool to handle files in diverse environments.
It can fetch files from remote locations, work with local disks and do pure memory operations.
### Smartfile Sections
smartfile thinks in sections:
section | description
--- | ---
fs | (object) gets data from fs to somewhere
memory | gets data from memory to somewhere
remote | gets data from remote locations to somewhere
interpreter | (object) handles yaml and json
smartfile | (class) a virtual representation of a file, alternative to vinyl file format
For more information read the docs
[![npm](https://push.rocks/assets/repo-header.svg)](https://push.rocks)

View File

@ -12,7 +12,7 @@ export declare let fileExistsSync: (filePath: any) => boolean;
* @param filePath * @param filePath
* @returns {any} * @returns {any}
*/ */
export declare let fileExists: (filePath: any) => plugins.Q.Promise<{}>; export declare let fileExists: (filePath: any) => plugins.q.Promise<{}>;
/** /**
* Checks if given path points to an existing directory * Checks if given path points to an existing directory
*/ */
@ -24,7 +24,7 @@ export declare let isFile: (pathArg: any) => boolean;
/** /**
* ensures that a directory is in place * ensures that a directory is in place
*/ */
export declare let ensureDir: (dirPathArg: string) => plugins.Q.Promise<{}>; export declare let ensureDir: (dirPathArg: string) => plugins.q.Promise<{}>;
/** /**
* ensures that a directory is in place * ensures that a directory is in place
*/ */
@ -32,7 +32,7 @@ export declare let ensureDirSync: (dirPathArg: string) => void;
/** /**
* copies a file from A to B on the local disk * copies a file from A to B on the local disk
*/ */
export declare let copy: (fromArg: string, toArg: string) => plugins.Q.Promise<{}>; export declare let copy: (fromArg: string, toArg: string) => plugins.q.Promise<{}>;
/** /**
* copies a file SYNCHRONOUSLY from A to B on the local disk * copies a file SYNCHRONOUSLY from A to B on the local disk
*/ */
@ -40,7 +40,7 @@ export declare let copySync: (fromArg: string, toArg: string) => boolean;
/** /**
* removes a file or folder from local disk * 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<{}>;
/** /**
* removes a file SYNCHRONOUSLY from local disk * removes a file SYNCHRONOUSLY from local disk
*/ */
@ -82,7 +82,7 @@ export declare let requireReload: (path: string) => any;
* lists Folders in a directory on local disk * lists Folders in a directory on local disk
* @returns Promise * @returns Promise
*/ */
export declare let listFolders: (pathArg: string, regexFilter?: RegExp) => plugins.Q.Promise<{}>; export declare let listFolders: (pathArg: string, regexFilter?: RegExp) => plugins.q.Promise<{}>;
/** /**
* lists Folders SYNCHRONOUSLY in a directory on local disk * lists Folders SYNCHRONOUSLY in a directory on local disk
* @returns an array with the folder names as strings * @returns an array with the folder names as strings
@ -92,7 +92,7 @@ export declare let listFoldersSync: (pathArg: string, regexFilter?: RegExp) => s
* lists Files in a directory on local disk * lists Files in a directory on local disk
* @returns Promise * @returns Promise
*/ */
export declare let listFiles: (pathArg: string, regexFilter?: RegExp) => plugins.Q.Promise<{}>; export declare let listFiles: (pathArg: string, regexFilter?: RegExp) => plugins.q.Promise<{}>;
/** /**
* lists Files SYNCHRONOUSLY in a directory on local disk * lists Files SYNCHRONOUSLY in a directory on local disk
* @returns an array with the folder names as strings * @returns an array with the folder names as strings
@ -100,12 +100,17 @@ export declare let listFiles: (pathArg: string, regexFilter?: RegExp) => plugins
export declare let listFilesSync: (pathArg: string, regexFilter?: RegExp) => string[]; export declare let listFilesSync: (pathArg: string, regexFilter?: RegExp) => string[];
/** /**
* lists all items (folders AND files) in a directory on local disk * lists all items (folders AND files) in a directory on local disk
* @returns Promise * @returns Promise<string[]>
*/ */
export declare let listAllItems: (pathArg: string, regexFilter?: RegExp) => plugins.Q.Promise<{}>; export declare let listAllItems: (pathArg: string, regexFilter?: RegExp) => plugins.q.Promise<string[]>;
/** /**
* lists all items (folders AND files) SYNCHRONOUSLY in a directory on local disk * lists all items (folders AND files) in a directory on local disk
* @returns an array with the folder names as strings * @returns an array with the folder names as strings
* @executes SYNC
*/ */
export declare let listAllItemsSync: (pathArg: string, regexFilter?: RegExp) => string[]; export declare let listAllItemsSync: (pathArg: string, regexFilter?: RegExp) => string[];
export declare let listFileTree: (dirPath: string, miniMatchFilter: string) => plugins.Q.Promise<{}>; /**
* lists a file tree using a miniMatch filter
* @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[]>;

27
dist/smartfile.fs.js vendored

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,3 @@
/// <reference types="vinyl" />
/// <reference types="q" /> /// <reference types="q" />
import "typings-global"; import "typings-global";
import plugins = require("./smartfile.plugins"); import plugins = require("./smartfile.plugins");
@ -9,7 +8,7 @@ import plugins = require("./smartfile.plugins");
* @returns stream.Readable * @returns stream.Readable
* @TODO: make it async; * @TODO: make it async;
*/ */
export declare let toGulpStream: (fileArg: string | string[] | plugins.vinyl | plugins.vinyl[], baseArg?: string) => any; export declare let toGulpStream: (fileArg: any, baseArg?: string) => any;
/** /**
* converts file to Object * converts file to Object
* @param fileStringArg * @param fileStringArg
@ -26,7 +25,7 @@ export declare let toVinylFileSync: (fileArg: string, optionsArg?: {
filename?: string; filename?: string;
base?: string; base?: string;
relPath?: string; relPath?: string;
}) => plugins.vinyl; }) => any;
/** /**
* takes a string array and some options and returns a vinylfile array * takes a string array and some options and returns a vinylfile array
* @param arrayArg * @param arrayArg
@ -40,12 +39,12 @@ export declare let toVinylArraySync: (arrayArg: string[], optionsArg?: {
/** /**
* takes a vinylFile object and converts it to String * takes a vinylFile object and converts it to String
*/ */
export declare let toStringSync: (fileArg: plugins.vinyl) => string; export declare let toStringSync: (fileArg: any) => any;
/** /**
* writes string or vinyl file to disk. * writes string or vinyl file to disk.
* @param fileArg * @param fileArg
* @param fileNameArg * @param fileNameArg
* @param fileBaseArg * @param fileBaseArg
*/ */
export declare let toFs: (fileContentArg: string | plugins.vinyl, filePathArg: any) => plugins.Q.Promise<{}>; export declare let toFs: (fileContentArg: any, filePathArg: any) => plugins.q.Promise<{}>;
export declare let toFsSync: (fileArg: any, filePathArg: string) => void; export declare let toFsSync: (fileArg: any, filePathArg: string) => void;

View File

@ -90,7 +90,7 @@ exports.toStringSync = function (fileArg) {
* @param fileBaseArg * @param fileBaseArg
*/ */
exports.toFs = function (fileContentArg, filePathArg) { exports.toFs = function (fileContentArg, filePathArg) {
let done = plugins.Q.defer(); let done = plugins.q.defer();
//function checks to abort if needed //function checks to abort if needed
if (!fileContentArg || !filePathArg) if (!fileContentArg || !filePathArg)
throw new Error("expected valid arguments"); throw new Error("expected valid arguments");

View File

@ -3,13 +3,13 @@ export import beautylog = require("beautylog");
export import fs = require("fs"); export import fs = require("fs");
export import fsExtra = require("fs-extra"); export import fsExtra = require("fs-extra");
export declare let gulp: any; export declare let gulp: any;
export import glob = require("glob"); export declare let glob: any;
export declare let g: { export declare let g: {
remoteSrc: any; remoteSrc: any;
}; };
export import path = require("path"); export import path = require("path");
export import Q = require("q"); export import q = require("q");
export import vinyl = require("vinyl"); export declare let vinyl: any;
export declare let vinylFile: any; export declare let vinylFile: any;
export declare let yaml: any; export declare let yaml: any;
export declare let request: any; export declare let request: any;

View File

@ -9,10 +9,10 @@ exports.g = {
remoteSrc: require("gulp-remote-src") remoteSrc: require("gulp-remote-src")
}; };
exports.path = require("path"); exports.path = require("path");
exports.Q = require("q"); exports.q = require("q");
exports.vinyl = require("vinyl"); exports.vinyl = require("vinyl");
exports.vinylFile = require("vinyl-file"); exports.vinylFile = require("vinyl-file");
exports.yaml = require("js-yaml"); exports.yaml = require("js-yaml");
exports.request = require("request"); exports.request = require("request");
exports.requireReload = require("require-reload"); exports.requireReload = require("require-reload");
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxlLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGZpbGUucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBQ1YsaUJBQVMsV0FBVyxXQUFXLENBQUMsQ0FBQztBQUNqQyxVQUFFLFdBQVcsSUFBSSxDQUFDLENBQUM7QUFDbkIsZUFBTyxXQUFXLFVBQVUsQ0FBQyxDQUFDO0FBQ2pDLFlBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEIsWUFBSSxXQUFXLE1BQU0sQ0FBQyxDQUFDO0FBQzFCLFNBQUMsR0FBRztJQUNYLFNBQVMsRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUM7Q0FDeEMsQ0FBQztBQUNZLFlBQUksV0FBVyxNQUFNLENBQUMsQ0FBQztBQUN2QixTQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFDakIsYUFBSyxXQUFXLE9BQU8sQ0FBQyxDQUFDO0FBQzVCLGlCQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ2xDLFlBQUksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDMUIsZUFBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QixxQkFBYSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDIn0= //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxlLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGZpbGUucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBQ1YsaUJBQVMsV0FBVyxXQUFXLENBQUMsQ0FBQztBQUNqQyxVQUFFLFdBQVcsSUFBSSxDQUFDLENBQUM7QUFDbkIsZUFBTyxXQUFXLFVBQVUsQ0FBQyxDQUFDO0FBQ2pDLFlBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdkIsWUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN2QixTQUFDLEdBQUc7SUFDWCxTQUFTLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0NBQ3hDLENBQUM7QUFDWSxZQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFDdkIsU0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBQ3BCLGFBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDekIsaUJBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDbEMsWUFBSSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMxQixlQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdCLHFCQUFhLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMifQ==

View File

@ -1,7 +1,7 @@
/// <reference types="q" /> /// <reference types="q" />
import "typings-global"; import "typings-global";
import plugins = require("./smartfile.plugins"); import plugins = require("./smartfile.plugins");
export declare let toFs: (from: string, toPath: string) => plugins.Q.Promise<{}>; export declare let toFs: (from: string, toPath: string) => plugins.q.Promise<{}>;
/** /**
* *
* @param filePathArg * @param filePathArg
@ -13,10 +13,10 @@ export declare let toGulpStreamSync: (filePathArg: string, baseArg: string) => a
* @param fromArg * @param fromArg
* @returns {any} * @returns {any}
*/ */
export declare let toObject: (fromArg: string) => plugins.Q.Promise<{}>; export declare let toObject: (fromArg: string) => plugins.q.Promise<{}>;
/** /**
* *
* @param fromArg * @param fromArg
* @returns {any} * @returns {any}
*/ */
export declare let toString: (fromArg: string) => plugins.Q.Promise<{}>; export declare let toString: (fromArg: string) => plugins.q.Promise<{}>;

View File

@ -3,7 +3,7 @@ require("typings-global");
const plugins = require("./smartfile.plugins"); const plugins = require("./smartfile.plugins");
const SmartfileInterpreter = require("./smartfile.interpreter"); const SmartfileInterpreter = require("./smartfile.interpreter");
exports.toFs = function (from, toPath) { exports.toFs = function (from, toPath) {
var done = plugins.Q.defer(); var done = plugins.q.defer();
var stream = plugins.request(from).pipe(plugins.fsExtra.createWriteStream(toPath)); var stream = plugins.request(from).pipe(plugins.fsExtra.createWriteStream(toPath));
stream.on('finish', function () { stream.on('finish', function () {
done.resolve(toPath); done.resolve(toPath);
@ -27,7 +27,7 @@ exports.toGulpStreamSync = function (filePathArg, baseArg) {
* @returns {any} * @returns {any}
*/ */
exports.toObject = function (fromArg) { exports.toObject = function (fromArg) {
let done = plugins.Q.defer(); let done = plugins.q.defer();
plugins.request.get(fromArg, function (error, response, bodyString) { plugins.request.get(fromArg, function (error, response, bodyString) {
let returnObject; let returnObject;
if (!error && response.statusCode == 200) { if (!error && response.statusCode == 200) {
@ -49,7 +49,7 @@ exports.toObject = function (fromArg) {
* @returns {any} * @returns {any}
*/ */
exports.toString = (fromArg) => { exports.toString = (fromArg) => {
let done = plugins.Q.defer(); let done = plugins.q.defer();
plugins.request.get(fromArg, function (error, response, bodyString) { plugins.request.get(fromArg, function (error, response, bodyString) {
if (!error && response.statusCode == 200) { if (!error && response.statusCode == 200) {
done.resolve(bodyString); done.resolve(bodyString);

View File

@ -1,6 +1,6 @@
{ {
"name": "smartfile", "name": "smartfile",
"version": "4.0.13", "version": "4.0.19",
"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",
@ -27,25 +27,25 @@
"homepage": "https://gitlab.com/pushrocks/smartfile", "homepage": "https://gitlab.com/pushrocks/smartfile",
"dependencies": { "dependencies": {
"@types/fs-extra": "0.x.x", "@types/fs-extra": "0.x.x",
"@types/glob": "5.x.x",
"@types/q": "0.x.x", "@types/q": "0.x.x",
"beautylog": "^5.0.14", "beautylog": "^5.0.23",
"fs-extra": "^0.30.0", "fs-extra": "^0.30.0",
"glob": "^7.0.5", "glob": "^7.0.6",
"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",
"q": "^1.4.1", "q": "^1.4.1",
"request": "^2.73.0", "request": "^2.74.0",
"require-reload": "0.2.2", "require-reload": "0.2.2",
"typings-global": "^1.0.6", "typings-global": "^1.0.14",
"vinyl": "^1.1.1", "vinyl": "^1.2.0",
"vinyl-file": "^2.0.0" "vinyl-file": "^2.0.0"
}, },
"devDependencies": { "devDependencies": {
"@types/should": "^8.1.29",
"gulp-function": "^1.3.6", "gulp-function": "^1.3.6",
"npmts-g": "^5.2.6", "npmts-g": "^5.2.8",
"should": "^10.0.0", "should": "^11.1.0",
"typings-test": "^1.0.1" "typings-test": "^1.0.3"
} }
} }

File diff suppressed because one or more lines are too long

View File

@ -198,6 +198,7 @@ describe("smartfile".yellow,function(){
describe(".remote",function(){ describe(".remote",function(){
describe("toGulpStreamSync()",function(){ describe("toGulpStreamSync()",function(){
it("should produce a gulp stream",function(done){ it("should produce a gulp stream",function(done){
this.timeout(5000)
smartfile.remote.toGulpStreamSync("mytest.txt","https://raw.githubusercontent.com/pushrocks/smartfile/master/test/") smartfile.remote.toGulpStreamSync("mytest.txt","https://raw.githubusercontent.com/pushrocks/smartfile/master/test/")
.pipe(smartfile.fs.toGulpDestSync("./test/temp/")) .pipe(smartfile.fs.toGulpDestSync("./test/temp/"))
.pipe(gFunction(done,"atEnd")); .pipe(gFunction(done,"atEnd"));

View File

@ -30,7 +30,7 @@ export let fileExistsSync = function(filePath):boolean {
* @returns {any} * @returns {any}
*/ */
export let fileExists = function(filePath){ export let fileExists = function(filePath){
let done = plugins.Q.defer(); let done = plugins.q.defer();
plugins.fs.access(filePath, plugins.fs.R_OK, function (err) { plugins.fs.access(filePath, plugins.fs.R_OK, function (err) {
err ? done.reject(err) : done.resolve(); err ? done.reject(err) : done.resolve();
}); });
@ -59,7 +59,7 @@ export let isFile = function(pathArg):boolean{
* ensures that a directory is in place * ensures that a directory is in place
*/ */
export let ensureDir = (dirPathArg:string) => { export let ensureDir = (dirPathArg:string) => {
let done = plugins.Q.defer(); let done = plugins.q.defer();
plugins.fsExtra.ensureDir(dirPathArg,done.resolve); plugins.fsExtra.ensureDir(dirPathArg,done.resolve);
return done.promise; return done.promise;
} }
@ -75,7 +75,7 @@ export let ensureDirSync = (dirPathArg:string) => {
* copies a file from A to B on the local disk * copies a file from A to B on the local disk
*/ */
export let copy = function(fromArg:string, toArg:string){ export let copy = function(fromArg:string, toArg:string){
var done = plugins.Q.defer(); var done = plugins.q.defer();
plugins.fsExtra.copy(fromArg,toArg,{},function(){ plugins.fsExtra.copy(fromArg,toArg,{},function(){
done.resolve(); done.resolve();
}); });
@ -94,7 +94,7 @@ export let copySync = function(fromArg:string,toArg:string):boolean{
* removes a file or folder from local disk * removes a file or folder from local disk
*/ */
export let remove = function(pathArg:string){ export let remove = function(pathArg:string){
var done = plugins.Q.defer(); var done = plugins.q.defer();
plugins.fsExtra.remove(pathArg,function(){ plugins.fsExtra.remove(pathArg,function(){
done.resolve(); done.resolve();
}); });
@ -176,7 +176,7 @@ export let requireReload = function(path:string){
* @returns Promise * @returns Promise
*/ */
export let listFolders = function(pathArg:string,regexFilter?:RegExp){ export let listFolders = function(pathArg:string,regexFilter?:RegExp){
let done = plugins.Q.defer(); let done = plugins.q.defer();
let folderArray = plugins.fsExtra.readdirSync(pathArg).filter(function(file) { let folderArray = plugins.fsExtra.readdirSync(pathArg).filter(function(file) {
return plugins.fsExtra.statSync(plugins.path.join(pathArg, file)).isDirectory(); return plugins.fsExtra.statSync(plugins.path.join(pathArg, file)).isDirectory();
}); });
@ -211,7 +211,7 @@ export let listFoldersSync = function(pathArg:string,regexFilter?:RegExp):string
* @returns Promise * @returns Promise
*/ */
export let listFiles = function(pathArg:string, regexFilter?:RegExp){ export let listFiles = function(pathArg:string, regexFilter?:RegExp){
let done = plugins.Q.defer(); let done = plugins.q.defer();
let fileArray = plugins.fsExtra.readdirSync(pathArg).filter(function(file) { let fileArray = plugins.fsExtra.readdirSync(pathArg).filter(function(file) {
return plugins.fsExtra.statSync(plugins.path.join(pathArg, file)).isFile(); return plugins.fsExtra.statSync(plugins.path.join(pathArg, file)).isFile();
}); });
@ -242,10 +242,10 @@ export let listFilesSync = function(pathArg:string, regexFilter?:RegExp):string[
/** /**
* lists all items (folders AND files) in a directory on local disk * lists all items (folders AND files) in a directory on local disk
* @returns Promise * @returns Promise<string[]>
*/ */
export let listAllItems = function(pathArg:string, regexFilter?:RegExp){ export let listAllItems = function(pathArg:string, regexFilter?:RegExp): plugins.q.Promise<string[]> {
let done = plugins.Q.defer(); let done = plugins.q.defer<string[]>();
let allItmesArray = plugins.fsExtra.readdirSync(pathArg); let allItmesArray = plugins.fsExtra.readdirSync(pathArg);
if(regexFilter){ if(regexFilter){
allItmesArray = allItmesArray.filter((fileItem) => { allItmesArray = allItmesArray.filter((fileItem) => {
@ -257,8 +257,9 @@ export let listAllItems = function(pathArg:string, regexFilter?:RegExp){
}; };
/** /**
* lists all items (folders AND files) SYNCHRONOUSLY in a directory on local disk * lists all items (folders AND files) in a directory on local disk
* @returns an array with the folder names as strings * @returns an array with the folder names as strings
* @executes SYNC
*/ */
export let listAllItemsSync = function(pathArg:string, regexFilter?:RegExp):string[]{ export let listAllItemsSync = function(pathArg:string, regexFilter?:RegExp):string[]{
let allItmesArray = plugins.fsExtra.readdirSync(pathArg).filter(function(file) { let allItmesArray = plugins.fsExtra.readdirSync(pathArg).filter(function(file) {
@ -272,8 +273,12 @@ export let listAllItemsSync = function(pathArg:string, regexFilter?:RegExp):stri
return allItmesArray; return allItmesArray;
}; };
export let listFileTree = (dirPath:string, miniMatchFilter:string) => { /**
let done = plugins.Q.defer(); * lists a file tree using a miniMatch filter
* @returns Promise<string[]> string array with the absolute paths of all matching files
*/
export let listFileTree = (dirPath:string, miniMatchFilter:string): plugins.q.Promise<string[]> => {
let done = plugins.q.defer<string[]>();
let options = { let options = {
cwd:dirPath cwd:dirPath
} }

View File

@ -98,7 +98,7 @@ export let toStringSync = function(fileArg:plugins.vinyl){
* @param fileBaseArg * @param fileBaseArg
*/ */
export let toFs = function(fileContentArg:string|vinyl,filePathArg){ export let toFs = function(fileContentArg:string|vinyl,filePathArg){
let done = plugins.Q.defer(); let done = plugins.q.defer();
//function checks to abort if needed //function checks to abort if needed
if (!fileContentArg || !filePathArg) throw new Error("expected valid arguments"); if (!fileContentArg || !filePathArg) throw new Error("expected valid arguments");

View File

@ -3,13 +3,13 @@ export import beautylog = require("beautylog");
export import fs = require("fs"); export import fs = require("fs");
export import fsExtra = require("fs-extra"); export import fsExtra = require("fs-extra");
export let gulp = require("gulp"); export let gulp = require("gulp");
export import glob = require("glob"); export let glob = require("glob");
export let g = { export let g = {
remoteSrc: require("gulp-remote-src") remoteSrc: require("gulp-remote-src")
}; };
export import path = require("path"); export import path = require("path");
export import Q = require("q"); export import q = require("q");
export import vinyl = require("vinyl"); export let vinyl = require("vinyl");
export let vinylFile = require("vinyl-file"); export let vinylFile = require("vinyl-file");
export let yaml = require("js-yaml"); export let yaml = require("js-yaml");
export let request = require("request"); export let request = require("request");

View File

@ -3,7 +3,7 @@ import plugins = require("./smartfile.plugins");
import SmartfileInterpreter = require("./smartfile.interpreter"); import SmartfileInterpreter = require("./smartfile.interpreter");
export let toFs = function(from:string,toPath:string) { export let toFs = function(from:string,toPath:string) {
var done = plugins.Q.defer(); var done = plugins.q.defer();
var stream = plugins.request(from).pipe(plugins.fsExtra.createWriteStream(toPath)); var stream = plugins.request(from).pipe(plugins.fsExtra.createWriteStream(toPath));
stream.on('finish',function(){ stream.on('finish',function(){
done.resolve(toPath); done.resolve(toPath);
@ -29,7 +29,7 @@ export let toGulpStreamSync = function(filePathArg:string,baseArg:string){
* @returns {any} * @returns {any}
*/ */
export let toObject = function(fromArg:string){ export let toObject = function(fromArg:string){
let done = plugins.Q.defer(); let done = plugins.q.defer();
plugins.request.get(fromArg, function (error, response, bodyString) { plugins.request.get(fromArg, function (error, response, bodyString) {
let returnObject; let returnObject;
if (!error && response.statusCode == 200) { if (!error && response.statusCode == 200) {
@ -50,7 +50,7 @@ export let toObject = function(fromArg:string){
* @returns {any} * @returns {any}
*/ */
export let toString = (fromArg:string) => { export let toString = (fromArg:string) => {
let done = plugins.Q.defer(); let done = plugins.q.defer();
plugins.request.get(fromArg, function (error, response, bodyString) { plugins.request.get(fromArg, function (error, response, bodyString) {
if (!error && response.statusCode == 200) { if (!error && response.statusCode == 200) {
done.resolve(bodyString); done.resolve(bodyString);