Skip to content

Instantly share code, notes, and snippets.

View Alexzanderk's full-sized avatar
:octocat:

Alexander Kotsarev Alexzanderk

:octocat:
View GitHub Profile
@Alexzanderk
Alexzanderk / metrics.js
Last active March 22, 2020 06:16
read dir files calculate, write into one file res
// Log incoming traffic
var metricStore = new Map();
/**
*
* @param {string} key
* @returns {void}
*/
const getCount = (key) => metricStore.has(key) ? metricStore.get(key) + 1 : 1;
@Alexzanderk
Alexzanderk / ES6-Setup with nodemon.md
Last active February 19, 2020 07:13 — forked from rahman541/ES6-Setup.md
ES6 Setup with nodemon

ES6 Setup

npm init -y
npm i --save-dev nodemon
npm add babel-preset-env babel-cli

Create a .babelrc config in your project root. Insert the following

{
 "presets": ["env"]
@Alexzanderk
Alexzanderk / compose.js
Last active December 4, 2019 09:57
Compose + pipe
const compose = (...functions) => args => functions.reduceRight((arg, fn) => fn(arg), args);
@Alexzanderk
Alexzanderk / parallel
Created November 28, 2019 09:40
Parralel request
const asyncRunAll = (arrOfFunc, numberOfWorkers) => {
return new Promise((resolve, reject) => {
if (!("length" in arrOfFunc) || arrOfFunc.length <= 0) return resolve([]);
numberOfWorkers = Math.min(
numberOfWorkers || arrOfFunc.length,
arrOfFunc.length
);
let stop = false;
let freeWorkers = numberOfWorkers;
let counter = 0;
@Alexzanderk
Alexzanderk / emit.js
Created November 28, 2019 09:39 — forked from aheckmann/emit.js
mongoose update,new,remove events
var mongoose = require('mongoose');
mongoose.connect('localhost', 'testing_emitUpdate');
var Schema = mongoose.Schema;
var schema = new Schema({
name: String
});
// plumbing
schema.pre('save', function (next) {
@Alexzanderk
Alexzanderk / UploadFileComponent.tsx
Created September 24, 2019 12:05 — forked from vdelacou/UploadFileComponent.tsx
React / Typescript / Material UI / Upload file / Custom Button / Async /
// import .....
const inputUploadFile: CSSProperties = {
display: 'none',
};
const buttonUploadFile: CSSProperties = {
margin: 8,
};
const providerContent = await content.reduce((promises, item) => {
const { html, type, url } = item;
return promises.then(responses => {
if (type === 'inlineText') {
return new Promise(resolve => resolve(responses.concat([item])));
}
return providerService.getProviderResponse({ url, provider: type })
.then(response => {
return new Promise(resolve => {
console.log({url})
function requestAllWithDelay (urls, delay) {
return urls.reduce((promise, url) => {
return promise
.then((responses) => {
return fetch(url) // Or whatever request library you're using. If it doesn't support promises, you can wrap it in `new Promise((resolve, reject) => someLib(url, { onSuccess: resolve, onError: reject }));` or something similar.
.then(response => {
return new Promise(resolve => {
setTimeout(resolve, delay, responses.concat(response)); // replies.concat might not work, depending on how you want to accumulate all the data. Maybe you don't even care about the responses?
})
})
@Alexzanderk
Alexzanderk / array.js
Last active September 14, 2018 17:53
одномерный массив в двухмерный и более
function toMatrix(arr, rowSize) {
var store = [];
for (var i = 0; i < arr.length; i += rowSize) {
store.push(data.slice(i, i + rowSize)); /*?*/
}
return store;
}
toMatrix([1, 2, 3, 4, 5, 6, 7, 8, 9], 2);
@Alexzanderk
Alexzanderk / eslint.json
Last active August 19, 2018 12:25 — forked from BilalBudhani/eslint.json
Wesbos' eslint + prettier config
{
"extends": [
"airbnb",
"prettier",
"prettier/react"
],
"parser": "babel-eslint",
"parserOptions": {
"ecmaVersion": 8,
"ecmaFeatures": {