Skip to content

Instantly share code, notes, and snippets.

View edoardocavazza's full-sized avatar
🍔

Edoardo Cavazza edoardocavazza

🍔
View GitHub Profile
@edoardocavazza
edoardocavazza / index.js
Created October 20, 2023 07:28
Saucelabs Safari 15 and above issues with WS
import fs from 'fs';
import { createServer as createHttpServer } from 'http';
import { createServer as createHttpsServer } from 'https';
import { WebSocketServer } from 'ws';
import sl from 'saucelabs';
import { remote } from 'webdriverio';
import ip from 'ip';
const protocol = 'http';
const localIp = ip.address();
@edoardocavazza
edoardocavazza / dragdrop1.js
Last active November 30, 2018 08:45
Move an element using touch events.
function draggable(element) {
let currentX = 0;
let currentY = 0;
element.addEventListener('touchstart', (startEvent) => {
const firstTouch = startEvent.touches[0];
let deltaX, deltaY;
const onMove = (moveEvent) => {
// prevent the scrolling
<script type="module" src="path/to/es6/module.js"></script>
<!-- OR (only in Chrome 64) -->
<script>
const module = await import('path/to/es6/module.js');
</script>
// import Unchained core and plugins.
importScripts(
'node_modules/unchained-js/lib/core.js',
'node_modules/unchained-js/lib/plugins/babel.js',
'node_modules/unchained-js/lib/plugins/resolve.js'
);
// intercept fetch events.
this.addEventListener('fetch', (event) => {
// verify if requested resource is an import.
import { h, render } from 'preact';
import TodoList from './todolist.component.js';
render(<TodoList />, document.body);
<script src="node_modules/unchained-js/dist/unchained.client.js"></script>
<script>
// register a Service Worker.
UnchainedClient.register('sw.js', { scope: '/' }).then(
// The Service Worker is ready, we can now import the main file.
UnchainedClient.import('index.js')
);
</script>
// intercept network requests
this.addEventListener('fetch', (event) => {
// check if `event.request` è un file js
if (event.request.url.match(/.js$/)) {
event.respondWith(
// -> handle del file js
);
}
});
@edoardocavazza
edoardocavazza / index.html
Last active December 14, 2017 17:58
Unchained index.html
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('sw.js');
}
</script>
const MAP = (typeof self.WeakMap !== 'undefined') ? new WeakMap() : false;
const PROP = '__private__';
function internal(object) {
if (MAP) {
if (!MAP.has(object)) {
MAP.set(object, {});
}
return MAP.get(object);
}
@edoardocavazza
edoardocavazza / trap-scroller.js
Last active March 29, 2016 09:31
Prevent wheel scroll propagation to parent scroll panels.
function TrapScroller(scroller) {
function callback(ev) {
ev.stopPropagation();
var d = ev.deltaY || 0;
if (
(scroller.scrollHeight !== scroller.offsetHeight) && (
(d < 0 && scroller.scrollTop === 0) ||
(d > 0 && (scroller.scrollTop >= scroller.scrollHeight - scroller.offsetHeight)) ||
(scroller.scrollHeight === scroller.clientHeight))
) {