diff --git a/src/types.ts b/src/types.ts index 206804c..cba5971 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,87 +1,6 @@ -// DataFn can take any object as input and has no return value. The input is -// allowed to be undefined. -type DataFn = (data?: any) => void; - -// Err is an error type that is either a string or a null. If the value is -// null, that indicates that there was no error. If the value is a string, it -// indicates that there was an error and the string contains the error message. -// -// The skynet libraries prefer this error type to the standard Error type -// because many times skynet libraries need to pass errors over postMessage, -// and the 'Error' type is not able to be sent over postMessage. -type Err = string | null; - -// ErrFn must take an error message as input. The input is not allowed to be -// undefined or null, there must be an error. -type ErrFn = (errMsg: string) => void; - -// ErrTuple is a type that pairs a 'data' field with an 'err' field. Skynet -// libraries typically prefer returning ErrTuples to throwing or rejecting, -// because it allows upstream code to avoid the try/catch/throw pattern. Though -// the pattern is much celebrated in javascript, it encourages relaxed error -// handling, and often makes error handling much more difficult because the try -// and the catch are in different scopes. -// -// Most of the Skynet core libraries do not have any `throws` anywhere in their -// API. -// -// Typically, an ErrTuple will have only one field filled out. If data is -// returned, the err should be 'null'. If an error is returned, the data field -// should generally be empty. Callers are expected to check the error before -// they access any part of the data field. -type ErrTuple = [data: T, err: Err]; - -// KernelAuthStatus is the structure of a message that gets sent by the kernel -// containing its auth status. Auth occurs in 5 stages. -// -// Stage 0; no auth updates -// Stage 1: bootloader is loaded, user is not yet logged in -// Stage 2: bootloader is loaded, user is logged in -// Stage 3: kernel is loaded, user is logged in -// Stage 4: kernel is loaded, user is logging out (refresh iminent) -// -// 'kernelLoaded' is initially set to "not yet" and will be updated when the -// kernel has loaded. If it is set to "success", it means the kernel loaded -// without issues. If it is set to anything else, it means that there was an -// error, and the new value is the error. -// -// 'kernelLoaded' will not be changed until 'loginComplete' has been set to -// true. 'loginComplete' can be set to true immediately if the user is already -// logged in. -// -// 'logoutComplete' can be set to 'true' at any point, which indicates that the -// auth cycle needs to reset. -interface KernelAuthStatus { - loginComplete: boolean; - kernelLoaded: "not yet" | "success" | string; - logoutComplete: boolean; -} - interface Portal { id: string; name: string; url: string; } - -// RequestOverrideResponse defines the type that the kernel returns as a -// response to a requestOverride call. -interface RequestOverrideResponse { - override: boolean; - headers?: any; // TODO: I don't know how to do an array of types. - body?: Uint8Array; -} - -export interface KeyPair { - publicKey: Uint8Array; - privateKey: Uint8Array; -} - -export { - DataFn, - ErrFn, - Err, - ErrTuple, - KernelAuthStatus, - RequestOverrideResponse, - Portal, -}; +export { Portal };