Skip to content

Instantly share code, notes, and snippets.

View prateekbh's full-sized avatar
🌏
Lets talk web?

Prateek Bhatnagar prateekbh

🌏
Lets talk web?
View GitHub Profile
class DeferScripts extends NextScript {
makeScriptsDefer(el) {
return React.Children.map(el, child => {
if (!child) {
return child;
}
if (child.props.children) {
child.props.children = this.makeScriptsDefer(child.props.children)
} else {
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@babel/cli@7.6.4":
version "7.6.4"
resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.6.4.tgz#9b35a4e15fa7d8f487418aaa8229c8b0bc815f20"
dependencies:
commander "^2.8.1"
convert-source-map "^1.1.0"
self.__precacheManifest = [].concat(self.__precacheManifest || []);
/* global workbox */
const precacheOptions = {};
const isNav = event => event.request.mode === 'navigate';
/**
* Adding this before `precacheAndRoute` lets us handle all
function getSuspendableComponent(t) {
let state = false;
const SuspendableComponent = () => {
if (!state) {
throw new Promise(resolve => {
setTimeout(() => {
state = true;
resolve();
}, t||3000);
function getSuspendableComponent(t) {
let state = false;
const SuspendableComponent = () => {
if (!state) {
throw new Promise(resolve => {
setTimeout(() => {
state = true;
resolve();
}, t||3000);
self.__precacheManifest = [].concat(self.__precacheManifest || []);
/* global workbox */
/** We are sure brotli is enabled for browsers supporting script type=module
* so we do brotli support only for them.
* We can do brolti support for other browsers but there is no good way of
* feature detect the same at the time of pre-caching.
*/
if (process.env.ENABLE_BROTLI && process.env.ES_BUILD) {
// Alter the precache manifest to precache brotli files instead of gzip files.
self.addEventListener('install', event => {
self.skipWaiting();
});
self.addEventListener('activate', async event => {
await clients.claim();
const windowClients = await clients.matchAll({ type: 'window' });
windowClients.forEach(
(client) =>
client.navigate(client.url),
@prateekbh
prateekbh / app.jsx
Last active July 24, 2019 21:50
How to get pre-rendered data in `routes` folder components
import { h, Component } from 'preact';
import { Router } from 'preact-router';
import { Provider } from '@preact/prerender-data-provider';
import Home from './routes/home';
import Route66 from './routes/route66';
import Custom from './routes/custom';
import './style.css';
export default class App extends Component {
handleRoute = e => {
function title {
export TITLE_OVERRIDDEN=1
PROMPT_COMMAND=''
echo -ne "\033]0;"$*"\007"
}
case "$TERM" in
xterm*|rxvt*)
PROMPT_COMMAND='echo -ne "\033]0;${PWD##*/}\007"'
show_command_in_title_bar()
importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.6.1/workbox-sw.js');
class SWRCacheExpiration extends workbox.expiration.CacheExpiration {
async refreshEntries() {
if (this._isRunning) {
this._rerunRequested = true;
return;
}
this._isRunning = true;