1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-26 16:09:27 -05:00
denoland-deno/js/globals.ts
Ryan Dahl 4fd2b19f64 Make Deno multithreaded.
By using the tokio default runtime.

This patch makes all of the ops thread safe.

Adds libdeno to JS globals to make for easier testing.

Preliminary work for #733.
2018-09-25 17:02:49 -04:00

73 lines
2 KiB
TypeScript

// Copyright 2018 the Deno authors. All rights reserved. MIT license.
import { Console } from "./console";
import * as timers from "./timers";
import * as textEncoding from "./text_encoding";
import * as fetch_ from "./fetch";
import { libdeno } from "./libdeno";
import { globalEval } from "./global-eval";
import { DenoHeaders } from "./fetch";
import { DenoBlob } from "./blob";
declare global {
interface Window {
define: Readonly<unknown>;
clearTimeout: typeof clearTimeout;
clearInterval: typeof clearInterval;
setTimeout: typeof setTimeout;
setInterval: typeof setInterval;
console: typeof console;
window: typeof window;
fetch: typeof fetch;
TextEncoder: typeof TextEncoder;
TextDecoder: typeof TextDecoder;
atob: typeof atob;
btoa: typeof btoa;
Headers: typeof Headers;
Blob: typeof Blob;
}
const clearTimeout: typeof timers.clearTimer;
const clearInterval: typeof timers.clearTimer;
const setTimeout: typeof timers.setTimeout;
const setInterval: typeof timers.setInterval;
const console: Console;
const window: Window;
const fetch: typeof fetch_.fetch;
// tslint:disable:variable-name
const TextEncoder: typeof textEncoding.TextEncoder;
const TextDecoder: typeof textEncoding.TextDecoder;
const atob: typeof textEncoding.atob;
const btoa: typeof textEncoding.btoa;
const Headers: typeof DenoHeaders;
const Blob: typeof DenoBlob;
// tslint:enable:variable-name
}
// A reference to the global object.
export const window = globalEval("this");
window.window = window;
window.setTimeout = timers.setTimeout;
window.setInterval = timers.setInterval;
window.clearTimeout = timers.clearTimer;
window.clearInterval = timers.clearTimer;
window.console = new Console(libdeno.print);
window.TextEncoder = textEncoding.TextEncoder;
window.TextDecoder = textEncoding.TextDecoder;
window.atob = textEncoding.atob;
window.btoa = textEncoding.btoa;
window.fetch = fetch_.fetch;
window.Headers = DenoHeaders;
window.Blob = DenoBlob;