[refactor] seperate polyfill
This commit is contained in:
28
src/main.ts
28
src/main.ts
@@ -2,34 +2,10 @@ import "./styles.css";
|
||||
import "core-js/actual"
|
||||
import App from "./App.svelte";
|
||||
import { loadData } from "./ts/globalApi";
|
||||
import { ReadableStream, WritableStream, TransformStream } from "web-streams-polyfill/ponyfill/es2018";
|
||||
import { Buffer as BufferPolyfill } from 'buffer'
|
||||
import { initHotkey } from "./ts/hotkey";
|
||||
import { polyfill } from "./ts/polyfill";
|
||||
|
||||
const testDom = document.createElement('div');
|
||||
const supports = ('draggable' in testDom) || ('ondragstart' in testDom && 'ondrop' in testDom);
|
||||
const isIos = navigator.userAgent ? (!!navigator.userAgent.match('iPhone OS') || !!navigator.userAgent.match('iPad')) : false
|
||||
testDom.remove()
|
||||
|
||||
if((!supports) || isIos){
|
||||
const dragDrop = await import("mobile-drag-drop")
|
||||
const dragDropBehavior = await import("mobile-drag-drop/scroll-behaviour")
|
||||
|
||||
dragDrop.polyfill({
|
||||
// use this to make use of the scroll behaviour
|
||||
dragImageTranslateOverride: dragDropBehavior.scrollBehaviourDragImageTranslateOverride,
|
||||
holdToDrag: 400,
|
||||
forceApply: true
|
||||
});
|
||||
}
|
||||
|
||||
//Polyfills
|
||||
declare var Buffer: typeof BufferPolyfill;
|
||||
globalThis.Buffer = BufferPolyfill
|
||||
//@ts-ignore
|
||||
globalThis.WritableStream = globalThis.WritableStream ?? WritableStream
|
||||
globalThis.ReadableStream = globalThis.ReadableStream ?? ReadableStream
|
||||
globalThis.TransformStream = globalThis.TransformStream ?? TransformStream
|
||||
polyfill()
|
||||
|
||||
const app = new App({
|
||||
target: document.getElementById("app"),
|
||||
|
||||
30
src/ts/polyfill.ts
Normal file
30
src/ts/polyfill.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
import { ReadableStream, WritableStream, TransformStream } from "web-streams-polyfill/ponyfill/es2018";
|
||||
import { Buffer as BufferPolyfill } from 'buffer'
|
||||
import { polyfill as dragPolyfill} from "mobile-drag-drop"
|
||||
import {scrollBehaviourDragImageTranslateOverride} from 'mobile-drag-drop/scroll-behaviour'
|
||||
|
||||
export function polyfill() {
|
||||
try {
|
||||
const testDom = document.createElement('div');
|
||||
const supports = ('draggable' in testDom) || ('ondragstart' in testDom && 'ondrop' in testDom);
|
||||
const isIos = navigator.userAgent ? (!!navigator.userAgent.match('iPhone OS') || !!navigator.userAgent.match('iPad')) : false
|
||||
testDom.remove()
|
||||
|
||||
if((!supports) || isIos){
|
||||
|
||||
dragPolyfill({
|
||||
// use this to make use of the scroll behaviour
|
||||
dragImageTranslateOverride: scrollBehaviourDragImageTranslateOverride,
|
||||
holdToDrag: 400,
|
||||
forceApply: true
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
globalThis.Buffer = BufferPolyfill
|
||||
//@ts-ignore
|
||||
globalThis.WritableStream = globalThis.WritableStream ?? WritableStream
|
||||
globalThis.ReadableStream = globalThis.ReadableStream ?? ReadableStream
|
||||
globalThis.TransformStream = globalThis.TransformStream ?? TransformStream
|
||||
}
|
||||
Reference in New Issue
Block a user