Skip to content

Instantly share code, notes, and snippets.

@JasonKleban
JasonKleban / LiteEvent.ts
Last active January 26, 2023 06:33
TypeScript LiteEvent Events implementation
interface ILiteEvent<T> {
on(handler: { (data?: T): void }) : void;
off(handler: { (data?: T): void }) : void;
}
class LiteEvent<T> implements ILiteEvent<T> {
private handlers: { (data?: T): void; }[] = [];
public on(handler: { (data?: T): void }) : void {
this.handlers.push(handler);
@JasonKleban
JasonKleban / UnpackStrings.sql
Last active January 26, 2017 20:25
Deserialize a table of string values
CREATE FUNCTION [dbo].[UnpackStrings]
(
@original NVARCHAR(MAX)
,@delimiter NCHAR(1)
,@zed NCHAR(1)
,@escape NCHAR(1)
)
RETURNS
@Unpacked TABLE
(
@JasonKleban
JasonKleban / PackStrings.sql
Last active January 26, 2017 20:24
Serialize a table of string values
/*
CREATE TYPE [dbo].[StringArray] AS TABLE (
ElementNumber INT IDENTITY(1,1)
,[Element] NVARCHAR(MAX)
)
*/
CREATE FUNCTION [dbo].[PackStrings]
(
@JasonKleban
JasonKleban / Pack tests.sql
Created January 26, 2017 20:02
Pack tests
SELECT * FROM [dbo].[UnpackStrings]('|~0123|0|ABC||~0000|DEF|0', '|', '0', '~')
SELECT * FROM [dbo].[UnpackStrings]('0|', '|', '0', '~')
DECLARE @Test dbo.StringArray
PRINT '::' + [dbo].[PackStrings](@Test, '|', '0', '~') + '::'
INSERT INTO @Test (Element)
@JasonKleban
JasonKleban / PackUtil.cs
Last active January 26, 2017 20:40
Pack/Unpack in C# - string array serialization compatible with the t-sql implementations
static class PackUtil
{
public static string Pack(string[] original)
{
return Pack(original, '|', '0', '~');
}
public static string[] Unpack(string original)
{
return Unpack(original, '|', '0', '~');
@JasonKleban
JasonKleban / Lens.ts
Created June 5, 2017 18:16
Typescript Functional Lens
interface MyStructure {
a: boolean;
b: number;
c: string;
d: {
e: boolean;
f: number;
g: string[];
}
}
@JasonKleban
JasonKleban / blocks.js
Created August 11, 2017 23:40
solves a blocks puzzle
window.addEventListener('load', function(e) {
var pieces = [
[ 28, 6 ],
[ 28, 14 ],
[ 21, 18 ],
[ 10, 7 ],
[ 32, 11 ],
[ 14, 4 ],
[ 28, 7 ],
[ 21, 14 ],
@JasonKleban
JasonKleban / convertToTs.ps1
Last active August 27, 2017 13:05
Notes on converting js project to ts
dir -Recurse -Filter "*.js" -Exclude ".git" | rename-item -NewName {$_.name -replace "\.js",".ts"}
Get-ChildItem -r C:\Repos\... |
Select-String -Pattern '^\s*import\s+((?:[^\s{]+)|(?:\*\sas\s[^\s]+))\s+from\s+[''"](\.[^''"]*)[''"];?\s*$' -AllMatches |
Foreach-Object { "import $($_.Matches.Groups[1].Value) from '$([System.IO.Path]::GetFullPath([System.IO.Path]::Combine([System.IO.Path]::GetDirectoryName($_.Path), $_.Matches.Groups[2].Value.replace("/", "\"))))'" }
Get-Unique
git remote get-url origin
git remote set-url origin https://...