"use strict";
/** Action Types */
exports.STARS_REQUEST = 'STARS_REQUEST';
exports.STARS_SUCCESS = 'STARS_SUCCESS';
exports.STARS_FAILURE = 'STARS_FAILURE';
/** Initial State */
var initialState = {
isFetching: false,
};
/** Reducer */
function starsReducer(state, action) {
if (state === void 0) { state = initialState; }
switch (action.type) {
case exports.STARS_REQUEST:
return Object.assign({}, state, {
isFetching: true,
});
case exports.STARS_SUCCESS:
return Object.assign({}, state, {
isFetching: false,
count: action.count,
});
case exports.STARS_FAILURE:
return Object.assign({}, state, {
isFetching: false,
error: true,
message: action.message,
});
default:
return state;
}
}
exports.starsReducer = starsReducer;
/** Async Action Creator */
function getStars() {
return function (dispatch) {
dispatch(starsRequest());
return fetch('https://api.github.com/repos/abcd/abcd')
.then(function (res) {
if (res.ok) {
return res.json()
.then(function (res) { return dispatch(starsSuccess(res.stargazers_count)); });
}
else {
return res.json()
.then(function (res) { return dispatch(starsFailure(res)); });
}
})
.catch(function (err) { return dispatch(starsFailure(err)); });
};
}
exports.getStars = getStars;
/** Action Creator */
function starsRequest() {
return {
type: exports.STARS_REQUEST,
};
}
exports.starsRequest = starsRequest;
/** Action Creator */
function starsSuccess(count) {
return {
type: exports.STARS_SUCCESS,
count: count,
};
}
exports.starsSuccess = starsSuccess;
/** Action Creator */
function starsFailure(message) {
return {
type: exports.STARS_FAILURE,
message: message,
};
}
exports.starsFailure = starsFailure;
|