Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
77c88f09cd | |||
469a454fa6 | |||
15044149f2 | |||
c92b759432 | |||
9b8f055ec2 | |||
69433b242b | |||
db1d2acb47 | |||
920552ea23 | |||
dd05708f28 | |||
d97abe443d |
4
.snyk
Normal file
4
.snyk
Normal file
@ -0,0 +1,4 @@
|
||||
# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.
|
||||
version: v1.13.1
|
||||
ignore: {}
|
||||
patch: {}
|
933
package-lock.json
generated
933
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
20
package.json
20
package.json
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@pushrocks/smartfile",
|
||||
"private": false,
|
||||
"version": "6.0.9",
|
||||
"version": "7.0.1",
|
||||
"description": "offers smart ways to work with files in nodejs",
|
||||
"main": "dist/index.js",
|
||||
"typings": "dist/index.d.ts",
|
||||
@ -29,23 +29,23 @@
|
||||
"homepage": "https://gitlab.com/pushrocks/smartfile",
|
||||
"dependencies": {
|
||||
"@pushrocks/smartpath": "^4.0.1",
|
||||
"@pushrocks/smartpromise": "^2.0.5",
|
||||
"@pushrocks/smartpromise": "^3.0.2",
|
||||
"@pushrocks/smartrequest": "^1.1.14",
|
||||
"@types/fs-extra": "^5.0.4",
|
||||
"@types/fs-extra": "^5.0.5",
|
||||
"@types/vinyl": "^2.0.2",
|
||||
"fs-extra": "^7.0.1",
|
||||
"glob": "^7.1.3",
|
||||
"js-yaml": "^3.10.0",
|
||||
"js-yaml": "^3.13.1",
|
||||
"vinyl-file": "^3.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@gitzone/tsbuild": "^2.0.22",
|
||||
"@gitzone/tsrun": "^1.1.13",
|
||||
"@gitzone/tstest": "^1.0.15",
|
||||
"@gitzone/tsbuild": "^2.1.8",
|
||||
"@gitzone/tsrun": "^1.2.1",
|
||||
"@gitzone/tstest": "^1.0.18",
|
||||
"@pushrocks/tapbundle": "^3.0.7",
|
||||
"@types/node": "^10.12.10",
|
||||
"@types/node": "^11.13.0",
|
||||
"gulp-function": "^2.2.14",
|
||||
"tslint": "^5.11.0",
|
||||
"tslint-config-prettier": "^1.16.0"
|
||||
"tslint": "^5.15.0",
|
||||
"tslint-config-prettier": "^1.18.0"
|
||||
}
|
||||
}
|
||||
|
@ -14,6 +14,28 @@ export interface ISmartfileConstructorOptions {
|
||||
* -> is vinyl file compatible
|
||||
*/
|
||||
export class Smartfile {
|
||||
// ======
|
||||
// STATIC
|
||||
// ======
|
||||
|
||||
/**
|
||||
* creates a Smartfile from a filePath
|
||||
* @param filePath
|
||||
*/
|
||||
public static async fromFilePath (filePath: string) {
|
||||
filePath = plugins.path.resolve(filePath);
|
||||
const fileString = fs.toStringSync(filePath);
|
||||
const smartfile = new Smartfile({
|
||||
path: filePath,
|
||||
contentString: fileString
|
||||
});
|
||||
return smartfile;
|
||||
}
|
||||
|
||||
|
||||
// ========
|
||||
// INSTANCE
|
||||
// ========
|
||||
/**
|
||||
* the full path of the file on disk
|
||||
*/
|
||||
|
@ -29,10 +29,10 @@ export let fileExistsSync = function(filePath): boolean {
|
||||
* @param filePath
|
||||
* @returns {any}
|
||||
*/
|
||||
export let fileExists = function(filePath) {
|
||||
let done = plugins.smartpromise.defer();
|
||||
plugins.fs.access(filePath, 4, function(err) {
|
||||
err ? done.reject(err) : done.resolve();
|
||||
export let fileExists = (filePath): Promise<boolean> => {
|
||||
const done = plugins.smartpromise.defer<boolean>();
|
||||
plugins.fs.access(filePath, 4, err => {
|
||||
err ? done.resolve(false) : done.resolve(true);
|
||||
});
|
||||
return done.promise;
|
||||
};
|
||||
@ -40,7 +40,7 @@ export let fileExists = function(filePath) {
|
||||
/**
|
||||
* Checks if given path points to an existing directory
|
||||
*/
|
||||
export let isDirectory = function(pathArg): boolean {
|
||||
export let isDirectory = (pathArg): boolean => {
|
||||
try {
|
||||
return plugins.fsExtra.statSync(pathArg).isDirectory();
|
||||
} catch (err) {
|
||||
@ -194,7 +194,7 @@ export let removeManySync = function(filePathArrayArg: string[]): void {
|
||||
* @returns {any}
|
||||
*/
|
||||
export let toObjectSync = function(filePathArg, fileTypeArg?) {
|
||||
let fileString = plugins.fsExtra.readFileSync(filePathArg, 'utf8');
|
||||
const fileString = plugins.fsExtra.readFileSync(filePathArg, 'utf8');
|
||||
let fileType;
|
||||
fileTypeArg ? (fileType = fileTypeArg) : (fileType = SmartfileInterpreter.filetype(filePathArg));
|
||||
return SmartfileInterpreter.objectFile(fileString, fileType);
|
||||
@ -206,7 +206,7 @@ export let toObjectSync = function(filePathArg, fileTypeArg?) {
|
||||
* @returns {string|Buffer|any}
|
||||
*/
|
||||
export let toStringSync = function(filePath: string): string {
|
||||
let fileString: any = plugins.fsExtra.readFileSync(filePath, 'utf8');
|
||||
const fileString: string = plugins.fsExtra.readFileSync(filePath, 'utf8');
|
||||
return fileString;
|
||||
};
|
||||
|
||||
@ -257,26 +257,16 @@ export let toVinylSync = function(filePathArg, options = {}) {
|
||||
* lists Folders in a directory on local disk
|
||||
* @returns Promise with an array that contains the folder names
|
||||
*/
|
||||
export let listFolders = function(pathArg: string, regexFilter?: RegExp): Promise<string[]> {
|
||||
let done = plugins.smartpromise.defer<string[]>();
|
||||
let folderArray = plugins.fsExtra.readdirSync(pathArg).filter(function(file) {
|
||||
return plugins.fsExtra.statSync(plugins.path.join(pathArg, file)).isDirectory();
|
||||
});
|
||||
if (regexFilter) {
|
||||
folderArray = folderArray.filter(fileItem => {
|
||||
return regexFilter.test(fileItem);
|
||||
});
|
||||
}
|
||||
done.resolve(folderArray);
|
||||
return done.promise;
|
||||
export let listFolders = async (pathArg: string, regexFilter?: RegExp): Promise<string[]> => {
|
||||
return listFoldersSync(pathArg, regexFilter);
|
||||
};
|
||||
|
||||
/**
|
||||
* lists Folders SYNCHRONOUSLY in a directory on local disk
|
||||
* @returns an array with the folder names as strings
|
||||
*/
|
||||
export let listFoldersSync = function(pathArg: string, regexFilter?: RegExp): string[] {
|
||||
let folderArray = plugins.fsExtra.readdirSync(pathArg).filter(function(file) {
|
||||
export let listFoldersSync = (pathArg: string, regexFilter?: RegExp): string[] => {
|
||||
let folderArray = plugins.fsExtra.readdirSync(pathArg).filter((file) => {
|
||||
return plugins.fsExtra.statSync(plugins.path.join(pathArg, file)).isDirectory();
|
||||
});
|
||||
if (regexFilter) {
|
||||
@ -291,26 +281,16 @@ export let listFoldersSync = function(pathArg: string, regexFilter?: RegExp): st
|
||||
* lists Files in a directory on local disk
|
||||
* @returns Promise
|
||||
*/
|
||||
export let listFiles = function(pathArg: string, regexFilter?: RegExp) {
|
||||
let done = plugins.smartpromise.defer();
|
||||
let fileArray = plugins.fsExtra.readdirSync(pathArg).filter(function(file) {
|
||||
return plugins.fsExtra.statSync(plugins.path.join(pathArg, file)).isFile();
|
||||
});
|
||||
if (regexFilter) {
|
||||
fileArray = fileArray.filter(fileItem => {
|
||||
return regexFilter.test(fileItem);
|
||||
});
|
||||
}
|
||||
done.resolve(fileArray);
|
||||
return done.promise;
|
||||
export let listFiles = async (pathArg: string, regexFilter?: RegExp): Promise<string[]> => {
|
||||
return listFilesSync(pathArg, regexFilter);
|
||||
};
|
||||
|
||||
/**
|
||||
* lists Files SYNCHRONOUSLY in a directory on local disk
|
||||
* @returns an array with the folder names as strings
|
||||
*/
|
||||
export let listFilesSync = function(pathArg: string, regexFilter?: RegExp): string[] {
|
||||
let fileArray = plugins.fsExtra.readdirSync(pathArg).filter(function(file) {
|
||||
export let listFilesSync = (pathArg: string, regexFilter?: RegExp): string[] => {
|
||||
let fileArray = plugins.fsExtra.readdirSync(pathArg).filter(file => {
|
||||
return plugins.fsExtra.statSync(plugins.path.join(pathArg, file)).isFile();
|
||||
});
|
||||
if (regexFilter) {
|
||||
@ -325,16 +305,8 @@ export let listFilesSync = function(pathArg: string, regexFilter?: RegExp): stri
|
||||
* lists all items (folders AND files) in a directory on local disk
|
||||
* @returns Promise<string[]>
|
||||
*/
|
||||
export let listAllItems = function(pathArg: string, regexFilter?: RegExp): Promise<string[]> {
|
||||
let done = plugins.smartpromise.defer<string[]>();
|
||||
let allItmesArray = plugins.fsExtra.readdirSync(pathArg);
|
||||
if (regexFilter) {
|
||||
allItmesArray = allItmesArray.filter(fileItem => {
|
||||
return regexFilter.test(fileItem);
|
||||
});
|
||||
}
|
||||
done.resolve(allItmesArray);
|
||||
return done.promise;
|
||||
export let listAllItems = async (pathArg: string, regexFilter?: RegExp): Promise<string[]> => {
|
||||
return listAllItemsSync(pathArg, regexFilter);
|
||||
};
|
||||
|
||||
/**
|
||||
@ -342,7 +314,7 @@ export let listAllItems = function(pathArg: string, regexFilter?: RegExp): Promi
|
||||
* @returns an array with the folder names as strings
|
||||
* @executes SYNC
|
||||
*/
|
||||
export let listAllItemsSync = function(pathArg: string, regexFilter?: RegExp): string[] {
|
||||
export let listAllItemsSync = (pathArg: string, regexFilter?: RegExp): string[] => {
|
||||
let allItmesArray = plugins.fsExtra.readdirSync(pathArg).filter(function(file) {
|
||||
return plugins.fsExtra.statSync(plugins.path.join(pathArg, file)).isFile();
|
||||
});
|
||||
@ -360,7 +332,7 @@ export let listAllItemsSync = function(pathArg: string, regexFilter?: RegExp): s
|
||||
* @returns Promise<string[]> string array with the absolute paths of all matching files
|
||||
*/
|
||||
export let listFileTree = (dirPathArg: string, miniMatchFilter: string): Promise<string[]> => {
|
||||
let done = plugins.smartpromise.defer<string[]>();
|
||||
const done = plugins.smartpromise.defer<string[]>();
|
||||
|
||||
// handle absolute miniMatchFilter
|
||||
let dirPath: string;
|
||||
@ -370,7 +342,7 @@ export let listFileTree = (dirPathArg: string, miniMatchFilter: string): Promise
|
||||
dirPath = dirPathArg;
|
||||
}
|
||||
|
||||
let options = {
|
||||
const options = {
|
||||
cwd: dirPath,
|
||||
nodir: true,
|
||||
dot: true
|
||||
|
Reference in New Issue
Block a user