Skip to content

Commit 9526ec0

Browse files
Fixed all types
1 parent 34a4f48 commit 9526ec0

File tree

4 files changed

+48
-42
lines changed

4 files changed

+48
-42
lines changed

src/@types/Canvas.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ export interface Canvas {
2323
options: CanvasOptions
2424
metadata: CanvasMetadata
2525

26+
/**
27+
* @deprecated Use getData instead -> Can be outdated
28+
*/
29+
data: CanvasData
2630
getData(): CanvasData
2731
setData(data: CanvasData): void
2832
/** Basically setData (if clearCanvas == true), but without modifying the history */
@@ -153,6 +157,8 @@ export interface CanvasView extends ItemView {
153157

154158
getViewData(): string
155159
setViewData(data: string): void
160+
161+
requestSave(): void
156162
}
157163

158164
export interface CanvasWorkspaceLeaf extends WorkspaceLeaf {

src/patchers/canvas-patcher.ts

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { EditorView, ViewUpdate } from "@codemirror/view"
22
import JSONSS from "json-stable-stringify"
33
import { around } from "monkey-around"
44
import { editorInfoField, requireApiVersion, WorkspaceLeaf } from "obsidian"
5-
import { BBox, Canvas, CanvasData, CanvasEdge, CanvasEdgeData, CanvasElement, CanvasNode, CanvasNodeData, CanvasPopupMenu, CanvasView, NodeInteractionLayer } from "src/@types/Canvas"
5+
import { BBox, Canvas, CanvasData, CanvasEdge, CanvasEdgeData, CanvasElement, CanvasNode, CanvasNodeData, CanvasPopupMenu, CanvasView, NodeInteractionLayer, Position, SelectionData } from "src/@types/Canvas"
66
import PatchHelper from "src/utils/patch-helper"
77
import JSONC from "tiny-jsonc"
88
import { CanvasEvent } from "../events"
@@ -59,7 +59,7 @@ export default class CanvasPatcher extends Patcher {
5959
}
6060
}
6161
}),
62-
setViewData: PatchHelper.OverrideExisting(next => function (json: string, ...args: any) {
62+
setViewData: PatchHelper.OverrideExisting(next => function (json: string, ...args: any): void {
6363
json = json !== '' ? json : '{}'
6464

6565
let result
@@ -83,13 +83,13 @@ export default class CanvasPatcher extends Patcher {
8383

8484
// Patch canvas
8585
PatchHelper.patchPrototype<Canvas>(this.plugin, canvasView.canvas, {
86-
markViewportChanged: PatchHelper.OverrideExisting(next => function (...args: any) {
86+
markViewportChanged: PatchHelper.OverrideExisting(next => function (...args: any): void {
8787
that.triggerWorkspaceEvent(CanvasEvent.ViewportChanged.Before, this)
8888
const result = next.call(this, ...args)
8989
that.triggerWorkspaceEvent(CanvasEvent.ViewportChanged.After, this)
9090
return result
9191
}),
92-
markMoved: PatchHelper.OverrideExisting(next => function (node: CanvasNode) {
92+
markMoved: PatchHelper.OverrideExisting(next => function (node: CanvasNode): void {
9393
const result = next.call(this, node)
9494

9595
if (!this.viewportChanged) {
@@ -108,124 +108,124 @@ export default class CanvasPatcher extends Patcher {
108108

109109
return result
110110
}),
111-
onDoubleClick: PatchHelper.OverrideExisting(next => function (event: MouseEvent) {
111+
onDoubleClick: PatchHelper.OverrideExisting(next => function (event: MouseEvent): void {
112112
const preventDefault = { value: false }
113113
that.triggerWorkspaceEvent(CanvasEvent.DoubleClick, this, event, preventDefault)
114114
if (!preventDefault.value) next.call(this, event)
115115
}),
116-
setDragging: PatchHelper.OverrideExisting(next => function (dragging: boolean) {
116+
setDragging: PatchHelper.OverrideExisting(next => function (dragging: boolean): void {
117117
const result = next.call(this, dragging)
118118
that.triggerWorkspaceEvent(CanvasEvent.DraggingStateChanged, this, dragging)
119119
return result
120120
}),
121-
getContainingNodes: PatchHelper.OverrideExisting(next => function (bbox: BBox) {
121+
getContainingNodes: PatchHelper.OverrideExisting(next => function (bbox: BBox): CanvasNode[] {
122122
const result = next.call(this, bbox)
123123
that.triggerWorkspaceEvent(CanvasEvent.ContainingNodesRequested, this, bbox, result)
124124
return result
125125
}),
126-
updateSelection: PatchHelper.OverrideExisting(next => function (update: () => void) {
126+
updateSelection: PatchHelper.OverrideExisting(next => function (update: () => void): void {
127127
const oldSelection = new Set(this.selection)
128128
const result = next.call(this, update)
129129
that.triggerWorkspaceEvent(CanvasEvent.SelectionChanged, this, oldSelection, ((update: () => void) => next.call(this, update)))
130130
return result
131131
}),
132-
createTextNode: PatchHelper.OverrideExisting(next => function (...args: any) {
132+
createTextNode: PatchHelper.OverrideExisting(next => function (...args: any): CanvasNode {
133133
const node = next.call(this, ...args)
134134
that.triggerWorkspaceEvent(CanvasEvent.NodeCreated, this, node)
135135
return node
136136
}),
137-
createFileNode: PatchHelper.OverrideExisting(next => function (...args: any) {
137+
createFileNode: PatchHelper.OverrideExisting(next => function (...args: any): CanvasNode {
138138
const node = next.call(this, ...args)
139139
that.triggerWorkspaceEvent(CanvasEvent.NodeCreated, this, node)
140140
return node
141141
}),
142-
createFileNodes: PatchHelper.OverrideExisting(next => function (...args: any) {
142+
createFileNodes: PatchHelper.OverrideExisting(next => function (...args: any): CanvasNode[] {
143143
const nodes = next.call(this, ...args)
144144
nodes.forEach((node: CanvasNode) => that.triggerWorkspaceEvent(CanvasEvent.NodeCreated, this, node))
145145
return nodes
146146
}),
147-
createGroupNode: PatchHelper.OverrideExisting(next => function (...args: any) {
147+
createGroupNode: PatchHelper.OverrideExisting(next => function (...args: any): CanvasNode {
148148
const node = next.call(this, ...args)
149149
that.triggerWorkspaceEvent(CanvasEvent.NodeCreated, this, node)
150150
return node
151151
}),
152-
createLinkNode: PatchHelper.OverrideExisting(next => function (...args: any) {
152+
createLinkNode: PatchHelper.OverrideExisting(next => function (...args: any): CanvasNode {
153153
const node = next.call(this, ...args)
154154
that.triggerWorkspaceEvent(CanvasEvent.NodeCreated, this, node)
155155
return node
156156
}),
157-
addNode: PatchHelper.OverrideExisting(next => function (node: CanvasNode) {
157+
addNode: PatchHelper.OverrideExisting(next => function (node: CanvasNode): void {
158158
that.patchNode(node)
159159
return next.call(this, node)
160160
}),
161-
addEdge: PatchHelper.OverrideExisting(next => function (edge: CanvasEdge) {
161+
addEdge: PatchHelper.OverrideExisting(next => function (edge: CanvasEdge): void {
162162
that.patchEdge(edge)
163163
if (!this.viewportChanged) that.triggerWorkspaceEvent(CanvasEvent.EdgeCreated, this, edge)
164164
return next.call(this, edge)
165165
}),
166-
removeNode: PatchHelper.OverrideExisting(next => function (node: CanvasNode) {
166+
removeNode: PatchHelper.OverrideExisting(next => function (node: CanvasNode): void {
167167
const result = next.call(this, node)
168168
if (!this.isClearing) that.triggerWorkspaceEvent(CanvasEvent.NodeRemoved, this, node)
169169
return result
170170
}),
171-
removeEdge: PatchHelper.OverrideExisting(next => function (edge: CanvasEdge) {
171+
removeEdge: PatchHelper.OverrideExisting(next => function (edge: CanvasEdge): void {
172172
const result = next.call(this, edge)
173173
if (!this.isClearing) that.triggerWorkspaceEvent(CanvasEvent.EdgeRemoved, this, edge)
174174
return result
175175
}),
176-
handleCopy: PatchHelper.OverrideExisting(next => function (...args: any) {
176+
handleCopy: PatchHelper.OverrideExisting(next => function (...args: any): void {
177177
this.isCopying = true
178178
const result = next.call(this, ...args)
179179
this.isCopying = false
180180

181181
return result
182182
}),
183-
getSelectionData: PatchHelper.OverrideExisting(next => function (...args: any) {
183+
getSelectionData: PatchHelper.OverrideExisting(next => function (...args: any): SelectionData {
184184
const result = next.call(this, ...args)
185185
if (this.isCopying) that.triggerWorkspaceEvent(CanvasEvent.OnCopy, this, result)
186186
return result
187187
}),
188-
zoomToBbox: PatchHelper.OverrideExisting(next => function (bbox: BBox) {
188+
zoomToBbox: PatchHelper.OverrideExisting(next => function (bbox: BBox): void {
189189
that.triggerWorkspaceEvent(CanvasEvent.ZoomToBbox.Before, this, bbox)
190190
const result = next.call(this, bbox)
191191
that.triggerWorkspaceEvent(CanvasEvent.ZoomToBbox.After, this, bbox)
192192
return result
193193
}),
194-
setReadonly: PatchHelper.OverrideExisting(next => function (readonly: boolean) {
194+
setReadonly: PatchHelper.OverrideExisting(next => function (readonly: boolean): void {
195195
const result = next.call(this, readonly)
196196
that.triggerWorkspaceEvent(CanvasEvent.ReadonlyChanged, this, readonly)
197197
return result
198198
}),
199-
undo: PatchHelper.OverrideExisting(next => function (...args: any) {
199+
undo: PatchHelper.OverrideExisting(next => function (...args: any): void {
200200
const result = next.call(this, ...args)
201201
this.importData(this.getData(), true) // Force update the canvas data
202202
that.triggerWorkspaceEvent(CanvasEvent.Undo, this)
203203
return result
204204
}),
205-
redo: PatchHelper.OverrideExisting(next => function (...args: any) {
205+
redo: PatchHelper.OverrideExisting(next => function (...args: any): void {
206206
const result = next.call(this, ...args)
207207
this.importData(this.getData(), true) // Force update the canvas data
208208
that.triggerWorkspaceEvent(CanvasEvent.Redo, this)
209209
return result
210210
}),
211-
clear: PatchHelper.OverrideExisting(next => function (...args: any) {
211+
clear: PatchHelper.OverrideExisting(next => function (...args: any): void {
212212
this.isClearing = true
213213
const result = next.call(this, ...args)
214214
this.isClearing = false
215215
return result
216216
}),
217-
/*setData: PatchHelper.OverrideExisting(next => function (...args: any) {
217+
/*setData: PatchHelper.OverrideExisting(next => function (...args: any): void {
218218
//
219219
const result = next.call(this, ...args)
220220
//
221221
return result
222222
}),*/
223-
getData: PatchHelper.OverrideExisting(next => function (...args: any) {
223+
getData: PatchHelper.OverrideExisting(next => function (...args: any): CanvasData {
224224
const result = next.call(this, ...args)
225225
that.triggerWorkspaceEvent(CanvasEvent.DataRequested, this, result)
226226
return result
227227
}),
228-
importData: PatchHelper.OverrideExisting(next => function (data: CanvasData, clearCanvas?: boolean, silent?: boolean) {
228+
importData: PatchHelper.OverrideExisting(next => function (data: CanvasData, clearCanvas?: boolean, silent?: boolean): void {
229229
const targetFilePath = this.view.file.path
230230
const setData = (data: CanvasData) => {
231231
// Skip if the canvas got unloaded or the file changed
@@ -239,7 +239,7 @@ export default class CanvasPatcher extends Patcher {
239239

240240
return result
241241
}),
242-
requestSave: PatchHelper.OverrideExisting(next => function (...args: any) {
242+
requestSave: PatchHelper.OverrideExisting(next => function (...args: any): void {
243243
that.triggerWorkspaceEvent(CanvasEvent.CanvasSaved.Before, this)
244244
const result = next.call(this, ...args)
245245
that.triggerWorkspaceEvent(CanvasEvent.CanvasSaved.After, this)
@@ -249,7 +249,7 @@ export default class CanvasPatcher extends Patcher {
249249

250250
// Patch canvas popup menu
251251
PatchHelper.patchPrototype<CanvasPopupMenu>(this.plugin, canvasView.canvas.menu, {
252-
render: PatchHelper.OverrideExisting(next => function (...args: any) {
252+
render: PatchHelper.OverrideExisting(next => function (...args: any): void {
253253
const result = next.call(this, ...args)
254254
that.triggerWorkspaceEvent(CanvasEvent.PopupMenuCreated, this.canvas)
255255
next.call(this) // Re-Center the popup menu
@@ -259,7 +259,7 @@ export default class CanvasPatcher extends Patcher {
259259

260260
// Patch interaction layer
261261
PatchHelper.patchPrototype<NodeInteractionLayer>(this.plugin, canvasView.canvas.nodeInteractionLayer, {
262-
setTarget: PatchHelper.OverrideExisting(next => function (node: CanvasNode) {
262+
setTarget: PatchHelper.OverrideExisting(next => function (node: CanvasNode): void {
263263
const result = next.call(this, node)
264264
that.triggerWorkspaceEvent(CanvasEvent.NodeInteraction, this.canvas, node)
265265
return result
@@ -291,7 +291,7 @@ export default class CanvasPatcher extends Patcher {
291291
const that = this
292292

293293
PatchHelper.patch<CanvasNode>(this.plugin, node, {
294-
setData: PatchHelper.OverrideExisting(next => function (data: CanvasNodeData, addHistory?: boolean) {
294+
setData: PatchHelper.OverrideExisting(next => function (data: CanvasNodeData, addHistory?: boolean): void {
295295
const result = next.call(this, data)
296296

297297
if (node.initialized && !node.isDirty) {
@@ -309,17 +309,17 @@ export default class CanvasPatcher extends Patcher {
309309

310310
return result
311311
}),
312-
setIsEditing: PatchHelper.OverrideExisting(next => function (editing: boolean, ...args: any) {
312+
setIsEditing: PatchHelper.OverrideExisting(next => function (editing: boolean, ...args: any): void {
313313
const result = next.call(this, editing, ...args)
314314
that.triggerWorkspaceEvent(CanvasEvent.NodeEditingStateChanged, this.canvas, node, editing)
315315
return result
316316
}),
317-
updateBreakpoint: PatchHelper.OverrideExisting(next => function (breakpoint: boolean) {
317+
updateBreakpoint: PatchHelper.OverrideExisting(next => function (breakpoint: boolean): void {
318318
const breakpointRef = { value: breakpoint }
319319
that.triggerWorkspaceEvent(CanvasEvent.NodeBreakpointChanged, this.canvas, node, breakpointRef)
320320
return next.call(this, breakpointRef.value)
321321
}),
322-
getBBox: PatchHelper.OverrideExisting(next => function (...args: any) {
322+
getBBox: PatchHelper.OverrideExisting(next => function (...args: any): BBox {
323323
const result = next.call(this, ...args)
324324
that.triggerWorkspaceEvent(CanvasEvent.NodeBBoxRequested, this.canvas, node, result)
325325
return result
@@ -336,7 +336,7 @@ export default class CanvasPatcher extends Patcher {
336336
const that = this
337337

338338
PatchHelper.patch<CanvasEdge>(this.plugin, edge, {
339-
setData: PatchHelper.OverrideExisting(next => function (data: CanvasEdgeData, addHistory?: boolean) {
339+
setData: PatchHelper.OverrideExisting(next => function (data: CanvasEdgeData, addHistory?: boolean): void {
340340
const result = next.call(this, data)
341341

342342
if (edge.initialized && !edge.isDirty) {
@@ -354,12 +354,12 @@ export default class CanvasPatcher extends Patcher {
354354

355355
return result
356356
}),
357-
render: PatchHelper.OverrideExisting(next => function (...args: any) {
357+
render: PatchHelper.OverrideExisting(next => function (...args: any): void {
358358
const result = next.call(this, ...args)
359359
that.triggerWorkspaceEvent(CanvasEvent.EdgeChanged, this.canvas, edge)
360360
return result
361361
}),
362-
getCenter: PatchHelper.OverrideExisting(next => function (...args: any) {
362+
getCenter: PatchHelper.OverrideExisting(next => function (...args: any): Position {
363363
const result = next.call(this, ...args)
364364
that.triggerWorkspaceEvent(CanvasEvent.EdgeCenterRequested, this.canvas, edge, result)
365365
return result
@@ -382,7 +382,7 @@ export default class CanvasPatcher extends Patcher {
382382

383383
// Patch CanvasElement object
384384
const uninstall = around(canvasElement, {
385-
initialize: next => function (...args: any) {
385+
initialize: next => function (...args: any): void {
386386
const result = next.call(this, ...args)
387387

388388
onReady()
@@ -395,7 +395,7 @@ export default class CanvasPatcher extends Patcher {
395395
that.plugin.register(uninstall)
396396
}
397397

398-
private triggerWorkspaceEvent(event: string, ...args: any) {
398+
private triggerWorkspaceEvent(event: string, ...args: any): void {
399399
this.plugin.app.workspace.trigger(event, ...args)
400400
}
401401
}

src/patchers/metadata-cache-patcher.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export default class MetadataCachePatcher extends Patcher {
1212

1313
const that = this
1414
PatchHelper.patchPrototype<ExtendedMetadataCache>(this.plugin, this.plugin.app.metadataCache, {
15-
getCache: PatchHelper.OverrideExisting(next => function (filepath: string, ...args: any[]) {
15+
getCache: PatchHelper.OverrideExisting(next => function (filepath: string, ...args: any[]): ExtendedCachedMetadata | null {
1616
// Bypass the "md" extension check by handling the "canvas" extension here
1717
if (PathHelper.extension(filepath) === 'canvas') {
1818
if (!this.fileCache.hasOwnProperty(filepath)) return null

src/patchers/outgoing-links-patcher.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export default class OutgoingLinksPatcher extends Patcher {
1010
const outgoingLinkPatch = PatchHelper.tryPatchWorkspacePrototype<OutgoingLink>(this.plugin, () => (
1111
(this.plugin.app.workspace.getLeavesOfType('outgoing-link').first()?.view as any)?.outgoingLink
1212
), {
13-
recomputeLinks: PatchHelper.OverrideExisting(next => function (...args: any[]) {
13+
recomputeLinks: PatchHelper.OverrideExisting(next => function (...args: any[]): void {
1414
const isCanvas = this.file?.extension === 'canvas'
1515

1616
// Trick the app into thinking that the file is a markdown file
@@ -23,7 +23,7 @@ export default class OutgoingLinksPatcher extends Patcher {
2323

2424
return result
2525
}),
26-
recomputeUnlinked: PatchHelper.OverrideExisting(next => function (...args: any[]) {
26+
recomputeUnlinked: PatchHelper.OverrideExisting(next => function (...args: any[]): void {
2727
const isCanvas = this.file?.extension === 'canvas'
2828

2929
// Trick the app into thinking that the file is a markdown file

0 commit comments

Comments
 (0)