astatine
v1.2.0
Published
Astatine - A Small Ajax and HTML Form Library
Readme
Astatine
Astatine - A Small Ajax and HTML Form Library. Library entry point. Globally available by using Astatine or At.
Overview
- 3KB uncompressed
- Install
npm install astatine - Link
astatine.min.js - ES5 browsers and up. (Probably older ones but who cares about those)
TODO
- File Upload
API
Astatine.setup.spinner
Sets up spinner color, thickness, and size. Defaults are listed bellow. Do this before any Astatine or At operations.
Example
Astatine.setup.spinner.size = '3px';
Astatine.setup.spinner.thickness = '15px';
Astatine.setup.spinner.colorTop = 'darkgray';
Astatine.setup.spinner.colorBottom = 'lightgray';Astatine.submit(options)
Listens on a form element for submit event to be fired.
Special Features
radiowill only appear if it is checked.checkboxwill either betrueorfalse.type="submit"will automatically hide. And a spinner will show on submit..spinnerwill automatically created and make visible a spinner.
Options
The options object accepts all items form the Astatine.ajax method. Please review that section for more detail.
action: StringResource action url. Requiredquery: String | ElementQuery selector or element. Requiredmethod: StringValid methods get, post, put, delete. Requiredreset: BooleanResets form after submit success. Defaults to true.complete: FunctionParameters are the XHR. RequirederrorAn xhr objectsuccessAn xhr object
prepare: FunctionAllows the ability to edit/validate the option.data object before complete/post.data: ObjectThe form data object.resolve: FunctionAsync resolve function requires the data as a parameter.reject: FunctionAsync reject passes its parameter to the complete function as an error.
Example
<form class="form" method="post" action="/post/path">
<input type="text" name="name" placeholder="Name" required>
<input type="submit" value="Submit"/>
</form>Astatine.submit({
query: '.form',
prepare: function (data, resolve, reject) {
data.foo = 'bar'; // manipulate data before send
// return data;
setTimeout(function () {
if (true) resolve(data); // async resolve
else reject({ response: 'rejected' }); // async reject
}, 1000);
},
complete: function (error, success) {
if (error) console.log(error);
else console.log(success);
}
});Astatine.ajax(options)
Ajax is a lower level utility function that allows for more control but less features than the submit method.
Options
action: StringResource action url. Requiredmethod: StringValid methods get, post, put, delete. Requiredsuccess: FunctionRequirederror: FunctionRequireddata: ObjectIf method isGETthan data is concatenated to theaction/urlas parameters.requestType: StringConverts the request data before sending.script'text/javascript, application/javascript, application/x-javascript'json'application/json' stringifyoptions.dataxml'application/xml, text/xml'html'text/html'text'text/plain'- DEFAULT 'application/x-www-form-urlencoded' serialized
options.data
responseType: StringConverts the response data after sending.script'text/javascript, application/javascript, application/x-javascript'json'application/json'xml'application/xml, text/xml'html'text/html'text'text/plain'
contentType: StringShort hand to set the Content-Type Headers. (For request)accept: StringShort hand to set the Accept Headers. (For response)mimeType: StringOverwrites return type.username: Stringpassword: StringwithCredentials: Booleanheaders: ObjectA low level headers object it will map directly to the XHR header. The Will overwrite any above options.
Example
Astatine.ajax({
method: 'get',
action: '/examples/index.html',
data: { name: 'stuff' },
success: function (xhr) {
console.log(xhr);
},
error: function (xhr) {
console.log(xhr);
}
});Astatine.formData(element)
Parameter
ObjectDOM element
Example
var objectData = Astatine.formData(element);Astatine.serialize(data)
Parameter
ObjectSingle level deep key value pare
Example
var stringData = Astatine.serialize(data);License
Licensed Under MPL 2.0 Copyright 2016 Alexander Elias
