Skip to content

Instantly share code, notes, and snippets.

View SanariSan's full-sized avatar
😯
1 2 Fizz 4 Buzz

SanariSan

😯
1 2 Fizz 4 Buzz
  • Georgia, Tbilisi
View GitHub Profile
@SanariSan
SanariSan / arr-to-entries.js
Created April 10, 2025 09:02
Flat array to entries (pairs of key-val)
const arr = [1, 2, 3, 4, 5, 6]; // -> [[1,2],[3,4],[5,6]]
arr.reduce((acc, cur, i) => {
const pos = ~~(i / 2);
acc[pos] = acc[pos] ?? [];
if (i % 2 === 0) acc[pos].push(cur);
else acc[pos].unshift(cur);
return acc;
@SanariSan
SanariSan / git-batch-push.sh
Created March 31, 2025 15:43 — forked from spenserhale/git-batch-push.sh
When your repo exceeds upload limit (GitHub 2GB), you can push in batches so you can store up to total size limit. (100GB) (Warning uses force push, ideally should be used for setting up new remote, once)
# Adjust the following variables as necessary
REMOTE=origin
BRANCH=$(git rev-parse --abbrev-ref HEAD)
BATCH_SIZE=250
# check if the branch exists on the remote
if git show-ref --quiet --verify refs/remotes/$REMOTE/$BRANCH; then
# if so, only push the commits that are not on the remote already
range=$REMOTE/$BRANCH..HEAD
else
@SanariSan
SanariSan / sol_is_freezable.js
Created February 12, 2025 18:15
Is sol token freezable, chatgpt
const { Connection, PublicKey } = require('@solana/web3.js');
const { getMint } = require('@solana/spl-token');
async function checkTokenFreezable(tokenAddress) {
// Connect to Solana mainnet
const connection = new Connection('https://api.mainnet-beta.solana.com');
try {
// Create PublicKey from the token address
const mintPubkey = new PublicKey(tokenAddress);
@SanariSan
SanariSan / prettify-ts-type.md
Created November 26, 2024 17:48
Prettify, show full nested ts type

tsconfig.json This prevents typehints for big types from showing ... N more ...

{
  "compilerOptions": {
    "noErrorTruncation": true,
  }
}
@SanariSan
SanariSan / favicon-optimize.md
Created September 24, 2024 22:30
Favicon optimization

imagick cli

convert favicon.ico -define icon:auto-resize=64,48,32,16 compressed_favicon.ico

Demo:

Spoiler warning

Spoiler text. Note that it's important to have a space after the summary tag. You should be able to write any markdown you want inside the <details> tag... just make sure you close <details> afterward.

console.log("I'm a code block!");
@SanariSan
SanariSan / keys.txt
Created September 10, 2024 14:38 — forked from f0r34chb3t4/keys.txt
Proxifier.txt
Portable Version KEYS:
P6Z3T-UYJC9-YAK3F-APN9M-6ZDSD
FGZPK-93CWX-Q33Y6-D5URV-YXC3X
9CZQX-9YAQA-PF33L-XVUQH-NSD48
8RZ3L-H3Y5L-W2RY5-Z5M8N-C7Z2U
CCZNU-LW3LF-K9V2T-MYZFF-94667
EWZM6-3W4UX-KH922-C96GK-VGBH2
Standard Version KEYS:
4AZNW-S2YHE-LLMWM-J6EL8-7QKDL
@SanariSan
SanariSan / clear-old-snaps.sh
Created May 15, 2024 13:38
Clear old snaps
#!/bin/bash
# Removes old revisions of snaps
# CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu
LANG=C snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
snap remove "$snapname" --revision="$revision"
done
@SanariSan
SanariSan / make_writable.js
Created May 4, 2024 00:10 — forked from moehlone/make_writable.js
Make JavaScript readonly propertys writable (example for overwriting navigator.userAgent; useful for unit tests -> browser detection)
/**
* Creates a read/writable property which returns a function set for write/set (assignment)
* and read/get access on a variable
*
* @param {Any} value initial value of the property
*/
function createProperty(value) {
var _value = value;
/**
@SanariSan
SanariSan / extract-js-source.js
Last active April 20, 2024 12:31
Extract source from JS sourcemap
/**
* If you have a website source bundled with webpack and are lucky to have a sourcemap nearby,
* then you are able to fully reconstruct original code + folders structure.
* Place this file at the root of project.
* Provide the path to sourcemap + the path to where you'd like to extract original codebase.
*/
const fs = require('fs');
const path = require('path');
const sourceMap = require('source-map');