summaryrefslogtreecommitdiff
path: root/cli/js/globals.ts
diff options
context:
space:
mode:
Diffstat (limited to 'cli/js/globals.ts')
-rw-r--r--cli/js/globals.ts263
1 files changed, 0 insertions, 263 deletions
diff --git a/cli/js/globals.ts b/cli/js/globals.ts
deleted file mode 100644
index aa826f63a..000000000
--- a/cli/js/globals.ts
+++ /dev/null
@@ -1,263 +0,0 @@
-// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-
-import "./lib.deno.shared_globals.d.ts";
-
-import * as abortController from "./web/abort_controller.ts";
-import * as abortSignal from "./web/abort_signal.ts";
-import * as blob from "./web/blob.ts";
-import * as consoleTypes from "./web/console.ts";
-import * as csprng from "./ops/get_random_values.ts";
-import type * as promiseTypes from "./web/promise.ts";
-import * as customEvent from "./web/custom_event.ts";
-import * as domException from "./web/dom_exception.ts";
-import * as domFile from "./web/dom_file.ts";
-import * as errorEvent from "./web/error_event.ts";
-import * as event from "./web/event.ts";
-import * as eventTarget from "./web/event_target.ts";
-import * as formData from "./web/form_data.ts";
-import * as fetchTypes from "./web/fetch.ts";
-import * as headers from "./web/headers.ts";
-import * as textEncoding from "./web/text_encoding.ts";
-import * as timers from "./web/timers.ts";
-import * as url from "./web/url.ts";
-import * as urlSearchParams from "./web/url_search_params.ts";
-import * as workers from "./web/workers.ts";
-import * as performance from "./web/performance.ts";
-import * as request from "./web/request.ts";
-import * as readableStream from "./web/streams/readable_stream.ts";
-import * as transformStream from "./web/streams/transform_stream.ts";
-import * as queuingStrategy from "./web/streams/queuing_strategy.ts";
-import * as writableStream from "./web/streams/writable_stream.ts";
-
-// These imports are not exposed and therefore are fine to just import the
-// symbols required.
-import { core } from "./core.ts";
-
-// This global augmentation is just enough types to be able to build Deno,
-// the runtime types are fully defined in `lib.deno.*.d.ts`.
-declare global {
- interface CallSite {
- getThis(): unknown;
- getTypeName(): string | null;
- getFunction(): Function | null;
- getFunctionName(): string | null;
- getMethodName(): string | null;
- getFileName(): string | null;
- getLineNumber(): number | null;
- getColumnNumber(): number | null;
- getEvalOrigin(): string | null;
- isToplevel(): boolean | null;
- isEval(): boolean;
- isNative(): boolean;
- isConstructor(): boolean;
- isAsync(): boolean;
- isPromiseAll(): boolean;
- getPromiseIndex(): number | null;
- }
-
- interface ErrorConstructor {
- prepareStackTrace(error: Error, structuredStackTrace: CallSite[]): string;
- }
-
- interface Object {
- [consoleTypes.customInspect]?(): string;
- }
-
- interface EvalErrorInfo {
- isNativeError: boolean;
- isCompileError: boolean;
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- thrown: any;
- }
-
- interface ImportMeta {
- url: string;
- main: boolean;
- }
-
- interface DenoCore {
- print(s: string, isErr?: boolean): void;
- dispatch(opId: number, ...zeroCopy: ArrayBufferView[]): Uint8Array | null;
- dispatchByName(
- opName: string,
- ...zeroCopy: ArrayBufferView[]
- ): Uint8Array | null;
- setAsyncHandler(opId: number, cb: (msg: Uint8Array) => void): void;
- sharedQueue: {
- head(): number;
- numRecords(): number;
- size(): number;
- push(buf: Uint8Array): boolean;
- reset(): void;
- shift(): Uint8Array | null;
- };
-
- ops(): Record<string, number>;
-
- recv(cb: (opId: number, msg: Uint8Array) => void): void;
-
- send(opId: number, ...data: ArrayBufferView[]): null | Uint8Array;
-
- setMacrotaskCallback(cb: () => boolean): void;
-
- shared: SharedArrayBuffer;
-
- evalContext(
- code: string,
- scriptName?: string,
- ): [unknown, EvalErrorInfo | null];
-
- formatError: (e: Error) => string;
-
- /**
- * Get promise details as two elements array.
- *
- * First element is the `PromiseState`.
- * If promise isn't pending, second element would be the result of the promise.
- * Otherwise, second element would be undefined.
- *
- * Throws `TypeError` if argument isn't a promise
- *
- */
- getPromiseDetails<T>(promise: Promise<T>): promiseTypes.PromiseDetails<T>;
-
- decode(bytes: Uint8Array): string;
- encode(text: string): Uint8Array;
- }
-
- // Only `var` variables show up in the `globalThis` type when doing a global
- // scope augmentation.
- /* eslint-disable no-var */
-
- // Assigned to `window` global - main runtime
- var Deno: {
- core: DenoCore;
- noColor: boolean;
- };
- var onload: ((e: Event) => void) | undefined;
- var onunload: ((e: Event) => void) | undefined;
-
- // These methods are used to prepare different runtime
- // environments. After bootrapping, this namespace
- // should be removed from global scope.
- var bootstrap: {
- mainRuntime: (() => void) | undefined;
- // Assigned to `self` global - worker runtime and compiler
- workerRuntime: ((name: string) => Promise<void> | void) | undefined;
- // Assigned to `self` global - compiler
- tsCompilerRuntime: (() => void) | undefined;
- };
-
- var onerror:
- | ((
- msg: string,
- source: string,
- lineno: number,
- colno: number,
- e: Event,
- ) => boolean | void)
- | undefined;
-
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- var onmessage: ((e: { data: any }) => Promise<void> | void) | undefined;
- // Called in compiler
- var close: () => void;
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- var postMessage: (msg: any) => void;
- /* eslint-enable */
-}
-
-export function writable(value: unknown): PropertyDescriptor {
- return {
- value,
- writable: true,
- enumerable: true,
- configurable: true,
- };
-}
-
-export function nonEnumerable(value: unknown): PropertyDescriptor {
- return {
- value,
- writable: true,
- configurable: true,
- };
-}
-
-export function readOnly(value: unknown): PropertyDescriptor {
- return {
- value,
- enumerable: true,
- };
-}
-
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
-export function getterOnly(getter: () => any): PropertyDescriptor {
- return {
- get: getter,
- enumerable: true,
- };
-}
-
-// https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope
-export const windowOrWorkerGlobalScopeMethods = {
- atob: writable(textEncoding.atob),
- btoa: writable(textEncoding.btoa),
- clearInterval: writable(timers.clearInterval),
- clearTimeout: writable(timers.clearTimeout),
- fetch: writable(fetchTypes.fetch),
- // queueMicrotask is bound in Rust
- setInterval: writable(timers.setInterval),
- setTimeout: writable(timers.setTimeout),
-};
-
-// Other properties shared between WindowScope and WorkerGlobalScope
-export const windowOrWorkerGlobalScopeProperties = {
- console: writable(new consoleTypes.Console(core.print)),
- AbortController: nonEnumerable(abortController.AbortControllerImpl),
- AbortSignal: nonEnumerable(abortSignal.AbortSignalImpl),
- Blob: nonEnumerable(blob.DenoBlob),
- ByteLengthQueuingStrategy: nonEnumerable(
- queuingStrategy.ByteLengthQueuingStrategyImpl,
- ),
- CountQueuingStrategy: nonEnumerable(queuingStrategy.CountQueuingStrategyImpl),
- crypto: readOnly(csprng),
- File: nonEnumerable(domFile.DomFileImpl),
- CustomEvent: nonEnumerable(customEvent.CustomEventImpl),
- DOMException: nonEnumerable(domException.DOMExceptionImpl),
- ErrorEvent: nonEnumerable(errorEvent.ErrorEventImpl),
- Event: nonEnumerable(event.EventImpl),
- EventTarget: nonEnumerable(eventTarget.EventTargetImpl),
- Headers: nonEnumerable(headers.HeadersImpl),
- FormData: nonEnumerable(formData.FormDataImpl),
- ReadableStream: nonEnumerable(readableStream.ReadableStreamImpl),
- Request: nonEnumerable(request.Request),
- Response: nonEnumerable(fetchTypes.Response),
- performance: writable(new performance.PerformanceImpl()),
- Performance: nonEnumerable(performance.PerformanceImpl),
- PerformanceEntry: nonEnumerable(performance.PerformanceEntryImpl),
- PerformanceMark: nonEnumerable(performance.PerformanceMarkImpl),
- PerformanceMeasure: nonEnumerable(performance.PerformanceMeasureImpl),
- TextDecoder: nonEnumerable(textEncoding.TextDecoder),
- TextEncoder: nonEnumerable(textEncoding.TextEncoder),
- TransformStream: nonEnumerable(transformStream.TransformStreamImpl),
- URL: nonEnumerable(url.URLImpl),
- URLSearchParams: nonEnumerable(urlSearchParams.URLSearchParamsImpl),
- Worker: nonEnumerable(workers.WorkerImpl),
- WritableStream: nonEnumerable(writableStream.WritableStreamImpl),
-};
-
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
-export function setEventTargetData(value: any): void {
- eventTarget.eventTargetData.set(value, eventTarget.getDefaultTargetData());
-}
-
-export const eventTargetProperties = {
- addEventListener: readOnly(
- eventTarget.EventTargetImpl.prototype.addEventListener,
- ),
- dispatchEvent: readOnly(eventTarget.EventTargetImpl.prototype.dispatchEvent),
- removeEventListener: readOnly(
- eventTarget.EventTargetImpl.prototype.removeEventListener,
- ),
-};