Skip to content

Instantly share code, notes, and snippets.

View vsimko's full-sized avatar
💭
building stuff

Viliam Simko vsimko

💭
building stuff
View GitHub Profile
@vsimko
vsimko / useSuspenseQuery.ts
Last active April 26, 2021 14:56
Apollo query hook that supports React.Suspense
import { ApolloQueryResult, QueryOptions, QueryResult, TypedDocumentNode, useApolloClient, useQuery } from "@apollo/client";
import uuid from "uuid/v5";
const uuidNamespace = uuid("suspense.queries.utils", uuid.DNS);
const suspenseQueryStore: Record<string, { read: () => ApolloQueryResult<unknown> }> = {};
type SuspendQueryResult<Q, V> = Pick<QueryResult<Q, V>, "networkStatus" | "variables"> & { data: Q };
/** Works with `TypedDocumentNode` which can be generated using `typed-document-node` codegen plugin. */
export function useSuspenseQuery<Q, V>(
feat (new feature)
fix (bug fix)
docs (changes to documentation)
style (formatting, missing semi colons, etc; no code change)
refactor (refactoring production code)
test (adding missing tests, refactoring tests; no production code change)
chore (updating grunt tasks etc; no production code change)
// from https://2ality.com/2019/10/eval-via-import.html
function esm(templateStrings, ...substitutions) {
let js = templateStrings.raw[0];
for (let i=0; i<substitutions.length; i++) {
js += substitutions[i] + templateStrings.raw[i+1];
}
return 'data:text/javascript;base64,' + btoa(js);
}
\documentclass{article}
\usepackage[dvipsnames]{xcolor} % https://en.wikibooks.org/wiki/LaTeX/Colors
\definecolor{LightGray}{rgb}{0.97,0.97,0.97}
\usepackage{listings} % syntax highlighting
\lstdefinelanguage{SPARQL}{
basicstyle=\small\ttfamily,
backgroundcolor=\color{LightGray},
columns=fullflexible,
breaklines=false,
// run this code in dev console when you selected your icon
var x = document.createElement('img')
x.src = document.querySelector('.iconPreview').style.backgroundImage.replace(/url\("/,'').replace(/"\)$/, '')
document.body.replaceWith(x)
// or use this as a bookmark in your chrome
// Name: TNP Download
// URL: javascript:!(function() { var x = document.createElement('img'); x.src = document.querySelector('.iconPreview').style.backgroundImage.replace(/url\("/,'').replace(/"\)$/, ''); document.body.replaceWith(x) })()

The easiest way to create a microservice

mkdir micro-demo
cd micro-demo
yarn add micro
echo 'module.exports = () => "Welcome to Micro"' > index.js
yarn micro

Now browse to http://localhost:3000

<link href='https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons' rel="stylesheet">
<link href="https://unpkg.com/vuetify/dist/vuetify.min.css" rel="stylesheet">
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vuetify/dist/vuetify.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<div id="app">
<input v-model="myinput">
<v-app>
<v-toolbar dense dark color="blue darken-2">
#!/usr/bin/env node
// TODO: this is currently just a helper script included from `fix-mkdocs-pages.sh`
const fs = require('fs')
const yaml = require('js-yaml')
function firstObjectKey(obj) {
return Object.keys(obj)[0]
}
@vsimko
vsimko / biggis-docs-new-page-howto.md
Last active January 15, 2018 13:20
How to add new page into biggis-docs
# install required stuff (you should have already installed it anyways)
pip install --user mkdocs
pip install --user mkdocs-material
sudo apt install nodejs

# clone the repo
git clone https://github.com/biggis-project/biggis-docs.git
cd biggis-docs
#!/bin/sh
# Quick and dirty config hack for mkdocs pages.
#
# Created by Viliam Simko (viliam.simko@gmail.com)
# License: MIT
#
# Generates `pages:` section within `mkdocs.yml` file.
# The sections are ordered by filenames, however the section
# titles are taken either from the first H1 within a document