Skip to content

Instantly share code, notes, and snippets.

View phryneas's full-sized avatar
🫖
418 I'm a teapot.

Lenz Weber-Tronic phryneas

🫖
418 I'm a teapot.
View GitHub Profile
{ config, pkgs, ... }:
{
imports =
[
./hardware-configuration.nix
# use zfs from current master instead of nixos bundled versoin
./zfs-master.nix
];
{ stdenv, vscode-utils, autoPatchelfHook,
/*icu, curl, lttng-ust,*/ libX11, gnome3,
utillinux, openssl, icu, zlib, curl, lttng-ust, libsecret, libkrb5,
gcc, libunwind, binutils
}:
let
runtimeVersion = "2.1.1";
runtimeHash = "6985b9f6844d51ba1197c3f52aabc7291bb15bc1";
runtime = fetchTarball {
url = "https://download.microsoft.com/download/9/3/E/93ED35C8-57B9-4D50-AE32-0330111B38E8/dotnet-runtime-${runtimeVersion}-linux-x64.tar.gz";
{ stdenv, runCommand, electron, callPackage,
bash, python, jq, nodejs-8_x, node? nodejs-8_x, neovim, ripgrep, xorg,
...}:
let
yarn2nix = callPackage ( builtins.fetchTarball {
url = "https://github.com/phryneas/yarn2nix/archive/8a6b9dcf7cef8840eb7bc64d7639bad566af2e9d.tar.gz " ;
sha256 = "0ih11vcd9ad5y13877bxz7ijsykhqwdfwmvwhic3xlgcdhxji80v";
}) {};
version = "v0.3.6";
oniSrc = builtins.fetchTarball {
@phryneas
phryneas / doczrc.js
Created March 4, 2019 14:55
Docz-Mdx-Check-Typescript
import { resolve } from 'path';
export default {
modifyBundlerConfig: config => {
const orig = config.module.rules[2];
const origUse = orig.use;
orig.use = [
origUse[0],
{
@phryneas
phryneas / index.d.ts
Created September 12, 2019 06:34
buggy types rollup
/// <reference types="react" />
import { ComponentClass } from 'react';
import * as CSS from 'csstype';
import * as PropTypes from 'prop-types';
import React from 'react';
declare interface AbstractAction {
type: string;
meta: {
counter: number;
@phryneas
phryneas / default.nix
Created December 12, 2018 11:36 — forked from ottidmes/default.nix
VS Code Live Share extension
# Baseed on previous attempts of others: https://github.com/NixOS/nixpkgs/issues/41189
{ lib, vscode-utils, autoPatchelfHook, bash, file, makeWrapper, dotnet-sdk
, curl, gcc, icu, libkrb5, libsecret, libunwind, libX11, lttng-ust, openssl, utillinux, zlib
, enableDiagnosticsWorkaround ? false, gccStdenv
}:
with lib;
let
# https://docs.microsoft.com/en-us/visualstudio/liveshare/reference/linux#install-prerequisites-manually
@phryneas
phryneas / Retag-RTK-Tutorials.sh
Created February 7, 2020 17:40
Retag RTK Tutorials
#!/usr/bin/env bash
#remove all git tags
git tag | xargs git tag -d
#re-apply all git tags with commit name => tag name
git log --pretty=%s---%H | sed -re 's/[^a-zA-Z0-9-]/_/g;s/---/ /' | xargs -n2 git tag
git tag --format="%(objectname) => %(refname)"
@phryneas
phryneas / index.md
Last active April 24, 2020 16:11
api-documenter test

Home

API Reference

Packages

Package Description
@phryneas
phryneas / home-manager-module.nix
Last active June 14, 2020 09:02
vscode-liveshare-home-manager-nixos
{pkgs, lib, config, ...}:
with lib;
let
liveshareGist = builtins.fetchTarball {
url = "https://gist.github.com/phryneas/698996d24748d3ce7f61ef818949a28e/archive/3dbf12cd282ebcb6cacf40d466e4a519d4ce1dfe.tar.gz";
sha256 = "0mas9rnr6hn7yiivjs5xvnprhrqwac47nqfxh3vgmm67v982v83l";
};
livesharePkg = pkgs.callPackage liveshareGist {};
cfg = config.services.vsliveshare;
pkg = livesharePkg.override { enableDiagnosticsWorkaround = cfg.enableDiagnosticsWorkaround; };

Do not create union types with Redux Action Types. It's most likely an antipattern.

So, there is a long-standing TypeScript & Redux pattern of creating a union RootAction type that contains all your application's action types. Sometimes, you would also create a lot of reducer-specific sub-unions. I think that this has always been a crutch - and given the options we have today, it's most likely an antipattern. So let's look at why it was used, where it was used and what you can use instead.

Why was it used? A look at typed Reducers.

Classically, these action union types were created to use the Discriminating Union pattern.