Skip to content

Instantly share code, notes, and snippets.

Dag-Inge Aas dagingaa

Block or report user

Report or block dagingaa

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View mediasteam_average_lightness.js
// run in console on a https page
stream = await navigator.mediaDevices.getUserMedia({ video: true, audio:true })
video = document.createElement("video");
video.muted = true;
video.srcObject = stream;
await video.play();
canvas = document.createElement("canvas")
ctx = canvas.getContext("2d")
ctx.drawImage(video, 0, 0, video.videoWidth, video.videoHeight);
imageData = ctx.getImageData(0,0,video.videoWidth, video.videoHeight)
View analyze_image_color_data.js
src = "url_to_imgur"
img = new Image();
img.crossOrigin = "Anonymous";
img.addEventListener("load", analyze, false);
img.src = src;
function analyze() {
canvas = document.createElement("canvas")
ctx = canvas.getContext("2d")
View stun-binding-request-test.js
const dgram = require('dgram');
// STUN binding request
const bind = Buffer.from('000300002112a4425f73a4b270529f877091d580', 'hex');
const socket = dgram.createSocket('udp4');
socket.on('message', (data) => {
console.log('STUN BINDING RESPONSE', data.toString());
});
View media-capabilities-video.js
if ('mediaCapabilities' in navigator && 'encodingInfo' in navigator.mediaCapabilities) {
const videoFileConfiguration = {
type : 'record',
video : {
contentType: "video/webm;codecs=vp8",
width: 1920,
height: 1080,
bitrate: 2500000,
framerate: 30,
}
View webrtcsupportgate.js
function WebRtcSupportGate({
children,
forceUnsupported,
forceUnsupportedIos,
forceUnsupportedFacebook,
forceUnsupportedInApp,
}) {
const isWebRtcSupported =
!!global.RTCPeerConnection &&
!!global.navigator.mediaDevices &&
@dagingaa
dagingaa / passport-grean.js
Created Sep 5, 2017
A small wrapper around openid-client passport for integrating with Grean EasyID
View passport-grean.js
"use strict";
const { Issuer, Strategy } = require("openid-client");
Issuer.defaultHttpOptions = { timeout: 5000 };
function createUser(userinfo) {
const name = userinfo.name.split(",");
return {
id: userinfo.uniqueuserid,
View keybase.md

Keybase proof

I hereby claim:

  • I am dagingaa on github.
  • I am daginge (https://keybase.io/daginge) on keybase.
  • I have a public key ASAa1y7IlordCfcpNPe64jomY7ui1GgbuwLYBDQdq8D1mgo

To claim this, I am signing this object:

@dagingaa
dagingaa / refactor-functions-params-to-obj-destructuring.js
Created Sep 21, 2016
This is a non-working codemod that tried to refactor specific functions with multiple parameters into a single object with destructuring. It failed.
View refactor-functions-params-to-obj-destructuring.js
export default function transformer(file, api) {
const j = api.jscodeshift;
const name = "subscribeToPlan";
const newName = name;
const root = j(file.source);
root
.find(j.MethodDefinition)
.filter(path => !!path.value.key.name)
@dagingaa
dagingaa / prototype-to-class.js
Last active Nov 18, 2017
Codemod to transform well-written function prototype style classes into the new ES2015 syntax. Requires jscodeshift.
View prototype-to-class.js
module.exports = (file, api, options) => {
const j = api.jscodeshift;
const root = j(file.source);
// We have to add "use strict" for node to play nice
// Taken from https://github.com/cpojer/js-codemod/blob/master/transforms/use-strict.js
const hasStrictMode = body =>
body.some(
statement => j.match(statement, {
type: 'ExpressionStatement',
@dagingaa
dagingaa / arrow-parens.js
Created Jan 26, 2016
Fixes the arrow parens thing in eslint, but is slightly broken
View arrow-parens.js
module.exports = (file, api, options) => {
const j = api.jscodeshift;
const root = j(file.source);
const getBodyStatement = fn => {
if (
fn.body.type == 'BlockStatement' &&
fn.body.body.length == 1
) {
You can’t perform that action at this time.