Socket
Socket
Sign inDemoInstall

steno

Package Overview
Dependencies
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

steno - npm Package Compare versions

Comparing version 0.1.2 to 0.2.0

16

index.js
var fs = require('fs')
var util = require('util')
var events = require('events')

@@ -8,8 +6,5 @@ var writers = {}

function Writer(filename) {
events.EventEmitter.call(this)
this.filename = filename
}
util.inherits(Writer, events.EventEmitter)
Writer.prototype.setCallback = function(callback) {

@@ -19,2 +14,7 @@ this.callback = callback

Writer.prototype.callback = function(err, data, next) {
if (err) throw err
next()
}
Writer.prototype.write = function(data) {

@@ -34,4 +34,2 @@

if (err) throw err
function next() {

@@ -46,3 +44,3 @@ self.lock = false

self.callback ? self.callback(data, next) : next()
self.callback ? self.callback(err, data, next) : next()
})

@@ -55,2 +53,2 @@

return writers[filename] = writers[filename] || new Writer(filename)
}
}
{
"name": "steno",
"version": "0.1.2",
"version": "0.2.0",
"description": "File writer",
"main": "index.js",
"scripts": {
"test": "node test",
"test": "node test | tap-dot",
"prepush": "npm test"

@@ -30,4 +30,5 @@ },

"husky": "^0.6.1",
"tap-dot": "^0.2.3",
"tape": "^3.0.1"
}
}

@@ -1,5 +0,7 @@

# steno ![](http://img.shields.io/npm/v/steno.svg?style=flat) ![](http://img.shields.io/travis/typicode/steno.svg?style=flat)
# steno [![Build Status](https://travis-ci.org/typicode/steno.svg?branch=master)](https://travis-ci.org/typicode/steno) [![npm version](https://badge.fury.io/js/steno.svg)](http://badge.fury.io/js/steno)
> Super fast non-blocking file writer for Node.
> Super fast non-blocking file writer for Node
## Example
```javascript

@@ -15,4 +17,13 @@ var steno = require('steno')

## API
## How it works
```javascript
steno('file.txt').write('A') // starts writing A to file
steno('file.txt').write('B') // still writing A, B is buffered
steno('file.txt').write('C') // still writing A, C replaces B
// A has been written to file, starts writting C (B is skipped)
```
## Methods
__steno(filename)__

@@ -28,12 +39,31 @@

Use it to set a callback that will be executed between two writes. Useful for atomic writing, logging, delaying, ...
Sets a callback. Useful for creating atomic writers, logging, delaying, ...
```javascript
steno('tmp-file.txt').setCallback(function(data, next) {
console.log(data + ' has been written to ' + this.filename)
var atomic = steno('tmp-file.txt').setCallback(function(err, data, next) {
// Writing is stopped until next is called
if (err) throw err
fs.rename('tmp-file.txt', 'file.txt', function(err) {
if (err) throw err
next() // next must be called
next()
})
})
atomic.write('Hello world')
```
## Properties
__writer.lock__
`true` if file is being written.
__writer.next__
`null` when there's no more data waiting to be written to file.
## License
MIT - [Typicode](https://github.com/typicode)

@@ -25,2 +25,15 @@ var fs = require('fs')

test('steno default callback', function(t) {
reset()
t.plan(2)
writer.callback(null, '', function() {
t.pass('next was called')
})
t.throws(function() {
writer.callback(new Error())
})
})
test('steno with callback', function(t) {

@@ -30,3 +43,3 @@ reset()

writer.setCallback(function(data, next) {
writer.setCallback(function(err, data, next) {
if (data === max) {

@@ -42,1 +55,14 @@ t.equal(+fs.readFileSync('tmp.txt'), max)

})
test('steno error with callback', function(t) {
reset()
t.plan(1)
var writer = steno(__dirname + '/dir/doesnt/exist')
writer.setCallback(function(err) {
t.equal(err.code, 'ENOENT')
})
writer.write('')
})
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc