0.1.3 • Published 7 years ago

gofer-js v0.1.3

Weekly downloads
1
License
MIT
Repository
github
Last release
7 years ago

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'
});
PropertyTypeDescription
timeoutnumberthe number of milliseconds to wait for a response
urlPrefixstringthe path prefix. Use to append all requests with a common root path
onerrorfunctionglobal function to call when an error occurs in a request
onprogressfunctionglobal 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