Skip to content

Instantly share code, notes, and snippets.

View differential-js-loader.md

This is an alternative to the Modern Script Loading tchnique, that doesn't need to wait for the load event.

Compatibility

This technique has been successfully tested down to IE9.

<!DOCTYPE html>
<html lang="en">
<head>
@monochromer
monochromer / index.js
Last active Jul 27, 2020
Walk directory on node.js without recursion
View index.js
const path = require('path')
const fs = require('fs').promises
async function walk(fsPath, callback) {
const node = {
path: fsPath,
stat: await fs.stat(fsPath)
}
const stack = [node]
let item
@monochromer
monochromer / easings.css
Created Jul 24, 2020 — forked from argyleink/easings.css
Handy CSS properties for easing functions
View easings.css
:root {
--ease-in-quad: cubic-bezier(0.55, 0.085, 0.68, 0.53);
--ease-in-cubic: cubic-bezier(0.55, 0.055, 0.675, 0.19);
--ease-in-quart: cubic-bezier(0.895, 0.03, 0.685, 0.22);
--ease-in-quint: cubic-bezier(0.755, 0.05, 0.855, 0.06);
--ease-in-expo: cubic-bezier(0.95, 0.05, 0.795, 0.035);
--ease-in-circ: cubic-bezier(0.6, 0.04, 0.98, 0.335);
--ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94);
--ease-out-cubic: cubic-bezier(0.215, 0.61, 0.355, 1);
--ease-out-quart: cubic-bezier(0.165, 0.84, 0.44, 1);
@monochromer
monochromer / app-example.js
Last active Jul 14, 2020
Веб-сервер на Node.js как итератор, как поток
View app-example.js
const http = require('http');
const { once } = require('events');
class WebServer extends http.Server {
async *[Symbol.asyncIterator]() {
while (this.listening) {
const [ req, res ] = await once(this, 'request');
yield { req, res };
}
}
View concurrent.js
function concurrent(tasks, iteratee, onDone) {
let completed = 0;
function onFinish() {
if (++completed === tasks.length) {
onDone();
}
}
tasks.forEach((task, index) => {
@monochromer
monochromer / html-stream-generator.js
Created Jun 24, 2020
WIP. Потоковая выдача html через генераторы
View html-stream-generator.js
function isGenerator(target) {
return target[Symbol.toStringTag] === 'GeneratorFunction';
}
function isIterable(obj) {
if (obj === null || obj === void 0) {
return false;
}
if (typeof obj === 'string') {
@monochromer
monochromer / notes.md
Last active May 30, 2020
Настройка веб-сервера
View notes.md

Сервер

Проверено на Ubuntu 18.04.4 LTS

Настройка root

Подключаемся

ssh root@IP
@monochromer
monochromer / promise-patterns.js
Last active May 20, 2020
Паттерны использования promise (Promise Patterns)
View promise-patterns.js
/*
conf: Falsy Values 2015
author: Kornel Lesinski
theme: And .then() what? Promise programming patterns
link: https://www.youtube.com/watch?v=KrhQE8K2I7Q
*/
// 1 waterfall. Использование результатов предыдущих промисов
doFirst()
.then(firstResult => {
@monochromer
monochromer / es6-proxy.md
Created Jun 19, 2019
A practical guide to Javascript Proxy (ES6 Proxy)
View es6-proxy.md
You can’t perform that action at this time.