gofer-js

0.1.3 • Public • Published

Build Status

gofer-js

go·fer - noun (/ˈɡōfər/) a person who runs errands

Gofer is a JavaScript powerful AJAX tool set for creating and executing

go.get('people').then(result => {
    
    // handle the result
    
}).catch(error => {
    
    // handle the error
    
})

Configuration

go.configure({
    onerror : function(result) {
      
        showError(result.message, result.xhr);
        
    },
    onprogress : function (result) {
        
        if (result instanceof Object) {
            showProgressDialog(result.message);
        } else {
            hideProgressDialog();
        }
        
    },
    timeout : 10000,
    urlPrefix : '/rs'
});
Property Type Description
timeout number the number of milliseconds to wait for a response
urlPrefix string the path prefix. Use to append all requests with a common root path
onerror function global function to call when an error occurs in a request
onprogress function global function to call when a request is executing (called on start and end)

Options

go.get('customers', {
    block : true,
    cache : false,
    content : 'json',
    headers : {
        'Accept-Encoding' : 'utf-8'
    },
    message : 'Getting customers...',
    silent : true,
    type : 'json'
})

Proxies

Gopher includes the ability to create proxies (much like RESTEasy)

let customerProxy = go.createProxy({
    path: '/customers',
    endpoints: {
        getAllCustomers: {},
        getCustomerWithId: {
            path: '/{id}',
            options: {
                cache: true
            }
        },
        saveCustomer: {
            method: 'post'
        }
    }
});
 
// call the proxy method 
 
customerProxy.getCustomerWithId({ id : 102 }).then (result => { /* ... */ });
 
// you can also call the method with just arguments
// they will be added sequentially, as specified in the path
 
customerProxy.getCustomerWithId(102).then(result => { /* ... */ });

Data Mappers

Data mappers provide serializers and deserializers for AJAX data. Mappers comprise of two methods: serialize and deserialize. Included are mappers for JSON, plain text, and XML.

let MyJSONMapper = {
    serialize: function(data) {
        return JSON.stringify(data);
    },
    deserialize: function(data) {
        return (data) ? JSON.parse(data) : null;
    }
};
 
// add the mapper to the registry
 
go.mappers.add('json', MyJSONMapper, [ 'application/json', 'text/json' ]);

Handling the Result

go.get('test').then(result => {
 
    result.xhr // the XMLHttpRequest
    result.data // the result data
 
}).catch(error => {
    
    error.message // the message
    error.xhr // the XMLHttpRequest
    
});

Methods

go.get(url, options)

Performs a GET request on the specified URL

go.post(string url, Object|string|number data, ?Object options)

Performs a POST request

go.put(url, data, options)

Performs a PUT request

go.del(url, options)

Performs a DELETE request

go.head(url, options)

Performs a HEAD request

go.fetch(url)

Fetches a resource relative to the current location

Package Sidebar

Install

npm i gofer-js

Weekly Downloads

3

Version

0.1.3

License

MIT

Last publish

Collaborators

  • anigenero