mirror of
https://github.com/FlipsideCrypto/DefinitelyTyped.git
synced 2026-02-06 10:56:53 +00:00
feat(offscreen-canvas): new type definitiion (#43246)
- definition files - tests https://github.com/ai/offscreen-canvas Thanks!
This commit is contained in:
parent
3c7ab7eb39
commit
fdea88dc12
11
types/offscreen-canvas/create-worker.d.ts
vendored
Normal file
11
types/offscreen-canvas/create-worker.d.ts
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
declare function createWorker(
|
||||
canvas: HTMLCanvasElement,
|
||||
workerUrl: string,
|
||||
listener: (ev: MessageEvent) => any,
|
||||
): WorkerInterface;
|
||||
interface WorkerInterface {
|
||||
post(message: any, transfer: Transferable[]): void;
|
||||
post(message: any, options?: PostMessageOptions): void;
|
||||
}
|
||||
|
||||
export = createWorker;
|
||||
10
types/offscreen-canvas/index.d.ts
vendored
Normal file
10
types/offscreen-canvas/index.d.ts
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
// Type definitions for offscreen-canvas 0.1
|
||||
// Project: https://github.com/ai/offscreen-canvas#readme
|
||||
// Definitions by: Peter Błażejewicz <https://github.com/peterblazejewicz>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// Minimum TypeScript Version: 3.5
|
||||
|
||||
import createWorker = require('./create-worker');
|
||||
import insideWorker = require('./inside-worker');
|
||||
|
||||
export { createWorker, insideWorker };
|
||||
8
types/offscreen-canvas/inside-worker.d.ts
vendored
Normal file
8
types/offscreen-canvas/inside-worker.d.ts
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
declare function insideWorker(listener: (ev: MessageEvent) => any): WorkerInterface;
|
||||
interface WorkerInterface {
|
||||
post(message: any, transfer: Transferable[]): void;
|
||||
post(message: any, options?: PostMessageOptions): void;
|
||||
isWorker: boolean;
|
||||
}
|
||||
|
||||
export = insideWorker;
|
||||
23
types/offscreen-canvas/offscreen-canvas-tests.ts
Normal file
23
types/offscreen-canvas/offscreen-canvas-tests.ts
Normal file
@ -0,0 +1,23 @@
|
||||
// index.js
|
||||
import createWorker = require('offscreen-canvas/create-worker');
|
||||
import insideWorker = require('offscreen-canvas/inside-worker');
|
||||
|
||||
const workerUrl = document.querySelector<HTMLLinkElement>('[rel=preload][as=script]')!.href;
|
||||
const canvas: HTMLCanvasElement = document.querySelector<HTMLCanvasElement>('#canvas')!;
|
||||
const button: HTMLButtonElement = document.querySelector<HTMLButtonElement>('#button')!;
|
||||
|
||||
const workerOne = createWorker(canvas, workerUrl, e => {
|
||||
// Messages from the worker
|
||||
});
|
||||
|
||||
button.addEventListener('click', () => {
|
||||
workerOne.post({ message: 'update' });
|
||||
});
|
||||
|
||||
const workerTwo = insideWorker(e => {
|
||||
if (e.data.canvas) {
|
||||
// Draw on the canvas
|
||||
} else if (e.data.message === 'move') {
|
||||
// Messages from main thread
|
||||
}
|
||||
});
|
||||
24
types/offscreen-canvas/tsconfig.json
Normal file
24
types/offscreen-canvas/tsconfig.json
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6",
|
||||
"DOM"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictFunctionTypes": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"offscreen-canvas-tests.ts"
|
||||
]
|
||||
}
|
||||
1
types/offscreen-canvas/tslint.json
Normal file
1
types/offscreen-canvas/tslint.json
Normal file
@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Loading…
Reference in New Issue
Block a user