syanflower
v0.1.3
Published
powerful request for browser.
Downloads
2
Readme
Syanflower
Powerful request for browser.
Features
- All features from axios
- All features from localforage
- Auto cache request
- Abstract request method
Installing
- Using npm:
npm install syanflower --save
- Using yarn:
yarn add syanflower
- Using CDN:
<script src="https://unpkg.com/syanflower/dist/syanflower.min.js"></script>
Example
Performing a common request
// GET
var getProxy = SF.createGetXHR('./');
var getRequest = getProxy('data.json');
getRequest({key: 10}).then(function(response) {
console.log(response.data);
});
// POST
var postProxy = SF.createPostXHR('./');
var postRequest = postProxy('data.json');
postRequest({key: 10}).then(function(response) {
console.log(response.data);
});
Performing a cache request
// GET
var getProxy = SF.createGetXHR('./');
var getRequest = SF.createCacheXHR('data', getProxy('data.json'));
getRequest({key: 10}).then(function(response) {
console.log(response.data);
});
// POST
var postProxy = SF.createPostXHR('./');
var postRequest = SF.createCacheXHR('data', postProxy('data.json'));
postRequest({key: 10}).then(function(response) {
console.log(response.data);
});
API
Interceptor
cacheRequestInterceptor(response)
cacheResponseInterceptor(response)
timeoutInterceptor(response)
interceptorPipe(...interceptors)
Creator & Factory: all options will be merged, outer is prior
createGetXHR(baseURL, globalOptions, interceptors)
createGetXHRFactory(options)
createPostXHR(baseURL, globalOptions, interceptors)
createPostXHRFactory(options)
createCacheXHR(cacheKey, request)
, data stored in Map<cacheKey, response> format
Transformer
transformToFD(data)
transformToString(data)
transformToUSP(data)
transformPipe(...transformers)
Mocker
createMockAPI(data, delay, failPercent, cache)
createCacheMockAPI(data, delay, failPercent)
Config
Database: using SF.DB.config(...)
, details in localforage
SF.DB.config({name: 'app', storeName: 'store', driver: SF.DBDriver.LOCALSTORAGE});
Request: just like config axios with request-creator
var options = {};
var interceptors = {
reponse: SF.interceptorPipe(SF.timeoutInterceptor, SF.cacheResponseInterceptor),
};
var getProxy = SF.createGetXHR('./', options, interceptors);
Self:
SF.use({
cacheKey: 'syanflower', // use for searching flag key in request config, keep it is ok
expire: 24 * 60 * 60 * 1000, // cache expire in milliseconds unit
withCredentials: true, // mixed into request headers, you can change it in request-creator or request
});
Building
- Clone:
git clone https://gitee.com/neuro-link/syanflower.git
- Install dependencies:
npm install
oryarn install
- Customize configuration: update
buildConfig.format
in package.json, details in rollup - Build:
npm run build
oryarn build