-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmod.dang
More file actions
66 lines (59 loc) · 1.33 KB
/
mod.dang
File metadata and controls
66 lines (59 loc) · 1.33 KB
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
"""
A Dagger module that uses the TypeScript SDK.
"""
type Mod {
"""
Workspace-relative path of this module root.
"""
pub path: String!
"""
Workspace containing this module.
"""
let ws: Workspace!
"""
Marker filename that skips generate when found at or above this module root.
"""
let skipGenerateFilename: String!
"""
Whether this module or an ancestor contains the configured generate skip marker.
"""
pub skipGenerate(ws: Workspace!): Boolean! {
hasMarker(ws, skipGenerateFilename)
}
"""
Manage this module's Dagger dependencies.
"""
pub deps: ModDeps! {
ModDeps(
path: path,
ws: ws,
)
}
"""
Manage the Dagger engine version required by this module.
"""
pub engine: ModEngine! {
ModEngine(
path: path,
ws: ws,
)
}
"""
Whether this module root or an ancestor contains a marker filename.
"""
let hasMarker(ws: Workspace!, filename: String!): Boolean! {
let markerPath = ws.findUp(name: filename, from: path)
markerPath != null
}
"""
Generate this module.
If the generate skip marker is present, the changeset is empty.
"""
pub generate(ws: Workspace!): Changeset! {
if (skipGenerate(ws)) {
polyfill.workspace(ws).fork.changes
} else {
polyfill.workspace(ws).moduleSource(path).generate.changes
}
}
}