Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/notslang/fobject
- Owner: notslang
- License: gpl-3.0
- Created: 2014-04-02T20:10:25.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2016-05-26T11:38:28.000Z (over 8 years ago)
- Last Synced: 2024-12-27T17:28:57.098Z (about 1 month ago)
- Language: CoffeeScript
- Size: 29.3 KB
- Stars: 2
- Watchers: 3
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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.
append(data) → {Promise}Append
data
to the fileParameters:
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'
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'
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 fileParameters:
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'
Returns:
Type
Promise*generated with [docme](https://github.com/thlorenz/docme)*