https://github.com/bendrucker/submission
Observable interface for managing submission states
https://github.com/bendrucker/submission
Last synced: about 1 year ago
JSON representation
Observable interface for managing submission states
- Host: GitHub
- URL: https://github.com/bendrucker/submission
- Owner: bendrucker
- License: mit
- Created: 2015-09-15T20:49:27.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2019-08-19T21:56:08.000Z (almost 7 years ago)
- Last Synced: 2025-07-14T07:17:44.065Z (about 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 10.7 KB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
README
# submission [](https://travis-ci.org/bendrucker/submission) [](https://greenkeeper.io/)
> Observable interface for managing submission submission states
## Install
```
$ npm install --save submission
```
## Usage
```js
var Submission = require('submission')
var submission = Submission()
submission.pending()
//=> false
submission.error()
//=> null
Submission.submit(submission, function (callback) {
//=> submission.pending() === true
submit(callback)
})
function submit (callback) {
//=> submit data to server
//=> call callback w/ err, data
}
Submission.onData(submission, console.log)
//=> data
Submission.onError(submission, console.log)
//=> null / Error
```
## API
#### `Submission([data])` -> `function`
Returns an observable submission state.
##### data
Type: `object`
Default: `{pending: false, error: null}`
The initial submission state.
#### `Submission.submit(state, fn)` -> `undefined`
##### state
*Required*
Type: `function`
A submission state observable.
##### fn
*Required*
Type: `function`
Arguments: `callback`
A function to call to trigger submission. The function will receive a callback that will update the submission state and trigger events based on the result.
#### `Submission.onData(state, listener)` -> `function`
Returns a function that removes the event listener.
##### state
*Required*
Type: `function`
A submission state observable.
##### listener
*Required*
Type: `function`
A function to be called with the submission data passed back from the function provided to `Submission.submit`.
#### `Submission.onError(state, listener)` -> `function`
Returns a function that removes the event listener.
##### state
*Required*
Type: `function`
A submission state observable.
##### listener
*Required*
Type: `function`
A function to be called with an error passed back from the function provided to `Submission.submit`.
## License
MIT © [Ben Drucker](http://bendrucker.me)