Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
b2482ab8a5 | |||
9c614bd2f3 | |||
b12de7aed4 | |||
d6eb54d21c | |||
6646f173c6 | |||
f20657ff71 |
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@pushrocks/smartfile",
|
"name": "@pushrocks/smartfile",
|
||||||
"version": "8.0.11",
|
"version": "9.0.2",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@pushrocks/smartfile",
|
"name": "@pushrocks/smartfile",
|
||||||
"version": "8.0.11",
|
"version": "9.0.2",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@pushrocks/smartfile-interfaces": "^1.0.7",
|
"@pushrocks/smartfile-interfaces": "^1.0.7",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@pushrocks/smartfile",
|
"name": "@pushrocks/smartfile",
|
||||||
"private": false,
|
"private": false,
|
||||||
"version": "8.0.11",
|
"version": "9.0.2",
|
||||||
"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",
|
||||||
|
@ -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,11 +49,13 @@ 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;
|
||||||
@ -61,7 +69,7 @@ export class Smartfile extends plugins.smartjson.Smartjson {
|
|||||||
// 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;
|
||||||
@ -69,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
|
||||||
@ -104,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -122,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) {
|
||||||
@ -152,14 +168,14 @@ 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(this.path);
|
this.contentBuffer = await fs.toBuffer(plugins.path.join(this.base, this.path));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* deletes the file from disk at its original location
|
* deletes the file from disk at its original location
|
||||||
*/
|
*/
|
||||||
public async delete() {
|
public async delete() {
|
||||||
await fs.remove(this.path);
|
await fs.remove(plugins.path.join(this.base, this.path));
|
||||||
}
|
}
|
||||||
|
|
||||||
// -----------------------------------------------
|
// -----------------------------------------------
|
||||||
@ -186,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user