Coder Social home page Coder Social logo

angular-hu's Introduction

Angular HTTP Utils Build Status Coverage Status

Angular $http utilities to deal with common problems when accessing backends

Use cases

You want to...

  • httpu.caches: Save caches to localstorage to allow returning users to read from them; limit the amount of data stored instead of the number of requests; entries to expire after some time; compress the data to allow more request to be cached in the 5MB storage that the browsers are giving; resize your caches with new options for returning visitors.
  • httpu.composite: Your app access several Backends, and have some backend specific interceptors (Authorization, error management...) for each one; You have interceptors that implements some plug&play feature, and belongs to a certain module; You download your templates from your server, and query a different API backend using several interceptors
  • httpu.urlbuilder: You have a backend that doesn't understand the current param serialization from angular, and you have to code the serialized url directly in the url used for the request, losing the power of having it as a plain object.
  • httpu.headers: Know the final URL used for your request (this may be computed by $http before leaving to $httpBackend) to delete cache entries, log them...; Wanna collect statistics information for your backend responses accessed over the worldwide clients; You wanna know if the request you performed hit your $http request cache.
  • httpu.cacherp: You have a backend that need variable request parameters, like oauth1 backends, and wanna cache those requests.
  • httpu.oauth1: You have one or severals backends that need oauth1 signed request, with different configurations.
  • httpu.retry: You have several retry strategies based on some backend specific errors.

Install

You can get it from Bower

## add --save to every command to save to your bower.json
# Install specific module
bower install angular-hu-cacherp
bower install angular-hu-retry
bower install angular-hu-oauth1
bower install angular-hu-headers
bower install angular-hu-caches
bower install angular-hu-composite
bower install angular-hu-urlbuilder

Usage

After installing, HTTP Utils files will be available into a bower_components folder, along with its dependencies.

<script type="text/javascript" src="bower_components/angular/angular.js"></script>
<!-- add your specific module -->
<script type="text/javascript" src="bower_components/angular-hu-cacherp/cacherp.js"></script>
<script type="text/javascript" src="bower_components/angular-hu-retry/retry.js"></script>
<script type="text/javascript" src="bower_components/angular-hu-headers/headers.js"></script>
<script type="text/javascript" src="bower_components/angular-hu-urlbuilder/urlbuilder.js"></script>
<script type="text/javascript" src="bower_components/angular-hu-composite/composite.js"></script>

<!-- oauth1 has an external dependency -->
<script type="text/javascript" src="bower_components/oauth-signature-js/dist/oauth-signature.js"></script>
<script type="text/javascript" src="bower_components/angular-hu-oauth1/oauth1.js"></script>

<!-- caches has an external dependency -->
<script type="text/javascript" src="bower_components/lru-cache/lib/lru-cache.js"></script>
<script type="text/javascript" src="bower_components/angular-hu-caches/caches.js"></script>
<!-- ... -->

Add the specific modules to your dependencies, or add the entire lib by depending on httpu

angular.module('myApp', ['httpu.caches', 'httpu.retry', 'httpu.oauth1', ...]);

Each one is now it's own module and will have a relevant README.md in their respective folders

Development

Single test

npm run test

Continuous testing

Will execute karma and watch the files to run the test on every save

npm run watch

Code coverage

npm run coverage

Coding guidelines

npm run lint

LICENSE

The MIT License (MIT)

Copyright (c) 2015 Telefónica I+D - http://www.tid.es

angular-hu's People

Contributors

jmendiara avatar tsaikd avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.