Skip to content

Instantly share code, notes, and snippets.

View stepankuzmin's full-sized avatar
🥡

Stepan Kuzmin stepankuzmin

🥡
View GitHub Profile
@stepankuzmin
stepankuzmin / DiscriminatedUnionOfReturnTypes.d.ts
Last active April 29, 2020 15:48
TypeScript Discriminated Union of ReturnTypes
/* eslint-disable @typescript-eslint/no-explicit-any */
type DiscriminatedUnionOfReturnTypes<T> =
T[keyof T] extends (...args: any[]) => any ? ReturnType<T[keyof T]> : never;

Keybase proof

I hereby claim:

  • I am stepankuzmin on github.
  • I am stepankuzmin (https://keybase.io/stepankuzmin) on keybase.
  • I have a public key ASCWLpkncB3DnGAurt2ByOWZzp4u9bSulAlEeF3A_wBELQo

To claim this, I am signing this object:

brew cask install oracle-jdk
export JAVA_HOME=$(/usr/libexec/java_home)
@stepankuzmin
stepankuzmin / parse-mbox.js
Created December 25, 2020 12:30
Parse Mbox
const fs = require("fs");
const Mbox = require("node-mbox");
const { simpleParser } = require("mailparser");
const mbox = new Mbox("./some.mbox/mbox");
const stream = fs.createWriteStream("./emails.json");
stream.write("[");
mbox.on("message", function (msg) {
@stepankuzmin
stepankuzmin / fixup.sh
Last active April 27, 2021 09:49
Git alias for squashing last N commits into it's parents
git config --global alias.fixup "\!f(){ git reset --soft HEAD~${1} && git commit --amend -C HEAD; };f"
git fixup 1 # squashes last commit into it's parent
@stepankuzmin
stepankuzmin / st_asmvt.sql
Created February 21, 2021 16:40
ST_AsMVT experiments
-- 0 CTE
-- (cost=516210.50..516210.55 rows=1 width=32) (actual time=631.428..631.567 rows=1 loops=1)
-- Planning Time: 1.518 ms
-- JIT:
-- Functions: 11
-- Options: Inlining true, Optimization true, Expressions true, Deforming true
-- Timing: Generation 2.829 ms, Inlining 46.263 ms, Optimization 144.057 ms, Emission 49.466 ms, Total 242.615 ms
-- Execution Time: 644.024 ms
-- TOTAL: 886ms?
explain analyze
@stepankuzmin
stepankuzmin / nginx.conf
Last active October 7, 2021 11:45
traefik docker-compose example
user nginx;
worker_processes auto;
worker_cpu_affinity auto;
pid /run/nginx.pid;
events {
worker_connections 4086;
use epoll;
multi_accept on;
}
@stepankuzmin
stepankuzmin / serve.sh
Created December 14, 2021 12:59
macOS serve folder with HTTPS using mkcert and npx serve
brew install mkcert
mkcert localhost
npx serve -l 1234 --ssl-cert ./localhost.pem --ssl-key ./localhost-key.pem <path>
open https://localhost:1234
console.log('hello')
@stepankuzmin
stepankuzmin / mapbox-flow-remove-types.diff
Last active November 22, 2022 15:55
Nove v18 loader for `mapbox-gl`
diff --git a/index.js b/index.js
index f685aa3..7b7ad81 100644
--- a/index.js
+++ b/index.js
@@ -49,7 +49,7 @@ module.exports = function flowRemoveTypes(source, options) {
allowReturnOutsideFunction: true,
allowSuperOutsideMethod: true,
sourceType: 'module',
- plugins: [ '*', 'jsx', 'flow', 'classProperties', 'importMeta' ],
+ plugins: ['*', 'jsx', 'flow', 'classProperties', 'importMeta', 'importAssertions' ],