Skip to content

Instantly share code, notes, and snippets.

View Linrstudio's full-sized avatar
🌴
On vacation

xyz Linrstudio

🌴
On vacation
View GitHub Profile
@rsms
rsms / EventListener.d.ts
Created July 12, 2017 17:49
Better EventEmitter TypeScript interface
export class EventEmitter<Events, K = keyof Events|symbol> {
addListener(event: K, listener: (...args: any[]) => void): this;
on(event: K, listener: (...args: any[]) => void): this;
once(event: K, listener: (...args: any[]) => void): this;
removeListener(event: K, listener: (...args: any[]) => void): this;
removeAllListeners(event?: K): this;
setMaxListeners(n: number): this;
getMaxListeners(): number;
listeners(event: K): Function[];
emit(event: K, ...args: any[]): boolean;
@kdzwinel
kdzwinel / raf_throttler.js
Created July 7, 2017 08:12
Waiting for IntersectionObserver to get a better support…
function rafThrottler(callback) {
let rafId = null;
const flush = () => {
callback();
rafId = null;
};
return () => {
if (rafId) {
return;
@oriadam
oriadam / colorValues.js
Last active February 9, 2024 16:01
javascript convert any color to array of rgba values
// return array of [r,g,b,a] from any valid color. if failed returns undefined
function colorValues(color)
{
if (!color)
return;
if (color.toLowerCase() === 'transparent')
return [0, 0, 0, 0];
if (color[0] === '#')
{
if (color.length < 7)
@rsms
rsms / extract-macos-cursors.sh
Created June 4, 2017 23:01
Extract PDFs for macOS cursors
#!/bin/bash
set -e
cd "$(dirname "$0")"
SRCDIR=$(pwd)
OUTDIR=$SRCDIR/cursors
mkdir -p "$OUTDIR"
cd /System/Library/Frameworks/ApplicationServices.framework/Frameworks/HiServices.framework/Resources/cursors
# if !(which pdf2svg); then
@devjin0617
devjin0617 / .manifest
Created May 19, 2017 15:15
chrome extension using a content script to access the `window` object
{
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["inject.js"],
"all_frames": true
}
],
"web_accessible_resources": [
"content.js"
@dustinsenos
dustinsenos / rename-text-layers.js
Last active February 1, 2019 08:29
A simple sketch plugin to rename the selected layers to match the contents of their text.
var sketch = context.api()
var MAX_CHARS = 60
var document = sketch.selectedDocument
var selection = document.selectedLayers
var renamedTextLayers = false
selection.iterate(function(item) {
if (!item.isText) {
return
@kdzwinel
kdzwinel / scroll_to.js
Created May 2, 2017 10:24
Scroll to element or scroll by value
let rafId;
function scrollToElement(el, offsetTop = 0) {
scrollByValue(el.getBoundingClientRect().top - offsetTop);
}
function scrollByValue(offsetTop = 0) {
if (offsetTop !== 0) {
if (rafId) {
cancelAnimationFrame(rafId);
@kenjisato
kenjisato / keynote_export.applescript
Last active April 23, 2024 12:09
Script to Export Keynote Presentation Files to PDF or JPEG
on sansExt(theFileName)
do shell script "file=" & theFileName & ";" & "echo ${file%.*}"
end sansExt
on getExt(theFileName)
do shell script "file=" & theFileName & ";" & "echo ${file##*.}"
end getExt
on run argv
set keynote_path to (item 1 of argv)
@poissoj
poissoj / splitImage.js
Created April 7, 2017 19:30
Split image for pdfMake
const PAGE_HEIGHT = 700;
const PAGE_WIDTH = 500;
const content = [];
function getPngDimensions (base64) {
const header = atob(base64.slice(22, 70)).slice(16, 24);
const uint8 = Uint8Array.from(header, c => c.charCodeAt(0));
const dataView = new DataView(uint8.buffer);
@xaviervia
xaviervia / README.md
Last active February 16, 2021 20:12
Sketch 43 files JSON types