Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/notslang/fobject

A simple promise-based wrapper for file operations that treats files as objects.
https://github.com/notslang/fobject

Last synced: about 1 month ago
JSON representation

A simple promise-based wrapper for file operations that treats files as objects.

Awesome Lists containing this project

README

        

# fobject
[![Build Status](http://img.shields.io/travis/slang800/fobject.svg?style=flat-square)](https://travis-ci.org/slang800/fobject) [![NPM version](http://img.shields.io/npm/v/fobject.svg?style=flat-square)](https://www.npmjs.org/package/fobject) [![NPM license](http://img.shields.io/npm/l/fobject.svg?style=flat-square)](https://www.npmjs.org/package/fobject)

A simple promise-based wrapper for file operations that treats files as objects.

```coffee
File = require 'fobject'
configFile = new File('config.json')
configFile.read().done((data) ->
console.log "contents of #{configFile.path}: #{data}"
)
```

## why?
The default fs module has a really ugly interface (including sync and async copies of almost every function) and doesn't make it easy to work with files that may or may not actually be written to the file-system. fobject abstracts out interaction with the file system so if you want to implement caching, or work with files without writing them to the disk, or whatever else you want: you can do so easily.

## docs





new File(path)




Parameters:

Name
Type
Argument
Default
Description

path

String

The path to the file. This will be resolved to an
absolute path, so even if you change your cwd you can still access the same
file.

options.base

String

<optional>

./

Used for relative pathing. This will not
be resolved to an absolute path. Typically where a glob starts.


Source:












append(data) → {Promise}





Append data to the file



Parameters:

Name
Type
Argument
Default
Description

data

String
|
Buffer

options.encoding

String
|
null

<optional>

'utf8'

ignored if data is a
buffer

options.mode

Number

<optional>

438

default is 0666 in Octal

options.flag

String

<optional>

'w'


Source:



Returns:



Type


Promise





dirname() → {String}





Get the dirname of the file




Source:



Returns:



Type


String





extname() → {String}





Get the extension of a file




Source:



Returns:



Type


String





read() → {Promise}





Read from the file



Parameters:

Name
Type
Argument
Default
Description

options.encoding

String
|
null

<optional>

null

options.flag

String

<optional>

'r'


Source:



Returns:



Type


Promise





rename(newPath) → {Promise}





Rename the file



Parameters:

Name
Type
Description

newPath

String

The new path for the file. Will be resolved
relative to File.base.


Source:



Returns:



Type


Promise





stat() → {Promise}





Return a Stat object for the file




Source:



Returns:



Type


Promise





unlink() → {Promise}





Delete the file




Source:



Returns:



Type


Promise





write(data) → {Promise}





Write data to the file



Parameters:

Name
Type
Argument
Default
Description

data

String
|
Buffer

options.encoding

String
|
null

<optional>

'utf8'

ignored if data is a
buffer

options.mode

Number

<optional>

438

default is 0666 in Octal

options.flag

String

<optional>

'w'


Source:



Returns:



Type


Promise



*generated with [docme](https://github.com/thlorenz/docme)*