Skip to content

Instantly share code, notes, and snippets.

#!/usr/bin/env bash
set -euo pipefail
# List all starred archived GitHub repositories, then optionally unstar them.
echo "Fetching starred repositories..."
archived_repos=()
page=1
@unrevised6419
unrevised6419 / main.js
Created November 25, 2025 00:24
youtube queue total time
[...$0.children]
.map(el => el.querySelector('.thumbnail-overlay-badge-shape.ytd-thumbnail-overlay-time-status-renderer').textContent)
.map(time => time.split(':').reverse())
.map(([s = '0' , m = '0', h = '0']) => Number(s) + (Number(m) * 60) + (Number(h) * 3600))
.reduce((a, c) => a + c, 0)/3600
@unrevised6419
unrevised6419 / youtube-transcript.js
Last active June 21, 2025 11:41
youtube transcript
javascript: (() => {
/* First open YT Transcript Panel, then copy paste this snippet into the console */
let linesEl = [...document.querySelector('#segments-container').children];
let linesTextIrregular = linesEl.map(el => el.textContent.trim());
let linesText = linesTextIrregular.map(l => l.split('\n').map(s => s.trim()).filter(Boolean).join(' '));
let paragraph = linesText.join('\n');
copy(paragraph);
})();
@unrevised6419
unrevised6419 / README.md
Last active November 11, 2025 12:10
Support `exactOptionalPropertyTypes` compiler flag in TypeScript

Note

This is a generic issue template to raise awareness about exactOptionalPropertyTypes support across TypeScript libraries.

Summary

This package's types are not fully compatible with TypeScript's exactOptionalPropertyTypes compiler flag (tsconfig.json).

Problem

With exactOptionalPropertyTypes: true, optional properties behave differently — they can’t be assigned undefined unless it's explicitly part of the type. Currently, this library's types treat optional properties as implicitly allowing undefined, which causes type errors in strict setups.

@unrevised6419
unrevised6419 / InlineSvg.vue
Last active January 25, 2025 11:19
Vue InlineSvg Implementation
<template>
<component :is="vnode" />
</template>
<script setup lang="ts">
import {
h,
onServerPrefetch,
shallowRef,
watch,
@unrevised6419
unrevised6419 / main.ts
Created January 16, 2025 09:00
FormData
declare global {
interface FormDataEnhanced<FormName extends string> {
get(name: FormName): FormDataEntryValue | null;
}
var FormDataEnhanced: {
prototype: FormDataEnhanced<string>;
new<FormName extends string>(form?: HTMLFormElement, submitter?: HTMLElement | null): FormDataEnhanced<FormName>;
};
}
@unrevised6419
unrevised6419 / useStartTransition.tsx
Last active December 6, 2024 19:39
React startTransition wrapper
"use client";
import { startTransition, type TransitionFunction } from "react";
function useStartTransition<Args extends unknown[]>(
cb: (...args: Args) => ReturnType<TransitionFunction>,
) {
return (...args: Args) => startTransition(() => cb(...args));
}
  • npm init
  • git ignore
  • ni ts
  • add tsconfig.json, tsconfig.1.json, tsconfig2.json (+ schema)
  • add file.ts, file1.ts, file2.ts with params example
  • run from terminal, show IDE
  • add TS Config no property index
  • run from terminal, show IDE
  • Fix
  • run from terminal, show IDE
@unrevised6419
unrevised6419 / portal-provider.ts
Created November 19, 2024 11:49
Vue Portal Provider that nests/recurse
import {
inject,
provide,
type InjectionKey,
type SlotsType,
type ComputedRef,
computed,
toRef,
defineComponent,
} from 'vue';
const cacheControlDirective = new GraphQLDirective({
name: 'cacheControl',
locations: [
DirectiveLocation.FIELD_DEFINITION,
DirectiveLocation.OBJECT,
DirectiveLocation.INTERFACE,
DirectiveLocation.UNION,
],
args: {
maxAge: {