-
Notifications
You must be signed in to change notification settings - Fork 0
/
SpiderExport.ts
42 lines (36 loc) · 1.36 KB
/
SpiderExport.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { SpiderFunctionDefinition } from './SpiderFunction';
import { SpiderGlobalDefinition } from './SpiderGlobal';
import { SpiderMemoryDefinition } from './SpiderMemory';
import { SpiderTableDefinition } from './SpiderTable';
import { SpiderExportType } from './enums';
interface SpiderExportBase {
type: SpiderExportType;
/** The name of the value being exported. */
name: string;
}
/** An export which exports a function. */
export interface SpiderExportFunction extends SpiderExportBase {
type: SpiderExportType.func;
/** The exported function. */
value: SpiderFunctionDefinition
}
/** An export which exports a global. */
export interface SpiderExportGlobal extends SpiderExportBase {
type: SpiderExportType.global;
/** The exported global. */
value: SpiderGlobalDefinition;
}
/** An export which exports a memory. */
export interface SpiderExportMemory extends SpiderExportBase {
type: SpiderExportType.mem;
/** The exported memory. */
value: SpiderMemoryDefinition;
}
/** An export which exports a table. */
export interface SpiderExportTable extends SpiderExportBase {
type: SpiderExportType.table;
/** The exported table. */
value: SpiderTableDefinition;
}
/** Any value exported to another module. */
export type SpiderExport = SpiderExportFunction | SpiderExportGlobal | SpiderExportMemory | SpiderExportTable;