-
Notifications
You must be signed in to change notification settings - Fork 30
/
compiler.d.ts
73 lines (61 loc) · 1.56 KB
/
compiler.d.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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import { RawSourceMap } from 'source-map'
export type CompilerOptions = {
template?: string
file?: string
scopedCss?: boolean
}
export type CompilerOutput = {
code: string
map: RawSourceMap
}
export type CompilerOutputFragments = {
template: object
css: object
javascript: object
}
export type PreProcessorOutput = {
code: string
map?: RawSourceMap
}
export type PreProcessorMeta = {
tagName: string
fragments: CompilerOutputFragments
options: CompilerOptions
source: string
}
export type ProcessorFunction = (
code: string,
meta: PreProcessorMeta,
) => PreProcessorOutput
export type PreProcessorsMap = {
template: Map<string, ProcessorFunction>
javascript: Map<string, ProcessorFunction>
css: Map<string, ProcessorFunction>
}
export type PostProcessorsMap = Map<string, ProcessorFunction>
export type PreProcessorType = 'template' | 'javascript' | 'css'
// public API
export function generateTemplateFunctionFromString(
source: string,
parserOptions: any,
): string
export function generateSlotsFromString(
source: string,
parserOptions: any,
): string
export function compile(
source:
| string
// TODO: re use the parser types as soon as they will be available
| {
output: { template: unknown; script: unknown; style: unknown }
data: string
},
options?: CompilerOptions,
): CompilerOutput
export function registerPreprocessor(
type: PreProcessorType,
name: string,
fn: ProcessorFunction,
): PreProcessorsMap
export function registerPostprocessor(fn: ProcessorFunction): PostProcessorsMap