Skip to content

Instantly share code, notes, and snippets.

View fakiolinho's full-sized avatar
🤘
Leading as usual...

Fakiolas Marios fakiolinho

🤘
Leading as usual...
View GitHub Profile
@fakiolinho
fakiolinho / server.js
Last active May 8, 2020 23:23
Proxy an xhr request by using sapper, polka and http-proxy-middleware
import sirv from 'sirv';
import polka from 'polka';
import compression from 'compression';
import { createProxyMiddleware } from 'http-proxy-middleware';
import * as sapper from '@sapper/server';
const { PORT, NODE_ENV } = process.env;
const dev = NODE_ENV === 'development';
const server = polka();
export default file => {
const fileReader = new FileReader();
return new Promise((resolve, reject) => {
fileReader.onerror = () => {
fileReader.abort();
reject(new Error('Problem parsing file'));
};
fileReader.onload = () => {
import fileSaver from 'utils/fileSaver';
import fileReader from 'utils/fileReader';
import { downloadFileRequest } from './api';
import * as types from './actionTypes';
export const downloadFile = id => async dispatch => {
try {
dispatch({
type: types.DOWNLOAD_FILE_REQUEST,
});
import FileSaver from 'file-saver';
export default (fileData, fileName) => FileSaver.saveAs(fileData, fileName);
import fileSaver from 'utils/fileSaver';
import { downloadFileRequest } from './api';
import * as types from './actionTypes';
export const downloadFile = id => async dispatch => {
try {
dispatch({
type: types.DOWNLOAD_FILE_REQUEST,
});
@fakiolinho
fakiolinho / api.js
Last active November 11, 2019 13:33
import request from 'utils/request';
export const downloadFileRequest = id =>
request.get(`/files/${id}`, {
responseType: 'blob',
timeout: 30000,
});
import { uploadFileRequest } from './api';
import * as types from './actionTypes';
export const uploadFile = data => async dispatch => {
try {
dispatch({
type: types.UPLOAD_FILE_REQUEST,
});
await uploadFileRequest(data);
import axios from 'axios';
export default axios.create({
baseURL: 'https://myDomain.com/api/',
timeout: 10000,
});
import request from 'utils/request';
export const uploadFileRequest = ({ file }) => {
const data = new FormData();
data.append('file', file, file.name);
return request.post(`/files`, data, {
headers: {
'Content-Type': `multipart/form-data; boundary=${data._boundary}`,
},
import React from 'react';
const renderItemsText = items => (
items.length > 0 ? <p>Print sth since we have some items in our list</p> : null
);
export default ({ items }) => (
<div>
{renderItemsText(items)}
</div>