Skip to content

Instantly share code, notes, and snippets.

@Kirill89
Kirill89 / prototype-pollution-merge-check.js
Last active June 27, 2023 15:32
prototype pollution check
// https://github.com/Kirill89/prototype-pollution-explained
const mergeFn = require('lodash').defaultsDeep;
const payloads = [
'{"constructor": {"prototype": {"a0": true}}}',
'{"__proto__": {"a1": true}}',
];
function check() {
for (const p of payloads) {
mergeFn({}, JSON.parse(p), {});
@Kirill89
Kirill89 / readFileSync_vs_readFile.js
Last active March 23, 2019 00:10
readFileSync vs readFile benchmark
const fs = require('fs');
const util = require('util');
const readFile = util.promisify(fs.readFile);
fs.writeFileSync('a', 'a');
const attempts = 100000;
function runInCallback(left, cb) {
@Kirill89
Kirill89 / .sh
Last active March 19, 2019 11:41
edit64 - base64 editor. Usage: copy base64 encoded text -> run edit64 in your terminal -> paste updated base64 string
# put it into your ~/.zshrc
edit64()
{
DECODED=$(pbpaste | base64 --decode)
TMP=$(mktemp)
echo "Temporary file: $TMP"
echo "$DECODED" > "$TMP"
vi "$TMP"
UPDATED=$(cat ${TMP})
@Kirill89
Kirill89 / jsts.sh
Last active January 3, 2019 20:50
Convert JavaScript to TypeScript
#!/usr/bin/env bash
if ! [[ -x "$(command -v lebab)" ]]; then
echo 'Error: lebab is not installed.' >&2
echo 'Please run: npm install -g lebab tslint' >&2
exit 1
fi
if ! [[ -x "$(command -v tslint)" ]]; then
echo 'Error: tslint is not installed.' >&2
@Kirill89
Kirill89 / e.js
Last active March 24, 2020 22:33
Custom error in JS
class GoodError extends Error {
constructor(...args) {
super(...args);
this.name = 'GoodError';
Error.captureStackTrace(this, GoodError);
}
}
@Kirill89
Kirill89 / client.js
Created August 13, 2018 06:55 — forked from steinwaywhw/client.js
A minimal term.js server/client demo. To be used with node.js
var client = {};
client.run = function (options) {
options = options || {};
var socket = io.connect(options.remote || "http://localhost:8080");
socket.on('connect', function() {
var term = new Terminal({
@Kirill89
Kirill89 / get_ip.js
Created July 26, 2018 07:45
nodejs get local IP address
const os = require('os');
function getLocalIP() {
for (const ifaces of Object.values(os.networkInterfaces())) {
for (const iface of ifaces) {
if (iface.family === 'IPv4' && iface.internal === false) {
return iface.address;
}
}
}
--log_gc (Log heap samples on garbage collection for the hp2ps tool.)
type: bool default: false
--expose_gc (expose gc extension)
type: bool default: false
--max_new_space_size (max size of the new generation (in kBytes))
type: int default: 0
--max_old_space_size (max size of the old generation (in Mbytes))
type: int default: 0
--max_executable_size (max size of executable memory (in Mbytes))
type: int default: 0
@Kirill89
Kirill89 / realm.sh
Last active May 2, 2020 10:40
This is a script to easily download realm database file from device and open it in realm browser app.
#!/bin/sh
PACKAGE_NAME="com.trax.retailexecution"
DB_NAME="$1"
OUT_DIR="$HOME/RealmDatabases"
# Check args
if [ -z "$DB_NAME" ]
then
echo "usage ./realm.sh database_name"