fix(core): update
This commit is contained in:
parent
6170b37d29
commit
4095738c6a
21
.gitignore
vendored
21
.gitignore
vendored
@ -1,7 +1,22 @@
|
|||||||
node_modules/
|
.nogit/
|
||||||
|
|
||||||
|
# artifacts
|
||||||
coverage/
|
coverage/
|
||||||
pages/
|
|
||||||
public/
|
public/
|
||||||
|
pages/
|
||||||
|
|
||||||
test/temp/
|
# installs
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# caches
|
||||||
|
.yarn/
|
||||||
|
.cache/
|
||||||
|
.rpt2_cache
|
||||||
|
|
||||||
|
# builds
|
||||||
|
dist/
|
||||||
|
dist_web/
|
||||||
|
dist_serve/
|
||||||
|
dist_ts_web/
|
||||||
|
|
||||||
|
# custom
|
@ -1,5 +1,5 @@
|
|||||||
# gitzone standard
|
# gitzone ci_default
|
||||||
image: hosttoday/ht-docker-node:npmci
|
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
paths:
|
paths:
|
||||||
@ -50,22 +50,10 @@ testLTS:
|
|||||||
- docker
|
- docker
|
||||||
- notpriv
|
- notpriv
|
||||||
|
|
||||||
testSTABLE:
|
|
||||||
stage: test
|
|
||||||
script:
|
|
||||||
- npmci npm prepare
|
|
||||||
- npmci node install stable
|
|
||||||
- npmci npm install
|
|
||||||
- npmci npm test
|
|
||||||
coverage: /\d+.?\d+?\%\s*coverage/
|
|
||||||
tags:
|
|
||||||
- docker
|
|
||||||
- notpriv
|
|
||||||
|
|
||||||
release:
|
release:
|
||||||
stage: release
|
stage: release
|
||||||
script:
|
script:
|
||||||
- npmci node install stable
|
- npmci node install lts
|
||||||
- npmci npm publish
|
- npmci npm publish
|
||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
@ -78,19 +66,11 @@ release:
|
|||||||
# ====================
|
# ====================
|
||||||
codequality:
|
codequality:
|
||||||
stage: metadata
|
stage: metadata
|
||||||
image: docker:stable
|
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
services:
|
|
||||||
- docker:stable-dind
|
|
||||||
script:
|
script:
|
||||||
- export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
|
- npmci command npm install -g tslint typescript
|
||||||
- docker run
|
- npmci npm install
|
||||||
--env SOURCE_CODE="$PWD"
|
- npmci command "tslint -c tslint.json ./ts/**/*.ts"
|
||||||
--volume "$PWD":/code
|
|
||||||
--volume /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
"registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
|
|
||||||
artifacts:
|
|
||||||
paths: [codeclimate.json]
|
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
- priv
|
- priv
|
||||||
@ -109,10 +89,10 @@ pages:
|
|||||||
image: hosttoday/ht-docker-node:npmci
|
image: hosttoday/ht-docker-node:npmci
|
||||||
stage: metadata
|
stage: metadata
|
||||||
script:
|
script:
|
||||||
- npmci command npm install -g typedoc typescript
|
- npmci command npm install -g @gitzone/tsdoc
|
||||||
- npmci npm prepare
|
- npmci npm prepare
|
||||||
- npmci npm install
|
- npmci npm install
|
||||||
- npmci command typedoc --module "commonjs" --target "ES2016" --out public/ ts/
|
- npmci command tsdoc
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
- notpriv
|
- notpriv
|
||||||
|
10
dist/index.d.ts
vendored
10
dist/index.d.ts
vendored
@ -1,10 +0,0 @@
|
|||||||
import * as SmartfileFs from './smartfile.fs';
|
|
||||||
import * as SmartfileInterpreter from './smartfile.interpreter';
|
|
||||||
import * as SmartfileMemory from './smartfile.memory';
|
|
||||||
import * as SmartfileRemote from './smartfile.remote';
|
|
||||||
export { Smartfile } from './smartfile.classes.smartfile';
|
|
||||||
export declare let fs: typeof SmartfileFs;
|
|
||||||
export declare let interpreter: typeof SmartfileInterpreter;
|
|
||||||
export declare let memory: typeof SmartfileMemory;
|
|
||||||
export declare let remote: typeof SmartfileRemote;
|
|
||||||
export declare let requireReload: (path: string) => any;
|
|
14
dist/index.js
vendored
14
dist/index.js
vendored
@ -1,14 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
|
||||||
const SmartfileFs = require("./smartfile.fs");
|
|
||||||
const SmartfileInterpreter = require("./smartfile.interpreter");
|
|
||||||
const SmartfileMemory = require("./smartfile.memory");
|
|
||||||
const SmartfileRemote = require("./smartfile.remote");
|
|
||||||
var smartfile_classes_smartfile_1 = require("./smartfile.classes.smartfile");
|
|
||||||
exports.Smartfile = smartfile_classes_smartfile_1.Smartfile;
|
|
||||||
exports.fs = SmartfileFs;
|
|
||||||
exports.interpreter = SmartfileInterpreter;
|
|
||||||
exports.memory = SmartfileMemory;
|
|
||||||
exports.remote = SmartfileRemote;
|
|
||||||
exports.requireReload = SmartfileFs.requireReload;
|
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDhDQUE4QztBQUM5QyxnRUFBZ0U7QUFDaEUsc0RBQXNEO0FBQ3RELHNEQUFzRDtBQUV0RCw2RUFBMEQ7QUFBakQsa0RBQUEsU0FBUyxDQUFBO0FBRVAsUUFBQSxFQUFFLEdBQUcsV0FBVyxDQUFDO0FBQ2pCLFFBQUEsV0FBVyxHQUFHLG9CQUFvQixDQUFDO0FBQ25DLFFBQUEsTUFBTSxHQUFHLGVBQWUsQ0FBQztBQUN6QixRQUFBLE1BQU0sR0FBRyxlQUFlLENBQUM7QUFDekIsUUFBQSxhQUFhLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQyJ9
|
|
79
dist/smartfile.classes.smartfile.d.ts
vendored
79
dist/smartfile.classes.smartfile.d.ts
vendored
@ -1,79 +0,0 @@
|
|||||||
/// <reference types="node" />
|
|
||||||
import * as plugins from './smartfile.plugins';
|
|
||||||
export interface ISmartfileConstructorOptions {
|
|
||||||
path?: string;
|
|
||||||
contentString?: string;
|
|
||||||
contentBuffer?: Buffer;
|
|
||||||
base?: string;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* class Smartfile
|
|
||||||
* -> is vinyl file compatible
|
|
||||||
*/
|
|
||||||
export declare class Smartfile {
|
|
||||||
/**
|
|
||||||
* the full path of the file on disk
|
|
||||||
*/
|
|
||||||
path: string;
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
parsedPath: plugins.path.ParsedPath;
|
|
||||||
/**
|
|
||||||
* the content of the file as Buffer
|
|
||||||
*/
|
|
||||||
contentBuffer: Buffer;
|
|
||||||
/**
|
|
||||||
* The current working directory of the file
|
|
||||||
* Note:this is similar to gulp and different from native node path base
|
|
||||||
*/
|
|
||||||
base: string;
|
|
||||||
/**
|
|
||||||
* sync the file with disk
|
|
||||||
*/
|
|
||||||
sync: boolean;
|
|
||||||
/**
|
|
||||||
* the constructor of Smartfile
|
|
||||||
* @param optionsArg
|
|
||||||
*/
|
|
||||||
constructor(optionsArg: ISmartfileConstructorOptions);
|
|
||||||
/**
|
|
||||||
* set contents from string
|
|
||||||
* @param contentString
|
|
||||||
*/
|
|
||||||
setContentsFromString(contentString: string): void;
|
|
||||||
/**
|
|
||||||
* write file to disk
|
|
||||||
* Behaviours:
|
|
||||||
* - no argument write to exactly where the file was picked up
|
|
||||||
*/
|
|
||||||
write(pathArg?: string): Promise<void>;
|
|
||||||
/**
|
|
||||||
* read file from disk
|
|
||||||
*/
|
|
||||||
read(): Promise<void>;
|
|
||||||
/**
|
|
||||||
* vinyl-compatibility: alias of this.contentBuffer
|
|
||||||
*/
|
|
||||||
contents: Buffer;
|
|
||||||
/**
|
|
||||||
* vinyl-compatibility
|
|
||||||
*/
|
|
||||||
readonly cwd: string;
|
|
||||||
/**
|
|
||||||
* return relative path of file
|
|
||||||
*/
|
|
||||||
readonly relative: string;
|
|
||||||
/**
|
|
||||||
* return truw when the file has content
|
|
||||||
*/
|
|
||||||
isNull(): boolean;
|
|
||||||
/**
|
|
||||||
* return true if contents are Buffer
|
|
||||||
*/
|
|
||||||
isBuffer(): boolean;
|
|
||||||
isDirectory(): boolean;
|
|
||||||
isStream(): boolean;
|
|
||||||
isSymbolic(): boolean;
|
|
||||||
updateFileName(fileNameArg: string): void;
|
|
||||||
}
|
|
118
dist/smartfile.classes.smartfile.js
vendored
118
dist/smartfile.classes.smartfile.js
vendored
@ -1,118 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
||||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
||||||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
||||||
});
|
|
||||||
};
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
|
||||||
const plugins = require("./smartfile.plugins");
|
|
||||||
const memory = require("./smartfile.memory");
|
|
||||||
/**
|
|
||||||
* class Smartfile
|
|
||||||
* -> is vinyl file compatible
|
|
||||||
*/
|
|
||||||
class Smartfile {
|
|
||||||
/**
|
|
||||||
* the constructor of Smartfile
|
|
||||||
* @param optionsArg
|
|
||||||
*/
|
|
||||||
constructor(optionsArg) {
|
|
||||||
if (optionsArg.contentBuffer) {
|
|
||||||
this.contentBuffer = optionsArg.contentBuffer;
|
|
||||||
}
|
|
||||||
else if (optionsArg.contentString) {
|
|
||||||
this.setContentsFromString(optionsArg.contentString);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
console.log('created empty Smartfile?');
|
|
||||||
}
|
|
||||||
this.path = optionsArg.path;
|
|
||||||
this.parsedPath = plugins.path.parse(this.path);
|
|
||||||
this.base = optionsArg.base;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* set contents from string
|
|
||||||
* @param contentString
|
|
||||||
*/
|
|
||||||
setContentsFromString(contentString) {
|
|
||||||
this.contents = new Buffer(contentString);
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* write file to disk
|
|
||||||
* Behaviours:
|
|
||||||
* - no argument write to exactly where the file was picked up
|
|
||||||
*/
|
|
||||||
write(pathArg) {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
|
||||||
const stringToWrite = this.contentBuffer.toString();
|
|
||||||
yield memory.toFs(stringToWrite, this.path);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* read file from disk
|
|
||||||
*/
|
|
||||||
read() {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () { });
|
|
||||||
}
|
|
||||||
// -----------------------------------------------
|
|
||||||
// vinyl compatibility
|
|
||||||
// -----------------------------------------------
|
|
||||||
/**
|
|
||||||
* vinyl-compatibility: alias of this.contentBuffer
|
|
||||||
*/
|
|
||||||
get contents() {
|
|
||||||
return this.contentBuffer;
|
|
||||||
}
|
|
||||||
set contents(contentsArg) {
|
|
||||||
this.contentBuffer = contentsArg;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* vinyl-compatibility
|
|
||||||
*/
|
|
||||||
get cwd() {
|
|
||||||
return process.cwd();
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* return relative path of file
|
|
||||||
*/
|
|
||||||
get relative() {
|
|
||||||
return plugins.path.relative(this.base, this.path);
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* return truw when the file has content
|
|
||||||
*/
|
|
||||||
isNull() {
|
|
||||||
if (!this.contentBuffer) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* return true if contents are Buffer
|
|
||||||
*/
|
|
||||||
isBuffer() {
|
|
||||||
if (this.contents instanceof Buffer) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
isDirectory() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
isStream() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
isSymbolic() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// update things
|
|
||||||
updateFileName(fileNameArg) {
|
|
||||||
let oldFileName = this.parsedPath.base;
|
|
||||||
this.path = this.path.replace(new RegExp(oldFileName + '$'), fileNameArg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
exports.Smartfile = Smartfile;
|
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxlLmNsYXNzZXMuc21hcnRmaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRmaWxlLmNsYXNzZXMuc21hcnRmaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSwrQ0FBK0M7QUFFL0MsNkNBQTZDO0FBUzdDOzs7R0FHRztBQUNIO0lBMkJFOzs7T0FHRztJQUVILFlBQVksVUFBd0M7UUFDbEQsSUFBSSxVQUFVLENBQUMsYUFBYSxFQUFFO1lBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQztTQUMvQzthQUFNLElBQUksVUFBVSxDQUFDLGFBQWEsRUFBRTtZQUNuQyxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3REO2FBQU07WUFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxxQkFBcUIsQ0FBQyxhQUFxQjtRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0csS0FBSyxDQUFDLE9BQWdCOztZQUMxQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BELE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlDLENBQUM7S0FBQTtJQUVEOztPQUVHO0lBQ0csSUFBSTs4REFBSSxDQUFDO0tBQUE7SUFFZixrREFBa0Q7SUFDbEQsc0JBQXNCO0lBQ3RCLGtEQUFrRDtJQUNsRDs7T0FFRztJQUNILElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsV0FBVztRQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFFBQVE7UUFDVixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsUUFBUSxZQUFZLE1BQU0sRUFBRTtZQUNuQyxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLGNBQWMsQ0FBQyxXQUFtQjtRQUNoQyxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM1RSxDQUFDO0NBQ0Y7QUFwSUQsOEJBb0lDIn0=
|
|
143
dist/smartfile.fs.d.ts
vendored
143
dist/smartfile.fs.d.ts
vendored
@ -1,143 +0,0 @@
|
|||||||
import { Smartfile } from './smartfile.classes.smartfile';
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param filePath
|
|
||||||
* @returns {boolean}
|
|
||||||
*/
|
|
||||||
export declare let fileExistsSync: (filePath: any) => boolean;
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param filePath
|
|
||||||
* @returns {any}
|
|
||||||
*/
|
|
||||||
export declare let fileExists: (filePath: any) => Promise<{}>;
|
|
||||||
/**
|
|
||||||
* Checks if given path points to an existing directory
|
|
||||||
*/
|
|
||||||
export declare let isDirectory: (pathArg: any) => boolean;
|
|
||||||
/**
|
|
||||||
* Checks if a given path points to an existing file
|
|
||||||
*/
|
|
||||||
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) => 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) => Promise<{}>;
|
|
||||||
/**
|
|
||||||
* ensures that a directory is in place
|
|
||||||
*/
|
|
||||||
export declare let ensureDirSync: (dirPathArg: string) => void;
|
|
||||||
/**
|
|
||||||
* ensure an empty directory
|
|
||||||
* @executes ASYNC
|
|
||||||
*/
|
|
||||||
export declare let ensureEmptyDir: (dirPathArg: string) => Promise<{}>;
|
|
||||||
/**
|
|
||||||
* ensure an empty directory
|
|
||||||
* @executes SYNC
|
|
||||||
*/
|
|
||||||
export declare let ensureEmptyDirSync: (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) => 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) => 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[]) => Promise<void[]>;
|
|
||||||
/**
|
|
||||||
* like removeFilePathArray but SYNCHRONOUSLY
|
|
||||||
*/
|
|
||||||
export declare let removeManySync: (filePathArrayArg: string[]) => void;
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param filePathArg
|
|
||||||
* @param fileTypeArg
|
|
||||||
* @returns {any}
|
|
||||||
*/
|
|
||||||
export declare let toObjectSync: (filePathArg: any, fileTypeArg?: any) => any;
|
|
||||||
/**
|
|
||||||
* reads a file content to a String
|
|
||||||
* @param filePath
|
|
||||||
* @returns {string|Buffer|any}
|
|
||||||
*/
|
|
||||||
export declare let toStringSync: (filePath: string) => string;
|
|
||||||
export declare let fileTreeToObject: (dirPathArg: string, miniMatchFilter: string) => Promise<Smartfile[]>;
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param filePathArg
|
|
||||||
* @param options
|
|
||||||
* @returns {number}
|
|
||||||
*/
|
|
||||||
export declare let toVinylSync: (filePathArg: any, options?: {}) => any;
|
|
||||||
/**
|
|
||||||
* lets you reload files hot.
|
|
||||||
* @param path
|
|
||||||
* @returns {any}
|
|
||||||
*/
|
|
||||||
export declare let requireReload: (path: string) => any;
|
|
||||||
/**
|
|
||||||
* lists Folders in a directory on local disk
|
|
||||||
* @returns Promise
|
|
||||||
*/
|
|
||||||
export declare let listFolders: (pathArg: string, regexFilter?: RegExp) => Promise<{}>;
|
|
||||||
/**
|
|
||||||
* lists Folders SYNCHRONOUSLY in a directory on local disk
|
|
||||||
* @returns an array with the folder names as strings
|
|
||||||
*/
|
|
||||||
export declare let listFoldersSync: (pathArg: string, regexFilter?: RegExp) => string[];
|
|
||||||
/**
|
|
||||||
* lists Files in a directory on local disk
|
|
||||||
* @returns Promise
|
|
||||||
*/
|
|
||||||
export declare let listFiles: (pathArg: string, regexFilter?: RegExp) => Promise<{}>;
|
|
||||||
/**
|
|
||||||
* lists Files SYNCHRONOUSLY in a directory on local disk
|
|
||||||
* @returns an array with the folder names as strings
|
|
||||||
*/
|
|
||||||
export declare let listFilesSync: (pathArg: string, regexFilter?: RegExp) => string[];
|
|
||||||
/**
|
|
||||||
* lists all items (folders AND files) in a directory on local disk
|
|
||||||
* @returns Promise<string[]>
|
|
||||||
*/
|
|
||||||
export declare let listAllItems: (pathArg: string, regexFilter?: RegExp) => Promise<string[]>;
|
|
||||||
/**
|
|
||||||
* lists all items (folders AND files) in a directory on local disk
|
|
||||||
* @returns an array with the folder names as strings
|
|
||||||
* @executes SYNC
|
|
||||||
*/
|
|
||||||
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: (dirPathArg: string, miniMatchFilter: string) => Promise<string[]>;
|
|
374
dist/smartfile.fs.js
vendored
374
dist/smartfile.fs.js
vendored
File diff suppressed because one or more lines are too long
2
dist/smartfile.interpreter.d.ts
vendored
2
dist/smartfile.interpreter.d.ts
vendored
@ -1,2 +0,0 @@
|
|||||||
export declare let filetype: (pathArg: string) => string;
|
|
||||||
export declare let objectFile: (fileStringArg: string, fileTypeArg: any) => any;
|
|
21
dist/smartfile.interpreter.js
vendored
21
dist/smartfile.interpreter.js
vendored
@ -1,21 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
|
||||||
const plugins = require("./smartfile.plugins");
|
|
||||||
exports.filetype = (pathArg) => {
|
|
||||||
let extName = plugins.path.extname(pathArg);
|
|
||||||
let fileType = extName.replace(/\.([a-z]*)/, '$1'); // remove . form fileType
|
|
||||||
return fileType;
|
|
||||||
};
|
|
||||||
exports.objectFile = (fileStringArg, fileTypeArg) => {
|
|
||||||
switch (fileTypeArg) {
|
|
||||||
case 'yml':
|
|
||||||
case 'yaml':
|
|
||||||
return plugins.yaml.safeLoad(fileStringArg);
|
|
||||||
case 'json':
|
|
||||||
return JSON.parse(fileStringArg);
|
|
||||||
default:
|
|
||||||
console.error('file type ' + fileTypeArg.blue + ' not supported');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxlLmludGVycHJldGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRmaWxlLmludGVycHJldGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0NBQWdEO0FBRXJDLFFBQUEsUUFBUSxHQUFHLENBQUMsT0FBZSxFQUFVLEVBQUU7SUFDaEQsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyx5QkFBeUI7SUFDN0UsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRVMsUUFBQSxVQUFVLEdBQUcsQ0FBQyxhQUFxQixFQUFFLFdBQVcsRUFBRSxFQUFFO0lBQzdELFFBQVEsV0FBVyxFQUFFO1FBQ25CLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxNQUFNO1lBQ1QsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5QyxLQUFLLE1BQU07WUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkM7WUFDRSxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDLENBQUM7WUFDbEUsTUFBTTtLQUNUO0FBQ0gsQ0FBQyxDQUFDIn0=
|
|
25
dist/smartfile.memory.d.ts
vendored
25
dist/smartfile.memory.d.ts
vendored
@ -1,25 +0,0 @@
|
|||||||
import { Smartfile } from './smartfile.classes.smartfile';
|
|
||||||
/**
|
|
||||||
* converts file to Object
|
|
||||||
* @param fileStringArg
|
|
||||||
* @param fileTypeArg
|
|
||||||
* @returns {any|any}
|
|
||||||
*/
|
|
||||||
export declare let toObject: (fileStringArg: string, fileTypeArg: string) => any;
|
|
||||||
export interface IToFsOptions {
|
|
||||||
respectRelative?: boolean;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* writes string or Smartfile to disk.
|
|
||||||
* @param fileArg
|
|
||||||
* @param fileNameArg
|
|
||||||
* @param fileBaseArg
|
|
||||||
*/
|
|
||||||
export declare let toFs: (fileContentArg: string | Smartfile, filePathArg: any, optionsArg?: IToFsOptions) => Promise<{}>;
|
|
||||||
/**
|
|
||||||
* writes a string or a Smartfile to disk synchronously, only supports string
|
|
||||||
* @param fileArg
|
|
||||||
* @param filePathArg
|
|
||||||
*/
|
|
||||||
export declare let toFsSync: (fileArg: string, filePathArg: string) => void;
|
|
||||||
export declare let smartfileArrayToFs: (smartfileArrayArg: Smartfile[], dirArg: string) => Promise<void>;
|
|
87
dist/smartfile.memory.js
vendored
87
dist/smartfile.memory.js
vendored
@ -1,87 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
||||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
||||||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
||||||
});
|
|
||||||
};
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
|
||||||
const plugins = require("./smartfile.plugins");
|
|
||||||
const smartfile_classes_smartfile_1 = require("./smartfile.classes.smartfile");
|
|
||||||
const smartfileFs = require("./smartfile.fs");
|
|
||||||
const SmartfileInterpreter = require("./smartfile.interpreter");
|
|
||||||
/**
|
|
||||||
* converts file to Object
|
|
||||||
* @param fileStringArg
|
|
||||||
* @param fileTypeArg
|
|
||||||
* @returns {any|any}
|
|
||||||
*/
|
|
||||||
exports.toObject = function (fileStringArg, fileTypeArg) {
|
|
||||||
return SmartfileInterpreter.objectFile(fileStringArg, fileTypeArg);
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* writes string or Smartfile to disk.
|
|
||||||
* @param fileArg
|
|
||||||
* @param fileNameArg
|
|
||||||
* @param fileBaseArg
|
|
||||||
*/
|
|
||||||
exports.toFs = (fileContentArg, filePathArg, optionsArg = {}) => __awaiter(this, void 0, void 0, function* () {
|
|
||||||
let done = plugins.smartpromise.defer();
|
|
||||||
// check args
|
|
||||||
if (!fileContentArg || !filePathArg) {
|
|
||||||
throw new Error('expected valid arguments');
|
|
||||||
}
|
|
||||||
// prepare actual write action
|
|
||||||
let fileString;
|
|
||||||
let filePath = filePathArg;
|
|
||||||
// handle Smartfile
|
|
||||||
if (fileContentArg instanceof smartfile_classes_smartfile_1.Smartfile) {
|
|
||||||
let fileContentArg2 = fileContentArg;
|
|
||||||
fileString = fileContentArg.contentBuffer.toString();
|
|
||||||
// handle options
|
|
||||||
if (optionsArg.respectRelative) {
|
|
||||||
filePath = plugins.path.join(filePath, fileContentArg.path);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (typeof fileContentArg === 'string') {
|
|
||||||
fileString = fileContentArg;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
throw new Error('fileContent is neither string nor Smartfile');
|
|
||||||
}
|
|
||||||
yield smartfileFs.ensureDir(plugins.path.parse(filePath).dir);
|
|
||||||
plugins.fsExtra.writeFile(filePath, fileString, { encoding: 'utf8' }, done.resolve);
|
|
||||||
return yield done.promise;
|
|
||||||
});
|
|
||||||
/**
|
|
||||||
* writes a string or a Smartfile to disk synchronously, only supports string
|
|
||||||
* @param fileArg
|
|
||||||
* @param filePathArg
|
|
||||||
*/
|
|
||||||
exports.toFsSync = function (fileArg, filePathArg) {
|
|
||||||
// function checks to abort if needed
|
|
||||||
if (!fileArg || !filePathArg) {
|
|
||||||
throw new Error('expected a valid arguments');
|
|
||||||
}
|
|
||||||
// prepare actual write action
|
|
||||||
let fileString;
|
|
||||||
let filePath = filePathArg;
|
|
||||||
if (typeof fileArg !== 'string') {
|
|
||||||
throw new Error('fileArg is not of type String.');
|
|
||||||
}
|
|
||||||
else if (typeof fileArg === 'string') {
|
|
||||||
fileString = fileArg;
|
|
||||||
}
|
|
||||||
plugins.fsExtra.writeFileSync(filePath, fileString, { encoding: 'utf8' });
|
|
||||||
};
|
|
||||||
exports.smartfileArrayToFs = (smartfileArrayArg, dirArg) => __awaiter(this, void 0, void 0, function* () {
|
|
||||||
yield smartfileFs.ensureDir(dirArg);
|
|
||||||
for (let smartfile of smartfileArrayArg) {
|
|
||||||
yield exports.toFs(smartfile, dirArg, {
|
|
||||||
respectRelative: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxlLm1lbW9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0ZmlsZS5tZW1vcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLCtDQUFnRDtBQUNoRCwrRUFBMEQ7QUFDMUQsOENBQThDO0FBRTlDLGdFQUFpRTtBQUVqRTs7Ozs7R0FLRztBQUNRLFFBQUEsUUFBUSxHQUFHLFVBQVMsYUFBcUIsRUFBRSxXQUFtQjtJQUN2RSxPQUFPLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDckUsQ0FBQyxDQUFDO0FBTUY7Ozs7O0dBS0c7QUFDUSxRQUFBLElBQUksR0FBRyxDQUNoQixjQUFrQyxFQUNsQyxXQUFXLEVBQ1gsYUFBMkIsRUFBRSxFQUM3QixFQUFFO0lBQ0YsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUV4QyxhQUFhO0lBQ2IsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7S0FDN0M7SUFFRCw4QkFBOEI7SUFDOUIsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksUUFBUSxHQUFXLFdBQVcsQ0FBQztJQUVuQyxtQkFBbUI7SUFDbkIsSUFBSSxjQUFjLFlBQVksdUNBQVMsRUFBRTtRQUN2QyxJQUFJLGVBQWUsR0FBUSxjQUFjLENBQUM7UUFDMUMsVUFBVSxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckQsaUJBQWlCO1FBQ2pCLElBQUksVUFBVSxDQUFDLGVBQWUsRUFBRTtZQUM5QixRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3RDtLQUNGO1NBQU0sSUFBSSxPQUFPLGNBQWMsS0FBSyxRQUFRLEVBQUU7UUFDN0MsVUFBVSxHQUFHLGNBQWMsQ0FBQztLQUM3QjtTQUFNO1FBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO0tBQ2hFO0lBQ0QsTUFBTSxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlELE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BGLE9BQU8sTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQzVCLENBQUMsQ0FBQSxDQUFDO0FBRUY7Ozs7R0FJRztBQUNRLFFBQUEsUUFBUSxHQUFHLFVBQVMsT0FBZSxFQUFFLFdBQW1CO0lBQ2pFLHFDQUFxQztJQUNyQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztLQUMvQztJQUVELDhCQUE4QjtJQUM5QixJQUFJLFVBQWtCLENBQUM7SUFDdkIsSUFBSSxRQUFRLEdBQVcsV0FBVyxDQUFDO0lBRW5DLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO1FBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztLQUNuRDtTQUFNLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO1FBQ3RDLFVBQVUsR0FBRyxPQUFPLENBQUM7S0FDdEI7SUFDRCxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDNUUsQ0FBQyxDQUFDO0FBRVMsUUFBQSxrQkFBa0IsR0FBRyxDQUFPLGlCQUE4QixFQUFFLE1BQWMsRUFBRSxFQUFFO0lBQ3ZGLE1BQU0sV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxLQUFLLElBQUksU0FBUyxJQUFJLGlCQUFpQixFQUFFO1FBQ3ZDLE1BQU0sWUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUU7WUFDNUIsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0tBQ0o7QUFDSCxDQUFDLENBQUEsQ0FBQyJ9
|
|
10
dist/smartfile.plugins.d.ts
vendored
10
dist/smartfile.plugins.d.ts
vendored
@ -1,10 +0,0 @@
|
|||||||
export import fs = require('fs');
|
|
||||||
export import fsExtra = require('fs-extra');
|
|
||||||
export declare let glob: any;
|
|
||||||
export import path = require('path');
|
|
||||||
export import smartpromise = require('@pushrocks/smartpromise');
|
|
||||||
export import smartrequest = require('@pushrocks/smartrequest');
|
|
||||||
export declare let requireReload: any;
|
|
||||||
export import smartpath = require('smartpath');
|
|
||||||
export declare let vinylFile: any;
|
|
||||||
export declare let yaml: any;
|
|
13
dist/smartfile.plugins.js
vendored
13
dist/smartfile.plugins.js
vendored
@ -1,13 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
|
||||||
exports.fs = require("fs");
|
|
||||||
exports.fsExtra = require("fs-extra");
|
|
||||||
exports.glob = require('glob');
|
|
||||||
exports.path = require("path");
|
|
||||||
exports.smartpromise = require("@pushrocks/smartpromise");
|
|
||||||
exports.smartrequest = require("@pushrocks/smartrequest");
|
|
||||||
exports.requireReload = require('require-reload');
|
|
||||||
exports.smartpath = require("smartpath");
|
|
||||||
exports.vinylFile = require('vinyl-file');
|
|
||||||
exports.yaml = require('js-yaml');
|
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxlLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGZpbGUucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJCQUFpQztBQUNqQyxzQ0FBNEM7QUFDakMsUUFBQSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2xDLCtCQUFxQztBQUNyQywwREFBZ0U7QUFDaEUsMERBQWdFO0FBQ3JELFFBQUEsYUFBYSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3JELHlDQUErQztBQUNwQyxRQUFBLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDbEMsUUFBQSxJQUFJLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDIn0=
|
|
12
dist/smartfile.remote.d.ts
vendored
12
dist/smartfile.remote.d.ts
vendored
@ -1,12 +0,0 @@
|
|||||||
/**
|
|
||||||
*
|
|
||||||
* @param fromArg
|
|
||||||
* @returns {any}
|
|
||||||
*/
|
|
||||||
export declare let toObject: (fromArg: string) => Promise<{}>;
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param fromArg
|
|
||||||
* @returns {any}
|
|
||||||
*/
|
|
||||||
export declare let toString: (fromArg: string) => Promise<{}>;
|
|
51
dist/smartfile.remote.js
vendored
51
dist/smartfile.remote.js
vendored
@ -1,51 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
|
||||||
const plugins = require("./smartfile.plugins");
|
|
||||||
/* export let toFs = function (from: string, toPath: string) {
|
|
||||||
let done = plugins.q.defer()
|
|
||||||
let stream = plugins.smartrequest(from).pipe(plugins.fsExtra.createWriteStream(toPath))
|
|
||||||
stream.on('finish', function () {
|
|
||||||
done.resolve(toPath)
|
|
||||||
})
|
|
||||||
return done.promise
|
|
||||||
} */
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param fromArg
|
|
||||||
* @returns {any}
|
|
||||||
*/
|
|
||||||
exports.toObject = function (fromArg) {
|
|
||||||
let done = plugins.smartpromise.defer();
|
|
||||||
plugins.smartrequest
|
|
||||||
.request(fromArg, {
|
|
||||||
method: 'get'
|
|
||||||
})
|
|
||||||
.then((res) => {
|
|
||||||
if (res.statusCode === 200) {
|
|
||||||
done.resolve(res.body);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
console.log('could not get remote file from ' + fromArg);
|
|
||||||
done.reject(new Error('could not get remote file from ' + fromArg));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return done.promise;
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param fromArg
|
|
||||||
* @returns {any}
|
|
||||||
*/
|
|
||||||
exports.toString = (fromArg) => {
|
|
||||||
let done = plugins.smartpromise.defer();
|
|
||||||
plugins.smartrequest.get(fromArg).then((res) => {
|
|
||||||
if (res.statusCode === 200) {
|
|
||||||
done.resolve(res.body);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
done.reject(new Error('could not get remote file from ' + fromArg));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return done.promise;
|
|
||||||
};
|
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxlLnJlbW90ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0ZmlsZS5yZW1vdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQ0FBZ0Q7QUFHaEQ7Ozs7Ozs7SUFPSTtBQUVKOzs7O0dBSUc7QUFDUSxRQUFBLFFBQVEsR0FBRyxVQUFTLE9BQWU7SUFDNUMsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QyxPQUFPLENBQUMsWUFBWTtTQUNqQixPQUFPLENBQUMsT0FBTyxFQUFFO1FBQ2hCLE1BQU0sRUFBRSxLQUFLO0tBQ2QsQ0FBQztTQUNELElBQUksQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1FBQ2pCLElBQUksR0FBRyxDQUFDLFVBQVUsS0FBSyxHQUFHLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEI7YUFBTTtZQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUNBQWlDLEdBQUcsT0FBTyxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ3JFO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDdEIsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNRLFFBQUEsUUFBUSxHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUU7SUFDeEMsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtRQUNsRCxJQUFJLEdBQUcsQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFO1lBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLGlDQUFpQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDckU7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN0QixDQUFDLENBQUMifQ==
|
|
@ -1,43 +0,0 @@
|
|||||||
# smartfile
|
|
||||||
|
|
||||||
make files easily accessible for processing in javascript.
|
|
||||||
|
|
||||||
## Availabililty
|
|
||||||
|
|
||||||
[![npm](https://pushrocks.gitlab.io/assets/repo-button-npm.svg)](https://www.npmjs.com/package/smartfile)
|
|
||||||
[![git](https://pushrocks.gitlab.io/assets/repo-button-git.svg)](https://gitlab.com/pushrocks/smartfile)
|
|
||||||
[![git](https://pushrocks.gitlab.io/assets/repo-button-mirror.svg)](https://github.com/pushrocks/smartfile)
|
|
||||||
[![docs](https://pushrocks.gitlab.io/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)
|
|
||||||
[![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)
|
|
||||||
[![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)
|
|
||||||
[![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
|
|
||||||
|
|
||||||
smartfile is an approach of being one tool to handle files in diverse environments.
|
|
||||||
|
|
||||||
### 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 further information read the linked docs at the top of this README.
|
|
||||||
|
|
||||||
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
|
|
||||||
|
|
||||||
[![npm](https://pushrocks.gitlab.io/assets/repo-footer.svg)](https://push.rocks)
|
|
12
package.json
12
package.json
@ -47,5 +47,15 @@
|
|||||||
"gulp-function": "^2.2.14",
|
"gulp-function": "^2.2.14",
|
||||||
"tslint": "^5.15.0",
|
"tslint": "^5.15.0",
|
||||||
"tslint-config-prettier": "^1.18.0"
|
"tslint-config-prettier": "^1.18.0"
|
||||||
}
|
},
|
||||||
|
"files": [
|
||||||
|
"ts/*",
|
||||||
|
"ts_web/*",
|
||||||
|
"dist/*",
|
||||||
|
"dist_web/*",
|
||||||
|
"assets/*",
|
||||||
|
"cli.js",
|
||||||
|
"npmextra.json",
|
||||||
|
"readme.md"
|
||||||
|
]
|
||||||
}
|
}
|
74
test/test.ts
74
test/test.ts
@ -8,112 +8,112 @@ import { expect, tap } from '@pushrocks/tapbundle';
|
|||||||
// ---------------------------
|
// ---------------------------
|
||||||
|
|
||||||
tap.test('.fs.fileExistsSync -> should return an accurate boolean', async () => {
|
tap.test('.fs.fileExistsSync -> should return an accurate boolean', async () => {
|
||||||
expect(smartfile.fs.fileExistsSync('./test/mytest.json')).to.be.true;
|
expect(smartfile.fs.fileExistsSync('./test/testassets/mytest.json')).to.be.true;
|
||||||
expect(smartfile.fs.fileExistsSync('./test/notthere.json')).be.false;
|
expect(smartfile.fs.fileExistsSync('./test/testassets/notthere.json')).be.false;
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('.fs.fileExists -> should resolve or reject a promise', async () => {
|
tap.test('.fs.fileExists -> should resolve or reject a promise', async () => {
|
||||||
expect(smartfile.fs.fileExists('./test/mytest.json')).to.be.instanceof(Promise);
|
expect(smartfile.fs.fileExists('./test/testassets/mytest.json')).to.be.instanceof(Promise);
|
||||||
await smartfile.fs.fileExists('./test/mytest.json');
|
await smartfile.fs.fileExists('./test/testassets/mytest.json');
|
||||||
await smartfile.fs.fileExists('./test/notthere.json').catch(err => {
|
await smartfile.fs.fileExists('./test/testassets/notthere.json').catch(err => {
|
||||||
return expect(err.message).to.equal(
|
return expect(err.message).to.equal(
|
||||||
"ENOENT: no such file or directory, access './test/notthere.json'"
|
"ENOENT: no such file or directory, access './test/testassets/notthere.json'"
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('.fs.listFoldersSync() -> should get the file type from a string', async () => {
|
tap.test('.fs.listFoldersSync() -> should get the file type from a string', async () => {
|
||||||
expect(smartfile.fs.listFoldersSync('./test/')).to.include('testfolder');
|
expect(smartfile.fs.listFoldersSync('./test/testassets/')).to.include('testfolder');
|
||||||
expect(smartfile.fs.listFoldersSync('./test/')).to.not.include('notExistentFolder');
|
expect(smartfile.fs.listFoldersSync('./test/testassets/')).to.not.include('notExistentFolder');
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('.fs.listFolders() -> should get the file type from a string', async () => {
|
tap.test('.fs.listFolders() -> should get the file type from a string', async () => {
|
||||||
let folderArrayArg = await smartfile.fs.listFolders('./test/');
|
let folderArrayArg = await smartfile.fs.listFolders('./test/testassets/');
|
||||||
expect(folderArrayArg).to.include('testfolder');
|
expect(folderArrayArg).to.include('testfolder');
|
||||||
expect(folderArrayArg).to.not.include('notExistentFolder');
|
expect(folderArrayArg).to.not.include('notExistentFolder');
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('.fs.listFilesSync() -> should get the file type from a string', async () => {
|
tap.test('.fs.listFilesSync() -> should get the file type from a string', async () => {
|
||||||
expect(smartfile.fs.listFilesSync('./test/')).to.include('mytest.json');
|
expect(smartfile.fs.listFilesSync('./test/testassets/')).to.include('mytest.json');
|
||||||
expect(smartfile.fs.listFilesSync('./test/')).to.not.include('notExistentFile');
|
expect(smartfile.fs.listFilesSync('./test/testassets/')).to.not.include('notExistentFile');
|
||||||
expect(smartfile.fs.listFilesSync('./test/', /mytest\.json/)).to.include('mytest.json');
|
expect(smartfile.fs.listFilesSync('./test/testassets/', /mytest\.json/)).to.include('mytest.json');
|
||||||
expect(smartfile.fs.listFilesSync('./test/', /mytests.json/)).to.not.include('mytest.json');
|
expect(smartfile.fs.listFilesSync('./test/testassets/', /mytests.json/)).to.not.include('mytest.json');
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('.fs.listFiles() -> should get the file type from a string', async () => {
|
tap.test('.fs.listFiles() -> should get the file type from a string', async () => {
|
||||||
let folderArrayArg = await smartfile.fs.listFiles('./test/');
|
let folderArrayArg = await smartfile.fs.listFiles('./test/testassets/');
|
||||||
expect(folderArrayArg).to.include('mytest.json');
|
expect(folderArrayArg).to.include('mytest.json');
|
||||||
expect(folderArrayArg).to.not.include('notExistentFile');
|
expect(folderArrayArg).to.not.include('notExistentFile');
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('.fs.listFileTree() -> should get a file tree', async () => {
|
tap.test('.fs.listFileTree() -> should get a file tree', async () => {
|
||||||
let folderArrayArg = await smartfile.fs.listFileTree(path.resolve('./test/'), '**/*.txt');
|
let folderArrayArg = await smartfile.fs.listFileTree(path.resolve('./test/testassets/'), '**/*.txt');
|
||||||
expect(folderArrayArg).to.include('testfolder/testfile1.txt');
|
expect(folderArrayArg).to.include('testfolder/testfile1.txt');
|
||||||
expect(folderArrayArg).to.not.include('mytest.json');
|
expect(folderArrayArg).to.not.include('mytest.json');
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('.fs.fileTreeToObject -> should read a file tree into an Object', async () => {
|
tap.test('.fs.fileTreeToObject -> should read a file tree into an Object', async () => {
|
||||||
let fileArrayArg = await smartfile.fs.fileTreeToObject(path.resolve('./test/'), '**/*.txt');
|
let fileArrayArg = await smartfile.fs.fileTreeToObject(path.resolve('./test/testassets/'), '**/*.txt');
|
||||||
expect(fileArrayArg[0]).to.be.instanceof(smartfile.Smartfile);
|
expect(fileArrayArg[0]).to.be.instanceof(smartfile.Smartfile);
|
||||||
expect(fileArrayArg[0].contents.toString()).to.equal(fileArrayArg[0].contentBuffer.toString());
|
expect(fileArrayArg[0].contents.toString()).to.equal(fileArrayArg[0].contentBuffer.toString());
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('.fs.copy() -> should copy a directory', async () => {
|
tap.test('.fs.copy() -> should copy a directory', async () => {
|
||||||
smartfile.fs.copy('./test/testfolder/', './test/temp/');
|
smartfile.fs.copy('./test/testassets/testfolder/', './test/testassets/temp/');
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('.fs.copy() -> should copy a file', async () => {
|
tap.test('.fs.copy() -> should copy a file', async () => {
|
||||||
smartfile.fs.copy('./test/mytest.yaml', './test/temp/');
|
smartfile.fs.copy('./test/testassets/mytest.yaml', './test/testassets/temp/');
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('.fs.copy() -> should copy a file and rename it', async () => {
|
tap.test('.fs.copy() -> should copy a file and rename it', async () => {
|
||||||
smartfile.fs.copy('./test/mytest.yaml', './test/temp/mytestRenamed.yaml');
|
smartfile.fs.copy('./test/testassets/mytest.yaml', './test/testassets/temp/mytestRenamed.yaml');
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('.fs.remove() -> should remove an entire directory', async () => {});
|
tap.test('.fs.remove() -> should remove an entire directory', async () => {});
|
||||||
|
|
||||||
tap.test('.fs.remove -> should remove single files', async () => {
|
tap.test('.fs.remove -> should remove single files', async () => {
|
||||||
await smartfile.fs.remove('./test/temp/mytestRenamed.yaml');
|
await smartfile.fs.remove('./test/testassets/temp/mytestRenamed.yaml');
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('.fs.removeSync -> should remove single files synchronouly', async () => {
|
tap.test('.fs.removeSync -> should remove single files synchronouly', async () => {
|
||||||
smartfile.fs.removeSync('./test/temp/testfile1.txt');
|
smartfile.fs.removeSync('./test/testassets/temp/testfile1.txt');
|
||||||
expect(smartfile.fs.fileExistsSync('./test/temp/testfile1.txt')).to.be.false;
|
expect(smartfile.fs.fileExistsSync('./test/testassets/temp/testfile1.txt')).to.be.false;
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('.fs.removeMany -> should remove and array of files', async () => {
|
tap.test('.fs.removeMany -> should remove and array of files', async () => {
|
||||||
smartfile.fs.removeMany(['./test/temp/testfile1.txt', './test/temp/testfile2.txt']).then(() => {
|
smartfile.fs.removeMany(['./test/testassets/temp/testfile1.txt', './test/testassets/temp/testfile2.txt']).then(() => {
|
||||||
expect(smartfile.fs.fileExistsSync('./test/temp/testfile1.txt')).to.be.false;
|
expect(smartfile.fs.fileExistsSync('./test/testassets/temp/testfile1.txt')).to.be.false;
|
||||||
expect(smartfile.fs.fileExistsSync('./test/temp/testfile2.txt')).to.be.false;
|
expect(smartfile.fs.fileExistsSync('./test/testassets/temp/testfile2.txt')).to.be.false;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('.fs.removeManySync -> should remove and array of single files synchronouly', async () => {
|
tap.test('.fs.removeManySync -> should remove and array of single files synchronouly', async () => {
|
||||||
smartfile.fs.removeManySync(['./test/temp/testfile1.txt', './test/temp/testfile2.txt']);
|
smartfile.fs.removeManySync(['./test/testassets/temp/testfile1.txt', './test/testassets/temp/testfile2.txt']);
|
||||||
expect(smartfile.fs.fileExistsSync('./test/temp/testfile1.txt')).to.be.false;
|
expect(smartfile.fs.fileExistsSync('./test/testassets/temp/testfile1.txt')).to.be.false;
|
||||||
expect(smartfile.fs.fileExistsSync('./test/temp/testfile2.txt')).to.be.false;
|
expect(smartfile.fs.fileExistsSync('./test/testassets/temp/testfile2.txt')).to.be.false;
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('.fs.toObjectSync() -> should read an ' + '.yaml' + ' file to an object', async () => {
|
tap.test('.fs.toObjectSync() -> should read an ' + '.yaml' + ' file to an object', async () => {
|
||||||
let testData = smartfile.fs.toObjectSync('./test/mytest.yaml');
|
let testData = smartfile.fs.toObjectSync('./test/testassets/mytest.yaml');
|
||||||
expect(testData).to.include({ key1: 'this works' });
|
expect(testData).to.include({ key1: 'this works' });
|
||||||
expect(testData).to.include({ key2: 'this works too' });
|
expect(testData).to.include({ key2: 'this works too' });
|
||||||
});
|
});
|
||||||
tap.test(
|
tap.test(
|
||||||
'.fs.toObjectSync() -> should state unknown file type for unknown file types',
|
'.fs.toObjectSync() -> should state unknown file type for unknown file types',
|
||||||
async () => {
|
async () => {
|
||||||
let testData = smartfile.fs.toObjectSync('./test/mytest.txt');
|
let testData = smartfile.fs.toObjectSync('./test/testassets/mytest.txt');
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
tap.test('.fs.toObjectSync() -> should read an ' + '.json' + ' file to an object', async () => {
|
tap.test('.fs.toObjectSync() -> should read an ' + '.json' + ' file to an object', async () => {
|
||||||
let testData = smartfile.fs.toObjectSync('./test/mytest.json');
|
let testData = smartfile.fs.toObjectSync('./test/testassets/mytest.json');
|
||||||
expect(testData).to.include({ key1: 'this works' });
|
expect(testData).to.include({ key1: 'this works' });
|
||||||
expect(testData).to.include({ key2: 'this works too' });
|
expect(testData).to.include({ key2: 'this works too' });
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('.fs.toStringSync() -> should read a file to a string', async () => {
|
tap.test('.fs.toStringSync() -> should read a file to a string', async () => {
|
||||||
expect(smartfile.fs.toStringSync('./test/mytest.txt')).to.equal('Some TestString &&%$');
|
expect(smartfile.fs.toStringSync('./test/testassets/mytest.txt')).to.equal('Some TestString &&%$');
|
||||||
});
|
});
|
||||||
|
|
||||||
// ---------------------------
|
// ---------------------------
|
||||||
@ -130,7 +130,7 @@ tap.test('.interpreter.filetype() -> should get the file type from a string', as
|
|||||||
|
|
||||||
tap.test('.memory.toFs() -> should write a file to disk and return a promise', async () => {
|
tap.test('.memory.toFs() -> should write a file to disk and return a promise', async () => {
|
||||||
let localString = 'myString';
|
let localString = 'myString';
|
||||||
await smartfile.memory.toFs(localString, path.join(process.cwd(), './test/temp/testMemToFs.txt'));
|
await smartfile.memory.toFs(localString, path.join(process.cwd(), './test/testassets/temp/testMemToFs.txt'));
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test(
|
tap.test(
|
||||||
@ -139,7 +139,7 @@ tap.test(
|
|||||||
let localString = 'myString';
|
let localString = 'myString';
|
||||||
smartfile.memory.toFsSync(
|
smartfile.memory.toFsSync(
|
||||||
localString,
|
localString,
|
||||||
path.join(process.cwd(), './test/temp/testMemToFsSync.txt')
|
path.join(process.cwd(), './test/testassets/temp/testMemToFsSync.txt')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -165,7 +165,7 @@ tap.test('.remote.toString() -> should reject a Promise when the link is false',
|
|||||||
// ---------------------------
|
// ---------------------------
|
||||||
|
|
||||||
tap.test('.Smartfile -> should produce vinyl compatible files', async () => {
|
tap.test('.Smartfile -> should produce vinyl compatible files', async () => {
|
||||||
let smartfileArray = await smartfile.fs.fileTreeToObject(process.cwd(), './test/testfolder/**/*');
|
let smartfileArray = await smartfile.fs.fileTreeToObject(process.cwd(), './test/testassets/testfolder/**/*');
|
||||||
let localSmartfile = smartfileArray[0];
|
let localSmartfile = smartfileArray[0];
|
||||||
expect(localSmartfile).to.be.instanceof(smartfile.Smartfile);
|
expect(localSmartfile).to.be.instanceof(smartfile.Smartfile);
|
||||||
expect(localSmartfile.contents).to.be.instanceof(Buffer);
|
expect(localSmartfile.contents).to.be.instanceof(Buffer);
|
||||||
@ -178,7 +178,7 @@ tap.test('.Smartfile -> should produce vinyl compatible files', async () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
tap.test('should output a smartfile array to disk', async () => {
|
tap.test('should output a smartfile array to disk', async () => {
|
||||||
let smartfileArray = await smartfile.fs.fileTreeToObject('./test/testfolder/', '*');
|
let smartfileArray = await smartfile.fs.fileTreeToObject('./test/testassets/testfolder/', '*');
|
||||||
for (let smartfile of smartfileArray) {
|
for (let smartfile of smartfileArray) {
|
||||||
console.log(smartfile.relative);
|
console.log(smartfile.relative);
|
||||||
console.log(smartfile.path);
|
console.log(smartfile.path);
|
||||||
@ -187,7 +187,7 @@ tap.test('should output a smartfile array to disk', async () => {
|
|||||||
}
|
}
|
||||||
await smartfile.memory.smartfileArrayToFs(
|
await smartfile.memory.smartfileArrayToFs(
|
||||||
smartfileArray,
|
smartfileArray,
|
||||||
path.resolve('./test/temp/testoutput/')
|
path.resolve('./test/testassets/temp/testoutput/')
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
1
test/testassets/temp/testMemToFs.txt
Normal file
1
test/testassets/temp/testMemToFs.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
myString
|
1
test/testassets/temp/testMemToFsSync.txt
Normal file
1
test/testassets/temp/testMemToFsSync.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
myString
|
0
test/testassets/temp/testoutput/testfile1.txt
Normal file
0
test/testassets/temp/testoutput/testfile1.txt
Normal file
0
test/testassets/temp/testoutput/testfile2.txt
Normal file
0
test/testassets/temp/testoutput/testfile2.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
okidoks
|
1
test/testassets/testfolder/subfolder/subtestfile.txt
Normal file
1
test/testassets/testfolder/subfolder/subtestfile.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
hi
|
0
test/testassets/testfolder/testfile1.txt
Normal file
0
test/testassets/testfolder/testfile1.txt
Normal file
0
test/testassets/testfolder/testfile2.txt
Normal file
0
test/testassets/testfolder/testfile2.txt
Normal file
@ -210,7 +210,7 @@ export let toStringSync = function(filePath: string): string {
|
|||||||
return fileString;
|
return fileString;
|
||||||
};
|
};
|
||||||
|
|
||||||
export let fileTreeToObject = async (dirPathArg: string, miniMatchFilter: string) => {
|
export const fileTreeToObject = async (dirPathArg: string, miniMatchFilter: string) => {
|
||||||
// handle absolute miniMatchFilter
|
// handle absolute miniMatchFilter
|
||||||
let dirPath: string;
|
let dirPath: string;
|
||||||
if (plugins.path.isAbsolute(miniMatchFilter)) {
|
if (plugins.path.isAbsolute(miniMatchFilter)) {
|
||||||
@ -219,8 +219,8 @@ export let fileTreeToObject = async (dirPathArg: string, miniMatchFilter: string
|
|||||||
dirPath = dirPathArg;
|
dirPath = dirPathArg;
|
||||||
}
|
}
|
||||||
|
|
||||||
let fileTree = await listFileTree(dirPath, miniMatchFilter);
|
const fileTree = await listFileTree(dirPath, miniMatchFilter);
|
||||||
let smartfileArray: Smartfile[] = [];
|
const smartfileArray: Smartfile[] = [];
|
||||||
for (let filePath of fileTree) {
|
for (let filePath of fileTree) {
|
||||||
let readPath = ((): string => {
|
let readPath = ((): string => {
|
||||||
if (!plugins.path.isAbsolute(filePath)) {
|
if (!plugins.path.isAbsolute(filePath)) {
|
||||||
@ -234,7 +234,7 @@ export let fileTreeToObject = async (dirPathArg: string, miniMatchFilter: string
|
|||||||
// push a read file as Smartfile
|
// push a read file as Smartfile
|
||||||
smartfileArray.push(
|
smartfileArray.push(
|
||||||
new Smartfile({
|
new Smartfile({
|
||||||
contentBuffer: new Buffer(fileContentString),
|
contentBuffer: Buffer.from(fileContentString),
|
||||||
base: dirPath,
|
base: dirPath,
|
||||||
path: filePath
|
path: filePath
|
||||||
})
|
})
|
||||||
@ -331,7 +331,7 @@ export let listAllItemsSync = (pathArg: string, regexFilter?: RegExp): string[]
|
|||||||
* note: if the miniMatch Filter is an absolute path, the cwdArg will be omitted
|
* 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
|
* @returns Promise<string[]> string array with the absolute paths of all matching files
|
||||||
*/
|
*/
|
||||||
export let listFileTree = (dirPathArg: string, miniMatchFilter: string): Promise<string[]> => {
|
export const listFileTree = async (dirPathArg: string, miniMatchFilter: string, absolutePathsBool: boolean = false): Promise<string[]> => {
|
||||||
const done = plugins.smartpromise.defer<string[]>();
|
const done = plugins.smartpromise.defer<string[]>();
|
||||||
|
|
||||||
// handle absolute miniMatchFilter
|
// handle absolute miniMatchFilter
|
||||||
@ -354,5 +354,13 @@ export let listFileTree = (dirPathArg: string, miniMatchFilter: string): Promise
|
|||||||
}
|
}
|
||||||
done.resolve(files);
|
done.resolve(files);
|
||||||
});
|
});
|
||||||
return done.promise;
|
|
||||||
|
let fileList = await done.promise;
|
||||||
|
if (absolutePathsBool) {
|
||||||
|
fileList = fileList.map(filePath => {
|
||||||
|
return plugins.path.resolve(plugins.path.join(dirPath, filePath));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return fileList;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user