0.5.8 • Published 9 years ago

custom-file v0.5.8

Weekly downloads
3
License
MIT
Repository
github
Last release
9 years ago

custom-file npm

Build Status Code Climate Test Coverage downloads license

the custom-file can be used on any virtual file system with stream supports.

Usage

you must call setFileSystem() the fs to CustomFile Before use it:

through2    = require 'through2'
Stream      = require('stream').Stream
fs          = require 'graceful-fs' #or require 'fs'
CustomFile  = require 'custom-file'

fs.cwd      = process.cwd    # what's the get current working directory function.
fs.path     = require 'path.js' # what's the path package. (>=abstract-file@0.5.4 supports)
CustomFile.setFileSystem(fs) # and should set your filesystem first.

File = CustomFile.File
Folder = CustomFile.Folder

file = File './readme.md', load:true, read:true
console.log file.contents #<Buffer 23...>
file = File './readme.md', load:true, read:true, buffer:false
console.log file.contents instanceof Stream #true
file.pipe process.stdout, end:false #pipe to stdout(the stdout should be never closed.)

file = Folder './', load:true, read:true
console.log file.contents #[<File "README.md">, <Folder "src">,...]
file = Folder './', load:true, read:true, buffer:false
console.log file.contents instanceof Stream #true
file.pipe through2.obj (aFile, enc, next)->next null, aFile.inspect()+'\n'
.pipe process.stdout, end:false

file = CustomFile './readme.md' # the CustomFile can create the file or folder object base on the file path
file.should.be.instanceof File
file = CustomFile './'          # Or use the AdvanceFile with same object.
file.should.be.instanceof Folder

AdvanceFile = require 'custom-file/lib/advance'
file = AdvanceFile './readme.md'
file.should.be.instanceof AdvanceFile
file = AdvanceFile './'
file.should.be.instanceof AdvanceFile

file.loadSync read:true # here can load manually.
file.load read:true, (err, content)->
  console.log content

the following is javascript:

var through2 = require('through2');
var Stream = require('stream').Stream;
var fs = require('graceful-fs');
var CustomFile = require('custom-file');

fs.cwd = process.cwd;
CustomFile.setFileSystem(fs);

var File = CustomFile.File;

var Folder = CustomFile.Folder;

var file = File('./readme.md', {
  load: true,
  read: true
});

console.log(file.contents);

file = File('./readme.md', {
  load: true,
  read: true,
  buffer: false
});

console.log(file.contents instanceof Stream);

file.pipe(process.stdout, {
  end: false
});

file = Folder('./', {
  load: true,
  read: true
});

console.log(file.contents);

file = Folder('./', {
  load: true,
  read: true,
  buffer: false
});

console.log(file.contents instanceof Stream);

file.pipe(through2.obj(function(aFile, enc, next) {
  return next(null, aFile.inspect() + '\n');
})).pipe(process.stdout, {
  end: false
});

file = CustomFile('./readme.md'); // create a file object.
file.should.be.instanceof(File)
file = CustomFile('./'); // create a folder object.
file.should.be.instanceof(Folder)

var AdvanceFile = require('custom-file/lib/advance')
file = AdvanceFile('./readme.md')
file.should.be.instanceof(AdvanceFile)
file = AdvanceFile('./')
file.should.be.instanceof(AdvanceFile)

file.loadSync({read: true});
file.load({read: true}, function(err, content) {
  console.log(content);
});

API

See the abstract-file.

Changes

v0.5

v0.4

  • abstract-folder class.

TODOs

  • LRUCache-able supports(not yet)
  • abstract file information class
  • abstract file operation ability
    • abstract save supports: I have no idea about this. I need more thinking. how to pass it to stream?
    • rename
    • create
    • append
    • delete

License

MIT

0.5.8

9 years ago

0.5.7

9 years ago

0.5.6

10 years ago

0.5.5

10 years ago

0.5.4

10 years ago

0.5.3

10 years ago

0.5.2

10 years ago

0.5.1

10 years ago

0.5.0

10 years ago

0.4.3

10 years ago

0.4.2

10 years ago

0.4.1

10 years ago

0.4.0

10 years ago

0.3.5

10 years ago

0.3.4

10 years ago

0.3.3

10 years ago

0.3.2

10 years ago

0.3.1

10 years ago

0.3.0

10 years ago

0.2.0

10 years ago

0.1.0

10 years ago