vstor
TypeScript icon, indicating that this package has built-in type declarations

1.0.10 • Public • Published

VStor

In memory file manager using Vinyl files such as used in Gulp. Allows working with files in memory before writing to dist. Supports filters like you'd use with a Gulp plugin. Similar to mem-fs-editor with a few more API methods also handles in memory copy a little better preventing need of saving before moving or removing.

Install

--production is optional, but prevents installing devDependencies.

$ npm install vstor --production

Usage

Using TypeScript or ES6

import { VStor } from 'vstor';
const vstor = new VStor({ /* your options */ });
const contents = vstor.read('./some/path/to/file.txt').toValue();

Using ES5

var VStor = require('vstor').VStor;
var vstor = new VStor({ /* your options */ });
var buf = vstor.read('./some/path/to/file.txt').toBuffer();

Options

Option Description Default
basePath a base path all files should be relative to process.cwd()
jsonSpacer string or number of spaces for formatting JSON 2

API

Arguments are depicted with TypeScript type annotations.

Properties

Property Description
options object containing VStor options.
store returns the entire file store.

Methods

Method Description Arguments Returns
resolveKey resolves file key using base path. key: string string
hasKey checks if store contains key. key: string VinylFile
exists checks if file in store and not deleted. path: string | VinylFile boolean
isEmpty check if file contents are not null. path: string | VinylFile boolean
read reads a file. path: string | VinylFile, def?: any IReadMethods
write writes a file. path: string | VinylFile, contents: string | Buffer | IMap, stat?: Stats VStor
copy copies a file or directory of files. from: string | string[], to: string, options?: IGlobOptions | CopyTransform, transform?: CopyTransform VStor
move moves a file. from: string, to: string, options?: IGlobOptions VStor
append appends value to file. to: string, content: string | Buffer, trim?: boolean VStor
remove removes a file. paths: string | string[], options?: IGlobOptions VStor
save saves all changes to disk. filters?: Transform[] | SaveCallback, fn?: SaveCallback VStor

Examples

Writing file to JSON.

vstor
  .write('./some/path/data.json', { name: 'John', age: 33 })
  .save();

Move file.

vstor
  .move('./some/path/data.json', './some/path/moved.json')
  .save();

Appending to a file.

vstor
  .append('./some/path/myfile.txt', 'some new line.')
  .save();

Apply filter on save.

Filter callback args:

  • file - the Vinyl File object.
  • enc - the file encoding.
  • done - callback to continue.
vstor
  .save((file, enc, done) => {
    // do something on each file in store.
    done();
  });

Events

VStor provides events you can listen on.

Event Description Arguments
changed fires on any put to store. file: VinylFile, vstor: VStor
copied fires on file copied. file: VinylFile, vstor: VStor
moved fires on file moved. file: VinylFile, vstor: VStor
appended fires on file appended. file: VinylFile, vstor: VStor
removed fires on file removed. file: VinylFile, vstor: VStor

Liten to any change event.

Below describes listening to the "changed" event but all events work exactly the same.

vstor.on('changed', (file) => {
  // do something with the changed file.
});

Change

See CHANGE.md

License

See LICENSE.md

Readme

Keywords

none

Package Sidebar

Install

npm i vstor

Weekly Downloads

1

Version

1.0.10

License

ISC

Unpacked Size

933 kB

Total Files

51

Last publish

Collaborators

  • origin1tech