diff options
Diffstat (limited to 'src/compiler/interfaces.ts')
-rw-r--r-- | src/compiler/interfaces.ts | 220 |
1 files changed, 102 insertions, 118 deletions
diff --git a/src/compiler/interfaces.ts b/src/compiler/interfaces.ts index dcc943141..bedb29cda 100644 --- a/src/compiler/interfaces.ts +++ b/src/compiler/interfaces.ts @@ -2,178 +2,162 @@ import { Node, Program } from 'estree'; import { SourceMap } from 'magic-string'; interface BaseNode { - start: number; - end: number; - type: string; - children?: TemplateNode[]; - [prop_name: string]: any; + start: number; + end: number; + type: string; + children?: TemplateNode[]; + [prop_name: string]: any; } export interface Fragment extends BaseNode { - type: 'Fragment'; - children: TemplateNode[]; + type: 'Fragment'; + children: TemplateNode[]; } export interface Text extends BaseNode { - type: 'Text'; - data: string; + type: 'Text'; + data: string; } export interface MustacheTag extends BaseNode { - type: 'MustacheTag'; - expression: string; + type: 'MustacheTag'; + expression: string; } -export type DirectiveType = 'Action' -| 'Animation' -| 'Binding' -| 'Class' -| 'EventHandler' -| 'Let' -| 'Ref' -| 'Transition'; +export type DirectiveType = 'Action' | 'Animation' | 'Binding' | 'Class' | 'EventHandler' | 'Let' | 'Ref' | 'Transition'; interface BaseDirective extends BaseNode { - type: DirectiveType; - expression: null | Node; - name: string; - modifiers: string[]; + type: DirectiveType; + expression: null | Node; + name: string; + modifiers: string[]; } -export interface Transition extends BaseDirective{ - type: 'Transition'; - intro: boolean; - outro: boolean; +export interface Transition extends BaseDirective { + type: 'Transition'; + intro: boolean; + outro: boolean; } export type Directive = BaseDirective | Transition; -export type TemplateNode = Text -| MustacheTag -| BaseNode -| Directive -| Transition; +export type TemplateNode = Text | MustacheTag | BaseNode | Directive | Transition; export interface Parser { - readonly template: string; - readonly filename?: string; + readonly template: string; + readonly filename?: string; - index: number; - stack: Node[]; + index: number; + stack: Node[]; - html: Node; - css: Node; - js: Node; - meta_tags: {}; + html: Node; + css: Node; + js: Node; + meta_tags: {}; } export interface Script extends BaseNode { - type: 'Script'; - context: string; - content: string; + type: 'Script'; + context: string; + content: string; } export interface Style extends BaseNode { - type: 'Style'; - attributes: any[]; // TODO - content: { - start: number; - end: number; - styles: string; - }; + type: 'Style'; + attributes: any[]; // TODO + content: { + start: number; + end: number; + styles: string; + }; } export interface Ast { - html: TemplateNode; - css: Style; - instance: Script; - module: Script; + html: TemplateNode; + css: Style; + instance: Script; + module: Script; } export interface Warning { - start?: { line: number; column: number; pos?: number }; - end?: { line: number; column: number }; - pos?: number; - code: string; - message: string; - filename?: string; - frame?: string; - toString: () => string; + start?: { line: number; column: number; pos?: number }; + end?: { line: number; column: number }; + pos?: number; + code: string; + message: string; + filename?: string; + frame?: string; + toString: () => string; } export type ModuleFormat = 'esm' | 'cjs'; -export type CssHashGetter = (args: { - name: string; - filename: string | undefined; - css: string; - hash: (input: string) => string; -}) => string; +export type CssHashGetter = (args: { name: string; filename: string | undefined; css: string; hash: (input: string) => string }) => string; export interface CompileOptions { - format?: ModuleFormat; - name?: string; - filename?: string; - generate?: 'dom' | 'ssr' | false; - - sourcemap?: object | string; - outputFilename?: string; - cssOutputFilename?: string; - sveltePath?: string; - - dev?: boolean; - accessors?: boolean; - immutable?: boolean; - hydratable?: boolean; - legacy?: boolean; - customElement?: boolean; - tag?: string; - css?: boolean; - loopGuardTimeout?: number; - namespace?: string; - cssHash?: CssHashGetter; - - preserveComments?: boolean; - preserveWhitespace?: boolean; + format?: ModuleFormat; + name?: string; + filename?: string; + generate?: 'dom' | 'ssr' | false; + + sourcemap?: object | string; + outputFilename?: string; + cssOutputFilename?: string; + sveltePath?: string; + + dev?: boolean; + accessors?: boolean; + immutable?: boolean; + hydratable?: boolean; + legacy?: boolean; + customElement?: boolean; + tag?: string; + css?: boolean; + loopGuardTimeout?: number; + namespace?: string; + cssHash?: CssHashGetter; + + preserveComments?: boolean; + preserveWhitespace?: boolean; } export interface ParserOptions { - filename?: string; - customElement?: boolean; + filename?: string; + customElement?: boolean; } export interface Visitor { - enter: (node: Node) => void; - leave?: (node: Node) => void; + enter: (node: Node) => void; + leave?: (node: Node) => void; } export interface AppendTarget { - slots: Record<string, string>; - slot_stack: string[]; + slots: Record<string, string>; + slot_stack: string[]; } export interface Var { - name: string; - export_name?: string; // the `bar` in `export { foo as bar }` - injected?: boolean; - module?: boolean; - mutated?: boolean; - reassigned?: boolean; - referenced?: boolean; // referenced from template scope - referenced_from_script?: boolean; // referenced from script - writable?: boolean; - - // used internally, but not exposed - global?: boolean; - internal?: boolean; // event handlers, bindings - initialised?: boolean; - hoistable?: boolean; - subscribable?: boolean; - is_reactive_dependency?: boolean; - imported?: boolean; + name: string; + export_name?: string; // the `bar` in `export { foo as bar }` + injected?: boolean; + module?: boolean; + mutated?: boolean; + reassigned?: boolean; + referenced?: boolean; // referenced from template scope + referenced_from_script?: boolean; // referenced from script + writable?: boolean; + + // used internally, but not exposed + global?: boolean; + internal?: boolean; // event handlers, bindings + initialised?: boolean; + hoistable?: boolean; + subscribable?: boolean; + is_reactive_dependency?: boolean; + imported?: boolean; } export interface CssResult { - code: string; - map: SourceMap; + code: string; + map: SourceMap; } |