Skip to content

Instantly share code, notes, and snippets.

View AnandChowdhary's full-sized avatar
🚀
Shipping

Anand Chowdhary AnandChowdhary

🚀
Shipping
View GitHub Profile
@ragokan
ragokan / prisma-cache.ts
Created June 7, 2022 21:35
Cache middlweware for prisma
import { Prisma } from "@prisma/client";
import Redis from "ioredis";
const mutationActions = ["create", "update", "delete", "deleteMany", "updateMany"];
const queryActions = ["findUnique", "findMany", "count"];
const allActions = [...mutationActions, ...queryActions];
export function cacheMiddleware(
redis: Redis,
cacheDuration = 100 // 100 seconds

Everything I Know About UI Routing

Definitions

  1. Location - The location of the application. Usually just a URL, but the location can contain multiple pieces of information that can be used by an app
    1. pathname - The "file/directory" portion of the URL, like invoices/123
    2. search - The stuff after ? in a URL like /assignments?showGrades=1.
    3. query - A parsed version of search, usually an object but not a standard browser feature.
    4. hash - The # portion of the URL. This is not available to servers in request.url so its client only. By default it means which part of the page the user should be scrolled to, but developers use it for various things.
    5. state - Object associated with a location. Think of it like a hidden URL query. It's state you want to keep with a specific location, but you don't want it to be visible in the URL.
@audip
audip / block-list.txt
Created July 8, 2019 15:20
superhuman pixel tracking list
! Superhuman "read receipt" tracking pixel
||media.superhumanapp.com/images/_/*://r.superhuman.com/*.gif$image
||r.superhuman.com/*.gif$document
! hunter.io email tracking
!
https://mailtracker.hunter.io/articles/how-does-email-tracking-work||mltrk.io/pixel/*^$document
||media.superhumanapp.com/images/_/*://*.mltrk.io/pixel/*^$image
! SendGrid email tracking
||sendgrid.com/wf/open*^$document
||sendgrid.net/wf/open*^$document
@nickcernis
nickcernis / readme.md
Last active July 21, 2024 03:21
Exclude node_modules and .git from Backblaze backups on Mac

Exclude node_modules and .git from Backblaze backups on Mac

  1. Edit the file at /Library/Backblaze.bzpkg/bzdata/bzexcluderules_editable.xml.
  2. Add these rules inside the bzexclusions tag:
<!-- Exclude node_modules. -->
<excludefname_rule plat="mac" osVers="*"  ruleIsOptional="t" skipFirstCharThenStartsWith="users/" contains_1="/node_modules/" contains_2="*" doesNotContain="*" endsWith="*" hasFileExtension="*" />
<excludefname_rule plat="mac" osVers="*"  ruleIsOptional="t" skipFirstCharThenStartsWith="users/" contains_1="/.git/" contains_2="*" doesNotContain="*" endsWith="*" hasFileExtension="*" />
@Rich-Harris
Rich-Harris / service-workers.md
Last active July 10, 2024 17:04
Stuff I wish I'd known sooner about service workers

Stuff I wish I'd known sooner about service workers

I recently had several days of extremely frustrating experiences with service workers. Here are a few things I've since learned which would have made my life much easier but which isn't particularly obvious from most of the blog posts and videos I've seen.

I'll add to this list over time – suggested additions welcome in the comments or via twitter.com/rich_harris.

Use Canary for development instead of Chrome stable

Chrome 51 has some pretty wild behaviour related to console.log in service workers. Canary doesn't, and it has a load of really good service worker related stuff in devtools.

@chrisjlee
chrisjlee / querySelector.polyfill.js
Created February 12, 2014 17:39
IE document.querySelector() polyfill
if (!document.querySelectorAll) {
document.querySelectorAll = function (selectors) {
var style = document.createElement('style'), elements = [], element;
document.documentElement.firstChild.appendChild(style);
document._qsa = [];
style.styleSheet.cssText = selectors + '{x-qsa:expression(document._qsa && document._qsa.push(this))}';
window.scrollBy(0, 0);
style.parentNode.removeChild(style);
@csanz
csanz / encrypt_decrypt.js
Created August 30, 2011 16:06
Simple String Encryption & Decryption with Node.js
function encrypt(text){
var cipher = crypto.createCipher('aes-256-cbc','d6F3Efeq')
var crypted = cipher.update(text,'utf8','hex')
crypted += cipher.final('hex');
return crypted;
}
function decrypt(text){
var decipher = crypto.createDecipher('aes-256-cbc','d6F3Efeq')
var dec = decipher.update(text,'hex','utf8')