Skip to content

Instantly share code, notes, and snippets.

View TorbjornHoltmon's full-sized avatar
🐻

Torbjørn Holtmon TorbjornHoltmon

🐻
View GitHub Profile
@TorbjornHoltmon
TorbjornHoltmon / predicate.ts
Created February 11, 2022 12:25
Type predicates
export function assertIAsset<T>(item: IAsset | IReference): item is IAsset {
return item.type === "typenavn her";
}
@TorbjornHoltmon
TorbjornHoltmon / export-demo.ts
Last active April 26, 2022 06:35
export default
// Export everything from this file
export * from "C:/Prosjekter/DEMO2/packages/shared/src/index";
// Export the default export from this file
export { default } from "C:/Prosjekter/DEMO2/packages/shared/src/index";
// Export the default export from this file as a named export
export { default as Named } from "C:/Prosjekter/DEMO2/packages/shared/src/index";
@TorbjornHoltmon
TorbjornHoltmon / ForEachKeyValue.ts
Last active June 29, 2022 08:48
for each key value loop
const testObject = { a: 1, b: 2, c: 3, d: 4, e: 5 };
// Object.entries({}) lets you loop through the properties of the object with access to the key and value of each entry
for (const [key, value] of Object.entries(testObject)) {
console.log(key, value); // a, 1. b, 2... etc...
}
const customArray = [
{ key: "a", value: 1 },
{ key: "a", value: 1 },
@TorbjornHoltmon
TorbjornHoltmon / awaitableTimout.ts
Last active September 1, 2022 13:47
Awaitable timeout
async function voidWait(timeToDelay: number): Promise<void> {
return new Promise((resolve) => setTimeout(resolve, timeToDelay));
}
async function returnWait<T>(timeToDelay: number, returnValue: T): Promise<T> {
return new Promise((resolve) => setTimeout(() => resolve(returnValue), timeToDelay));
}
let startTime = Date.now();
const prestand = () => {
const result = Date.now() - startTime;
startTime = Date.now();
return `${result} ms`;
};
let startTime = performance.now();
const prestand2 = () => {
const result = performance.now() - startTime;
@TorbjornHoltmon
TorbjornHoltmon / PartialBy.ts
Last active January 13, 2023 13:13
PartialBy, make properties in typescript type optional
/**
* Construct a type with the properties of T and make the properties K optional.
*/
type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
// Example:
type Person = {
name: string;
age: number;
gender: "male" | "female";
@TorbjornHoltmon
TorbjornHoltmon / json.ts
Created January 13, 2023 13:11
JSON type
type JsonPrimitives = string | number | boolean | String | Number | Boolean | null;
type NonJsonPrimitives = undefined | Function | symbol;
type SerializeType<T> = T extends JsonPrimitives
? T
: T extends NonJsonPrimitives
? never
: T extends { toJSON(): infer U }
? U
: T extends []
@TorbjornHoltmon
TorbjornHoltmon / parse-url.js
Last active January 27, 2023 14:50
Quickly parse url in console
const urlToTest = new URL("AddUrl");
let query = {};
for ([key, value] of urlToTest.searchParams) {
query[key] = value;
}
console.log({
host: urlToTest.host,
query: query,
path: urlToTest.pathname,
@TorbjornHoltmon
TorbjornHoltmon / pretty.ts
Created February 22, 2023 09:14
pretty type
type Prettify<T> = {
[K in keyof T]: T[K];
} & {};
@TorbjornHoltmon
TorbjornHoltmon / Wow.tsx
Last active February 22, 2023 09:14
vue jsx test
import { defineComponent, ref, watch } from "vue";
const Wow = defineComponent({
props: {
limit: {
type: Number,
required: false,
default: 12,
},
},