Skip to content

Instantly share code, notes, and snippets.

@ifiokjr
ifiokjr / CollaborativeEditor.js
Last active February 17, 2021 07:24 — forked from byrnehollander/CollaborativeEditor.js
Attempt at Remirror + Yjs
import React from 'react'
import useErrorBoundary from 'use-error-boundary'
import styled from 'styled-components'
import { Remirror, useRemirror, useRemirrorContext } from '@remirror/react'
import { YjsExtension } from '@remirror/extension-yjs'
import { IndexeddbPersistence } from 'y-indexeddb'
import { WebrtcProvider } from 'y-webrtc'
import { WebsocketProvider } from 'y-websocket'
import { Doc } from 'yjs'
import * as React from 'react';
/**
* React.Ref uses the readonly type `React.RefObject` instead of
* `React.MutableRefObject`, We pretty much always assume ref objects are
* mutable (at least when we create them), so this type is a workaround so some
* of the weird mechanics of using refs with TS.
*/
export type AssignableRef<ValueType> =
| {
@ifiokjr
ifiokjr / index.html
Created October 23, 2019 10:06 — forked from r8n5n/index.html
Twinkling star field using canvas/js
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<title>Starfield</title>
</head>
@ifiokjr
ifiokjr / puppeteer-gif.js
Created July 30, 2019 15:15 — forked from bambooom/puppeteer-gif.js
use puppeteer to generate gif
const fs = require('fs');
const puppeteer = require('puppeteer');
const GIFEncoder = require('gifencoder');
const PNG = require('png-js');
function decode(png) {
return new Promise(r => {png.decode(pixels => r(pixels))});
}
@ifiokjr
ifiokjr / background.js
Created June 20, 2019 01:29 — forked from muralikg/background.js
puppeteer screen capture demo. Currently records 10 second video. Change the timeout in background.js with your own logic to stop the recording when necessary. Try with `node export.js`
/* global chrome, MediaRecorder, FileReader */
chrome.runtime.onConnect.addListener(port => {
let recorder = null
port.onMessage.addListener(msg => {
console.log(msg);
switch (msg.type) {
case 'REC_STOP':
console.log('Stopping recording')
if (!port.recorderPlaying || !recorder) {
@ifiokjr
ifiokjr / apollo-link-token.mjs
Created October 29, 2018 00:13 — forked from jaydenseric/apollo-link-token.mjs
An Apollo Link for setting an auth token header.
@ifiokjr
ifiokjr / twitter_oauth_getter.js
Created October 28, 2018 21:08 — forked from tanepiper/twitter_oauth_getter.js
A small command line nodejs script for doing Twitter OAuth.
#!/usr/bin/env node
var argv = require('optimist')
.usage('Usage: --key=[consumer key] -secret=[consumer secret]')
.demand(['key', 'secret'])
.argv
;
var OAuth = require('oauth').OAuth;
var Step = require('step');
@ifiokjr
ifiokjr / index.js
Created July 15, 2018 11:16 — forked from codediodeio/index.js
Firebase Cloud Functions image thumbnail generator using Sharp for 4x faster resizing
const functions = require('firebase-functions');
const gcs = require('@google-cloud/storage')();
const sharp = require('sharp')
const _ = require('lodash');
const path = require('path');
const os = require('os');
exports.generateThumbnail = functions.storage.object('uploads/{imageId}').onChange(event => {
const object = event.data; // The Storage object.
@ifiokjr
ifiokjr / regen-domain-types.js
Created July 15, 2018 08:28 — forked from adamkl/regen-domain-types.js
Generating typescript definitions from .graphql files using apollo-codegen and graphql-code-generator
const { introspectSchema } = require("apollo-codegen");
const { executeWithOptions } = require("graphql-code-generator/dist/cli");
const fs = require("fs");
const path = require("path");
const graphqlPath = "./src/graphql/";
const schemaInput = "./src/graphql/temp.graphql";
const jsonOutput = "./src/graphql/temp.json";
const dtsOutput = "./src/graphql/domain.d.ts";
app.post('/login', function(req, res) {
console.log(res);
passport.authenticate('local', function(err, user) {
if (req.xhr) {
//thanks @jkevinburton
if (err) { return res.json({ error: err.message }); }
if (!user) { return res.json({error : "Invalid Login"}); }
req.login(user, {}, function(err) {
if (err) { return res.json({error:err}); }
return res.json(