├── .editorconfig ├── .gitignore ├── .jshintignore ├── .jshintrc ├── changelog.markdown ├── formium.js ├── lib └── state.js ├── license ├── package.json └── readme.markdown /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | .DS_Store 4 | Thumbs.db 5 | -------------------------------------------------------------------------------- /.jshintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | bower_components 3 | dist 4 | example 5 | -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "curly": true, 3 | "eqeqeq": true, 4 | "newcap": true, 5 | "noarg": true, 6 | "noempty": true, 7 | "nonew": true, 8 | "sub": true, 9 | "undef": true, 10 | "unused": true, 11 | "trailing": true, 12 | "boss": true, 13 | "eqnull": true, 14 | "strict": true, 15 | "immed": true, 16 | "expr": true, 17 | "latedef": "nofunc", 18 | "quotmark": "single", 19 | "validthis": true, 20 | "indent": 2, 21 | "node": true, 22 | "browser": true 23 | } 24 | -------------------------------------------------------------------------------- /changelog.markdown: -------------------------------------------------------------------------------- 1 | # 1.0.3 Speed Bump 2 | 3 | - Bumped `dominus@5.0.1` 4 | 5 | # 1.0.2 Cheese: Optional 6 | 7 | - Fixed a bug where the `qs` option would be required 8 | 9 | # 1.0.0 IPO 10 | 11 | - Initial Public Release 12 | -------------------------------------------------------------------------------- /formium.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // jshint scripturl:true 4 | 5 | var $ = require('dominus'); 6 | var queso = require('queso'); 7 | var safeson = require('safeson'); 8 | var state = require('./lib/state'); 9 | var transformers = []; 10 | var formium = { 11 | submit: submit, 12 | transform: transform, 13 | configure: state.configure 14 | }; 15 | 16 | function noop () {} 17 | 18 | function transform (fn) { 19 | transformers.push(fn); 20 | } 21 | 22 | /* AJAX form submissions use an intermediary