Compare commits
22 Commits
Author | SHA1 | Date | |
---|---|---|---|
38f001ab23 | |||
d1429c5a41 | |||
403a0f4fae | |||
91ade8a4d4 | |||
1a571bba90 | |||
bcb66b2ccf | |||
0000984e4b | |||
b391e54083 | |||
b32c06aef2 | |||
27f60f6719 | |||
b2482ab8a5 | |||
9c614bd2f3 | |||
b12de7aed4 | |||
d6eb54d21c | |||
6646f173c6 | |||
f20657ff71 | |||
7f3f2da702 | |||
1e60ab375b | |||
98fa607c43 | |||
12b1672e58 | |||
9fca2c3aa4 | |||
5b7d822cfc |
@ -12,6 +12,9 @@ stages:
|
|||||||
- release
|
- release
|
||||||
- metadata
|
- metadata
|
||||||
|
|
||||||
|
before_script:
|
||||||
|
- npm install -g @shipzone/npmci
|
||||||
|
|
||||||
# ====================
|
# ====================
|
||||||
# security stage
|
# security stage
|
||||||
# ====================
|
# ====================
|
||||||
@ -36,6 +39,7 @@ auditProductionDependencies:
|
|||||||
- npmci command npm audit --audit-level=high --only=prod --production
|
- npmci command npm audit --audit-level=high --only=prod --production
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
|
allow_failure: true
|
||||||
|
|
||||||
auditDevDependencies:
|
auditDevDependencies:
|
||||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||||
|
24
.vscode/launch.json
vendored
24
.vscode/launch.json
vendored
@ -2,28 +2,10 @@
|
|||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"configurations": [
|
"configurations": [
|
||||||
{
|
{
|
||||||
"name": "current file",
|
"command": "npm test",
|
||||||
"type": "node",
|
"name": "Run npm test",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"args": [
|
"type": "node-terminal"
|
||||||
"${relativeFile}"
|
|
||||||
],
|
|
||||||
"runtimeArgs": ["-r", "@gitzone/tsrun"],
|
|
||||||
"cwd": "${workspaceRoot}",
|
|
||||||
"protocol": "inspector",
|
|
||||||
"internalConsoleOptions": "openOnSessionStart"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "test.ts",
|
|
||||||
"type": "node",
|
|
||||||
"request": "launch",
|
|
||||||
"args": [
|
|
||||||
"test/test.ts"
|
|
||||||
],
|
|
||||||
"runtimeArgs": ["-r", "@gitzone/tsrun"],
|
|
||||||
"cwd": "${workspaceRoot}",
|
|
||||||
"protocol": "inspector",
|
|
||||||
"internalConsoleOptions": "openOnSessionStart"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
"githost": "gitlab.com",
|
"githost": "gitlab.com",
|
||||||
"gitscope": "pushrocks",
|
"gitscope": "pushrocks",
|
||||||
"gitrepo": "smartfile",
|
"gitrepo": "smartfile",
|
||||||
"shortDescription": "smart ways to work with files in nodejs",
|
"description": "smart ways to work with files in nodejs",
|
||||||
"npmPackagename": "@pushrocks/smartfile",
|
"npmPackagename": "@pushrocks/smartfile",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
}
|
}
|
||||||
|
22961
package-lock.json
generated
22961
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
38
package.json
38
package.json
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@pushrocks/smartfile",
|
"name": "@pushrocks/smartfile",
|
||||||
"private": false,
|
"private": false,
|
||||||
"version": "8.0.8",
|
"version": "9.0.7",
|
||||||
"description": "offers smart ways to work with files in nodejs",
|
"description": "offers smart ways to work with files in nodejs",
|
||||||
"main": "dist_ts/index.js",
|
"main": "dist_ts/index.js",
|
||||||
"typings": "dist_ts/index.d.ts",
|
"typings": "dist_ts/index.d.ts",
|
||||||
@ -24,26 +24,30 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://gitlab.com/pushrocks/smartfile",
|
"homepage": "https://gitlab.com/pushrocks/smartfile",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@pushrocks/lik": "^5.0.0",
|
||||||
|
"@pushrocks/smartdelay": "^2.0.13",
|
||||||
"@pushrocks/smartfile-interfaces": "^1.0.7",
|
"@pushrocks/smartfile-interfaces": "^1.0.7",
|
||||||
"@pushrocks/smarthash": "^2.1.6",
|
"@pushrocks/smarthash": "^2.1.10",
|
||||||
"@pushrocks/smartjson": "^4.0.3",
|
"@pushrocks/smartjson": "^4.0.6",
|
||||||
"@pushrocks/smartmime": "^1.0.3",
|
"@pushrocks/smartmime": "^1.0.5",
|
||||||
"@pushrocks/smartpath": "^4.0.3",
|
"@pushrocks/smartpath": "^4.0.3",
|
||||||
"@pushrocks/smartpromise": "^3.0.6",
|
"@pushrocks/smartpromise": "^3.1.6",
|
||||||
"@pushrocks/smartrequest": "^1.1.51",
|
"@pushrocks/smartrequest": "^1.1.52",
|
||||||
"@types/fs-extra": "^9.0.1",
|
"@pushrocks/smartstream": "^2.0.1",
|
||||||
"@types/glob": "^7.1.3",
|
"@pushrocks/streamfunction": "^4.0.4",
|
||||||
"@types/js-yaml": "^3.12.5",
|
"@types/fs-extra": "^9.0.13",
|
||||||
"fs-extra": "^9.0.1",
|
"@types/glob": "^7.2.0",
|
||||||
"glob": "^7.1.6",
|
"@types/js-yaml": "^4.0.5",
|
||||||
"js-yaml": "^3.14.0"
|
"fs-extra": "^10.0.0",
|
||||||
|
"glob": "^7.2.0",
|
||||||
|
"js-yaml": "^4.1.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@gitzone/tsbuild": "^2.1.25",
|
"@gitzone/tsbuild": "^2.1.28",
|
||||||
"@gitzone/tsrun": "^1.2.12",
|
"@gitzone/tsrun": "^1.2.18",
|
||||||
"@gitzone/tstest": "^1.0.52",
|
"@gitzone/tstest": "^1.0.60",
|
||||||
"@pushrocks/tapbundle": "^3.2.9",
|
"@pushrocks/tapbundle": "^3.2.14",
|
||||||
"@types/node": "^14.11.2",
|
"@types/node": "^16.11.11",
|
||||||
"gulp-function": "^2.2.14",
|
"gulp-function": "^2.2.14",
|
||||||
"tslint": "^6.1.3",
|
"tslint": "^6.1.3",
|
||||||
"tslint-config-prettier": "^1.18.0"
|
"tslint-config-prettier": "^1.18.0"
|
||||||
|
19
test/test.ts
19
test/test.ts
@ -169,21 +169,6 @@ tap.test(
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
tap.test('.remote.toString() -> should load a remote file to a variable', async () => {
|
|
||||||
const responseString = await smartfile.remote.toString(
|
|
||||||
'https://raw.githubusercontent.com/pushrocks/smartfile/master/test/testassets/mytest.txt'
|
|
||||||
);
|
|
||||||
expect(responseString).to.equal('Some TestString &&%$');
|
|
||||||
});
|
|
||||||
|
|
||||||
tap.test('.remote.toString() -> should reject a Promise when the link is false', async (tools) => {
|
|
||||||
await smartfile.remote.toString('https://push.rocks/doesnotexist.txt').catch((err) => {
|
|
||||||
return expect(err.message).to.equal(
|
|
||||||
'could not get remote file from https://push.rocks/doesnotexist.txt'
|
|
||||||
);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// ---------------------------
|
// ---------------------------
|
||||||
// smartfile.Smartfile
|
// smartfile.Smartfile
|
||||||
// ---------------------------
|
// ---------------------------
|
||||||
@ -228,4 +213,8 @@ tap.test('should create, store and retrieve valid smartfiles', async () => {
|
|||||||
expect(retrievedString).to.equal(fileString);
|
expect(retrievedString).to.equal(fileString);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
tap.test('should wait for file to be ready', async () => {
|
||||||
|
await smartfile.fs.waitForFileToBeReady('./test/testassets/mytest.json');
|
||||||
|
});
|
||||||
|
|
||||||
tap.start();
|
tap.start();
|
||||||
|
@ -12,4 +12,4 @@ tap.test('should write to a directory', async () => {
|
|||||||
virtualDir.saveToDisk('./test/testassets/test');
|
virtualDir.saveToDisk('./test/testassets/test');
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.start();
|
tap.start();
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
okidoks
|
1
test/testassets/test/subfolder/subtestfile.txt
Normal file
1
test/testassets/test/subfolder/subtestfile.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
hi
|
0
test/testassets/test/testfile1.txt
Normal file
0
test/testassets/test/testfile1.txt
Normal file
0
test/testassets/test/testfile2.txt
Normal file
0
test/testassets/test/testfile2.txt
Normal file
8
ts/00_commitinfo_data.ts
Normal file
8
ts/00_commitinfo_data.ts
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
/**
|
||||||
|
* autocreated commitinfo by @pushrocks/commitinfo
|
||||||
|
*/
|
||||||
|
export const commitinfo = {
|
||||||
|
name: '@pushrocks/smartfile',
|
||||||
|
version: '9.0.7',
|
||||||
|
description: 'offers smart ways to work with files in nodejs'
|
||||||
|
}
|
18
ts/index.ts
18
ts/index.ts
@ -1,13 +1,13 @@
|
|||||||
import * as plugins from './smartfile.plugins';
|
import * as plugins from './smartfile.plugins';
|
||||||
import * as SmartfileFs from './smartfile.fs';
|
import * as fsMod from './smartfile.fs';
|
||||||
import * as SmartfileInterpreter from './smartfile.interpreter';
|
import * as fsStreamMod from './smartfile.fsstream';
|
||||||
import * as SmartfileMemory from './smartfile.memory';
|
import * as interpreterMod from './smartfile.interpreter';
|
||||||
import * as SmartfileRemote from './smartfile.remote';
|
import * as memoryMod from './smartfile.memory';
|
||||||
|
|
||||||
export { Smartfile } from './smartfile.classes.smartfile';
|
export { Smartfile, ISmartfileConstructorOptions } from './smartfile.classes.smartfile';
|
||||||
export { VirtualDirectory } from './smartfile.classes.virtualdirectory';
|
export { VirtualDirectory } from './smartfile.classes.virtualdirectory';
|
||||||
|
|
||||||
export let fs = SmartfileFs;
|
export const fs = fsMod;
|
||||||
export let interpreter = SmartfileInterpreter;
|
export const fsStream = fsStreamMod;
|
||||||
export let memory = SmartfileMemory;
|
export const interpreter = interpreterMod;
|
||||||
export let remote = SmartfileRemote;
|
export const memory = memoryMod;
|
||||||
|
@ -3,9 +3,9 @@ import * as fs from './smartfile.fs';
|
|||||||
import * as memory from './smartfile.memory';
|
import * as memory from './smartfile.memory';
|
||||||
|
|
||||||
export interface ISmartfileConstructorOptions {
|
export interface ISmartfileConstructorOptions {
|
||||||
path?: string;
|
path: string;
|
||||||
contentBuffer?: Buffer;
|
contentBuffer: Buffer;
|
||||||
base?: string;
|
base: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -21,20 +21,26 @@ export class Smartfile extends plugins.smartjson.Smartjson {
|
|||||||
* creates a Smartfile from a filePath
|
* creates a Smartfile from a filePath
|
||||||
* @param filePath
|
* @param filePath
|
||||||
*/
|
*/
|
||||||
public static async fromFilePath(filePath: string) {
|
public static async fromFilePath(filePath: string, baseArg: string = process.cwd()) {
|
||||||
filePath = plugins.path.resolve(filePath);
|
filePath = plugins.path.resolve(filePath);
|
||||||
const fileBuffer = fs.toBufferSync(filePath);
|
const fileBuffer = fs.toBufferSync(filePath);
|
||||||
const smartfile = new Smartfile({
|
const smartfile = new Smartfile({
|
||||||
path: filePath,
|
|
||||||
contentBuffer: fileBuffer,
|
contentBuffer: fileBuffer,
|
||||||
|
base: baseArg,
|
||||||
|
path: plugins.path.relative(baseArg, filePath),
|
||||||
});
|
});
|
||||||
return smartfile;
|
return smartfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async fromBuffer(filePath: string, contentBufferArg: Buffer) {
|
public static async fromBuffer(
|
||||||
|
filePath: string,
|
||||||
|
contentBufferArg: Buffer,
|
||||||
|
baseArg: string = process.cwd()
|
||||||
|
) {
|
||||||
const smartfile = new Smartfile({
|
const smartfile = new Smartfile({
|
||||||
contentBuffer: contentBufferArg,
|
contentBuffer: contentBufferArg,
|
||||||
path: filePath,
|
base: baseArg,
|
||||||
|
path: plugins.path.relative(baseArg, filePath),
|
||||||
});
|
});
|
||||||
|
|
||||||
return smartfile;
|
return smartfile;
|
||||||
@ -43,21 +49,27 @@ export class Smartfile extends plugins.smartjson.Smartjson {
|
|||||||
public static async fromString(
|
public static async fromString(
|
||||||
filePath: string,
|
filePath: string,
|
||||||
contentStringArg: string,
|
contentStringArg: string,
|
||||||
encodingArg: 'utf8' | 'binary'
|
encodingArg: 'utf8' | 'binary',
|
||||||
|
baseArg = process.cwd()
|
||||||
) {
|
) {
|
||||||
const smartfile = new Smartfile({
|
const smartfile = new Smartfile({
|
||||||
contentBuffer: Buffer.from(contentStringArg, encodingArg),
|
contentBuffer: Buffer.from(contentStringArg, encodingArg),
|
||||||
path: filePath,
|
base: baseArg,
|
||||||
|
path: plugins.path.relative(baseArg, filePath),
|
||||||
});
|
});
|
||||||
|
|
||||||
return smartfile;
|
return smartfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static async fromFoldedJson(foldedJsonArg: string) {
|
||||||
|
return new Smartfile(plugins.smartjson.parse(foldedJsonArg));
|
||||||
|
}
|
||||||
|
|
||||||
// ========
|
// ========
|
||||||
// INSTANCE
|
// INSTANCE
|
||||||
// ========
|
// ========
|
||||||
/**
|
/**
|
||||||
* the full path of the file on disk
|
* the relative path of the file
|
||||||
*/
|
*/
|
||||||
@plugins.smartjson.foldDec()
|
@plugins.smartjson.foldDec()
|
||||||
public path: string;
|
public path: string;
|
||||||
@ -65,8 +77,16 @@ export class Smartfile extends plugins.smartjson.Smartjson {
|
|||||||
/**
|
/**
|
||||||
* a parsed path
|
* a parsed path
|
||||||
*/
|
*/
|
||||||
@plugins.smartjson.foldDec()
|
public get parsedPath(): plugins.path.ParsedPath {
|
||||||
public parsedPath: plugins.path.ParsedPath;
|
return plugins.path.parse(this.path);
|
||||||
|
}
|
||||||
|
public get absolutePath() {
|
||||||
|
return plugins.path.join(this.base, this.path);
|
||||||
|
}
|
||||||
|
|
||||||
|
public get absoluteParsedPath() {
|
||||||
|
return plugins.path.parse(this.absolutePath);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* the content of the file as Buffer
|
* the content of the file as Buffer
|
||||||
@ -100,7 +120,6 @@ export class Smartfile extends plugins.smartjson.Smartjson {
|
|||||||
console.log('created empty Smartfile?');
|
console.log('created empty Smartfile?');
|
||||||
}
|
}
|
||||||
this.path = optionsArg.path;
|
this.path = optionsArg.path;
|
||||||
this.parsedPath = plugins.path.parse(this.path);
|
|
||||||
this.base = optionsArg.base;
|
this.base = optionsArg.base;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,11 +137,12 @@ export class Smartfile extends plugins.smartjson.Smartjson {
|
|||||||
* - no argument write to exactly where the file was picked up
|
* - no argument write to exactly where the file was picked up
|
||||||
*/
|
*/
|
||||||
public async write() {
|
public async write() {
|
||||||
await memory.toFs(this.contentBuffer, this.path);
|
await memory.toFs(this.contentBuffer, plugins.path.join(this.base, this.path));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* writes the file to path given as argument
|
* writes the file to path given as argument
|
||||||
|
* note: if the path is not absolute, takes process.cwd() as base
|
||||||
* @param filePathArg
|
* @param filePathArg
|
||||||
*/
|
*/
|
||||||
public async writeToDiskAtPath(filePathArg: string) {
|
public async writeToDiskAtPath(filePathArg: string) {
|
||||||
@ -132,6 +152,11 @@ export class Smartfile extends plugins.smartjson.Smartjson {
|
|||||||
await memory.toFs(this.contentBuffer, filePathArg);
|
await memory.toFs(this.contentBuffer, filePathArg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* writes the file to a directory combined with the relative path portion
|
||||||
|
* @param dirPathArg
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
public async writeToDir(dirPathArg: string) {
|
public async writeToDir(dirPathArg: string) {
|
||||||
dirPathArg = plugins.smartpath.transform.toAbsolute(dirPathArg);
|
dirPathArg = plugins.smartpath.transform.toAbsolute(dirPathArg);
|
||||||
const filePath = plugins.path.join(dirPathArg, this.path);
|
const filePath = plugins.path.join(dirPathArg, this.path);
|
||||||
@ -142,7 +167,16 @@ export class Smartfile extends plugins.smartjson.Smartjson {
|
|||||||
/**
|
/**
|
||||||
* read file from disk
|
* read file from disk
|
||||||
*/
|
*/
|
||||||
public async read() {}
|
public async read() {
|
||||||
|
this.contentBuffer = await fs.toBuffer(plugins.path.join(this.base, this.path));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* deletes the file from disk at its original location
|
||||||
|
*/
|
||||||
|
public async delete() {
|
||||||
|
await fs.remove(plugins.path.join(this.base, this.path));
|
||||||
|
}
|
||||||
|
|
||||||
// -----------------------------------------------
|
// -----------------------------------------------
|
||||||
// vinyl compatibility
|
// vinyl compatibility
|
||||||
@ -168,7 +202,7 @@ export class Smartfile extends plugins.smartjson.Smartjson {
|
|||||||
* return relative path of file
|
* return relative path of file
|
||||||
*/
|
*/
|
||||||
public get relative(): string {
|
public get relative(): string {
|
||||||
return plugins.path.relative(this.base, this.path);
|
return this.path;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -42,7 +42,7 @@ export class VirtualDirectory {
|
|||||||
|
|
||||||
public async toVirtualDirTransferableObject(): Promise<plugins.smartfileInterfaces.VirtualDirTransferableObject> {
|
public async toVirtualDirTransferableObject(): Promise<plugins.smartfileInterfaces.VirtualDirTransferableObject> {
|
||||||
return {
|
return {
|
||||||
files: this.smartfileArray.map(smartfileArg => smartfileArg.foldToJson())
|
files: this.smartfileArray.map((smartfileArg) => smartfileArg.foldToJson()),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -202,6 +202,10 @@ export const toStringSync = (filePath: string): string => {
|
|||||||
return fileString;
|
return fileString;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const toBuffer = async (filePath: string): Promise<Buffer> => {
|
||||||
|
return plugins.fsExtra.readFile(filePath);
|
||||||
|
};
|
||||||
|
|
||||||
export const toBufferSync = (filePath: string): Buffer => {
|
export const toBufferSync = (filePath: string): Buffer => {
|
||||||
return plugins.fsExtra.readFileSync(filePath);
|
return plugins.fsExtra.readFileSync(filePath);
|
||||||
};
|
};
|
||||||
@ -369,3 +373,29 @@ export const listFileTree = async (
|
|||||||
|
|
||||||
return fileList;
|
return fileList;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* checks wether a file is ready for processing
|
||||||
|
*/
|
||||||
|
export const waitForFileToBeReady = async (filePathArg: string): Promise<void> => {
|
||||||
|
if (!plugins.path.isAbsolute(filePathArg)) {
|
||||||
|
filePathArg = plugins.path.resolve(filePathArg);
|
||||||
|
}
|
||||||
|
const limitedArray = new plugins.lik.LimitedArray<number>(3);
|
||||||
|
let fileReady = false;
|
||||||
|
while (!fileReady) {
|
||||||
|
const stats = await plugins.fsExtra.stat(filePathArg);
|
||||||
|
limitedArray.addOne(stats.size);
|
||||||
|
if (
|
||||||
|
limitedArray.array.length < 3 ||
|
||||||
|
!(
|
||||||
|
limitedArray.array[0] === limitedArray.array[1] &&
|
||||||
|
limitedArray.array[1] === limitedArray.array[2]
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
await plugins.smartdelay.delayFor(5000);
|
||||||
|
} else {
|
||||||
|
fileReady = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
17
ts/smartfile.fsstream.ts
Normal file
17
ts/smartfile.fsstream.ts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
/*
|
||||||
|
This file contains logic for streaming things from and to the filesystem
|
||||||
|
*/
|
||||||
|
import * as plugins from './smartfile.plugins';
|
||||||
|
|
||||||
|
export const createReadStream = (pathArg: string) => {
|
||||||
|
return plugins.fs.createReadStream(pathArg);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const createWriteStream = (pathArg: string) => {
|
||||||
|
return plugins.fs.createWriteStream(pathArg);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export const streamDirectory = async (dirPathArg: string) => {
|
||||||
|
|
||||||
|
}
|
@ -10,7 +10,7 @@ export let objectFile = (fileStringArg: string, fileTypeArg) => {
|
|||||||
switch (fileTypeArg) {
|
switch (fileTypeArg) {
|
||||||
case 'yml':
|
case 'yml':
|
||||||
case 'yaml':
|
case 'yaml':
|
||||||
return plugins.yaml.safeLoad(fileStringArg);
|
return plugins.yaml.load(fileStringArg);
|
||||||
case 'json':
|
case 'json':
|
||||||
return JSON.parse(fileStringArg);
|
return JSON.parse(fileStringArg);
|
||||||
default:
|
default:
|
||||||
|
@ -5,15 +5,29 @@ import * as path from 'path';
|
|||||||
export { fs, path };
|
export { fs, path };
|
||||||
|
|
||||||
// @pushrocks scope
|
// @pushrocks scope
|
||||||
|
import * as lik from '@pushrocks/lik';
|
||||||
import * as smartfileInterfaces from '@pushrocks/smartfile-interfaces';
|
import * as smartfileInterfaces from '@pushrocks/smartfile-interfaces';
|
||||||
|
import * as smartdelay from '@pushrocks/smartdelay';
|
||||||
import * as smarthash from '@pushrocks/smarthash';
|
import * as smarthash from '@pushrocks/smarthash';
|
||||||
import * as smartjson from '@pushrocks/smartjson';
|
import * as smartjson from '@pushrocks/smartjson';
|
||||||
import * as smartmime from '@pushrocks/smartmime';
|
import * as smartmime from '@pushrocks/smartmime';
|
||||||
import * as smartpath from '@pushrocks/smartpath';
|
import * as smartpath from '@pushrocks/smartpath';
|
||||||
import * as smartpromise from '@pushrocks/smartpromise';
|
import * as smartpromise from '@pushrocks/smartpromise';
|
||||||
import * as smartrequest from '@pushrocks/smartrequest';
|
import * as smartrequest from '@pushrocks/smartrequest';
|
||||||
|
import * as smartstream from '@pushrocks/smartstream';
|
||||||
|
|
||||||
export { smartfileInterfaces, smarthash, smartjson, smartmime, smartpath, smartpromise, smartrequest };
|
export {
|
||||||
|
lik,
|
||||||
|
smartfileInterfaces,
|
||||||
|
smartdelay,
|
||||||
|
smarthash,
|
||||||
|
smartjson,
|
||||||
|
smartmime,
|
||||||
|
smartpath,
|
||||||
|
smartpromise,
|
||||||
|
smartrequest,
|
||||||
|
smartstream
|
||||||
|
};
|
||||||
|
|
||||||
// third party scope
|
// third party scope
|
||||||
import * as fsExtra from 'fs-extra';
|
import * as fsExtra from 'fs-extra';
|
||||||
|
@ -1,51 +0,0 @@
|
|||||||
import plugins = require('./smartfile.plugins');
|
|
||||||
import SmartfileInterpreter = require('./smartfile.interpreter');
|
|
||||||
|
|
||||||
/* 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}
|
|
||||||
*/
|
|
||||||
export let toObject = (fromArg: string) => {
|
|
||||||
const done = plugins.smartpromise.defer();
|
|
||||||
plugins.smartrequest
|
|
||||||
.request(fromArg, {
|
|
||||||
method: 'get',
|
|
||||||
})
|
|
||||||
.then((res: any) => {
|
|
||||||
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}
|
|
||||||
*/
|
|
||||||
export let toString = (fromArg: string): Promise<string> => {
|
|
||||||
const done = plugins.smartpromise.defer<string>();
|
|
||||||
plugins.smartrequest.getBinary(fromArg).then((res: any) => {
|
|
||||||
if (res.statusCode === 200) {
|
|
||||||
const encoding = plugins.smartmime.getEncoding(fromArg);
|
|
||||||
done.resolve(res.body.toString(encoding));
|
|
||||||
} else {
|
|
||||||
done.reject(new Error('could not get remote file from ' + fromArg));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return done.promise;
|
|
||||||
};
|
|
Reference in New Issue
Block a user