npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

astatine

v1.2.0

Published

Astatine - A Small Ajax and HTML Form Library

Downloads

8

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
  • radio will only appear if it is checked.
  • checkbox will either be true or false.
  • type="submit" will automatically hide. And a spinner will show on submit.
  • .spinner will 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: String Resource action url. Required

  • query: String | Element Query selector or element. Required

  • method: String Valid methods get, post, put, delete. Required

  • reset: Boolean Resets form after submit success. Defaults to true.

  • complete: Function Parameters are the XHR. Required

    • error An xhr object
    • success An xhr object
  • prepare: Function Allows the ability to edit/validate the option.data object before complete/post.

    • data: Object The form data object.
    • resolve: Function Async resolve function requires the data as a parameter.
    • reject: Function Async 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: String Resource action url. Required

  • method: String Valid methods get, post, put, delete. Required

  • success: Function Required

  • error: Function Required

  • data: Object If method is GET than data is concatenated to the action/url as parameters.

  • requestType: String Converts the request data before sending.

    • script 'text/javascript, application/javascript, application/x-javascript'
    • json 'application/json' stringify options.data
    • xml 'application/xml, text/xml'
    • html 'text/html'
    • text 'text/plain'
    • DEFAULT 'application/x-www-form-urlencoded' serialized options.data
  • responseType: String Converts 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: String Short hand to set the Content-Type Headers. (For request)

  • accept: String Short hand to set the Accept Headers. (For response)

  • mimeType: String Overwrites return type.

  • username: String

  • password: String

  • withCredentials: Boolean

  • headers: Object A 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
  • Object DOM element
Example
var objectData = Astatine.formData(element);

Astatine.serialize(data)

Parameter
  • Object Single level deep key value pare
Example
var stringData = Astatine.serialize(data);

License

Licensed Under MPL 2.0 Copyright 2016 Alexander Elias