Skip to content

Instantly share code, notes, and snippets.

import { Readable } from 'stream';
import ReadableStreamIterable from './ReadableStreamIterable';
describe('ReadableStreamIterable', () => {
it('consumes pre-pushed items', async () => {
const r = new Readable({ objectMode: true });
const i = new ReadableStreamIterable(r);
r.push(1);
r.push(2);
@ksm2
ksm2 / configParser.ts
Last active July 18, 2019 21:06
Config Parser for Node.js
import Yaml from 'js-yaml'
import 'reflect-metadata'
export interface SettingOptions {
nullable?: boolean
}
export const Setting = ({ nullable = false }: SettingOptions = {}): PropertyDecorator => (target, propertyKey) => {
let properties: string[] = Reflect.getMetadata('config:settings', target)
if (!properties) {
function* map<T, S>(iterable: Iterable<T>, callback: (param: T) => S): IterableIterator<S> {
for (const item of iterable) {
yield callback(item);
}
}
function* flatMap<T, S>(iterable: Iterable<T>, callback: (param: T) => Iterable<S>): IterableIterator<S> {
for (const item of iterable) {
yield* callback(item);
}
@ksm2
ksm2 / keybase.md
Created October 29, 2018 12:51
keybase.md

Keybase proof

I hereby claim:

  • I am ksm2 on github.
  • I am ksm2 (https://keybase.io/ksm2) on keybase.
  • I have a public key whose fingerprint is 5CB8 0A5A 54A3 3763 182B B456 FDB4 F33D 8EAC 6D33

To claim this, I am signing this object:

@ksm2
ksm2 / Uint8ArrayToLinesOfTextTransformer.ts
Created April 25, 2018 13:29
WHATWG Transform Streams
class Uint8ArrayToLinesOfTextTransformer implements Transformer<Uint8Array, string> {
private readonly decoder: TextDecoder
private lastString: string
constructor() {
this.decoder = new TextDecoder()
this.lastString = ''
}
transform(chunk: Uint8Array, controller: TransformStreamDefaultController<string>): void {
@ksm2
ksm2 / streams-test.html
Last active October 23, 2017 23:09
Testing support of Streams API
<script>
var setResult = setResult || function setResult(tag, bool) {
console.log(tag + ' supported? ' + (bool ? 'yes' : 'no'));
};
// Basic support
try {
var result0 = true;
// Test exposed globals
#!/bin/bash
FILE=$1
PAGES=$(pdfinfo ${FILE} | grep 'Pages:' | sed 's/Pages:\s*//')
GRAYPAGES=""
COLORPAGES=""
EMPTYPAGES=""
echo -e "\e[1mPages:\e[0m $PAGES"
@ksm2
ksm2 / favicon.sh
Created February 10, 2015 21:53
Favicon CLI
#!/bin/sh
convert "$1" \
-channel rgba \
-alpha on \
-define icon:auto-resize=64,48,32,16 \
favicon.ico
@ksm2
ksm2 / MoellersMathe.sty
Created November 15, 2013 11:31
A small package for math and computer science students doing their homework :)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% %%
%% MÖLLERS' MATHE PACKAGE FOR LATEX %%
%% %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ProvidesPackage{MoellersMathe}
%%----------------------------------------------------------------------------------------
%% Requirements
%%----------------------------------------------------------------------------------------