Skip to content

Commit ec9bbac

Browse files
committedAug 30, 2024·
fix: update cli and fix linting errors
1 parent f66f7b4 commit ec9bbac

File tree

17 files changed

+2553
-1977
lines changed

17 files changed

+2553
-1977
lines changed
 

‎.eslintrc

-6
This file was deleted.

‎.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,6 @@ node_modules
44
npm-debug.log
55
dist
66
docs
7+
/coverage
8+
.rete-cli
9+
.sonar

‎eslint.config.mjs

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import tseslint from 'typescript-eslint'
2+
import configs from 'rete-cli/configs/eslint.mjs'
3+
import gloals from 'globals'
4+
5+
export default tseslint.config(
6+
...configs,
7+
{
8+
languageOptions: {
9+
globals: {
10+
...gloals.browser
11+
}
12+
},
13+
rules: {
14+
'@typescript-eslint/unbound-method': 'off'
15+
}
16+
}
17+
)

‎package-lock.json

+2,477-1,936
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,10 @@
3434
"@vitejs/plugin-vue": "^4.1.0",
3535
"@vitejs/plugin-vue2": "^2.2.0",
3636
"@vue/compiler-sfc": "^3.2.22",
37+
"globals": "^15.9.0",
3738
"rete": "^2.0.1",
3839
"rete-area-plugin": "^2.0.0",
39-
"rete-cli": "^1.0.2",
40+
"rete-cli": "~2.0.0",
4041
"rete-render-utils": "^2.0.0",
4142
"rollup-plugin-commonjs": "^9.2.2",
4243
"rollup-plugin-pug": "1.1.1",

‎src/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export type Props = {
3131
* @param [context] to be used for createApp({ ...context }) or new Vue({ ...context })
3232
* @returns app / vue instance.
3333
*/
34-
setup?: (context: Context) => Instance;
34+
setup?: (context: Context) => Instance
3535
}
3636

3737
/**
@@ -112,7 +112,7 @@ export class VuePlugin<Schemes extends BaseSchemes, T = Requires<Schemes>> exten
112112
element,
113113
result.component,
114114
result.props,
115-
() => parent?.emit({ type: 'rendered', data: (context as Requires<Schemes>).data } as T)
115+
() => parent.emit({ type: 'rendered', data: (context as Requires<Schemes>).data } as T)
116116
)
117117

118118
this.owners.set(element, preset)

‎src/presets/classic/index.ts

+31-18
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,18 @@ type CustomizationProps<Schemes extends ClassicScheme> = {
2727
control?: (data: ExtractPayload<Schemes, 'control'>) => Component<any> | null
2828
}
2929
type ClassicProps<Schemes extends ClassicScheme, K> = {
30-
socketPositionWatcher?: SocketPositionWatcher<Scope<never, [K]>>,
30+
socketPositionWatcher?: SocketPositionWatcher<Scope<never, [K]>>
3131
customize?: CustomizationProps<Schemes>
3232
}
3333

3434
/**
3535
* Classic preset for rendering nodes, connections, controls and sockets.
3636
*/
37-
export function setup<Schemes extends ClassicScheme, K extends VueArea2D<Schemes>>(
38-
props?: ClassicProps<Schemes, K>
39-
): RenderPreset<Schemes, K> {
37+
export function setup<Schemes extends ClassicScheme, K extends VueArea2D<Schemes>>(props?: ClassicProps<Schemes, K>): RenderPreset<Schemes, K> {
4038
const positionWatcher = typeof props?.socketPositionWatcher === 'undefined'
4139
? getDOMSocketPosition<Schemes, K>()
42-
: props?.socketPositionWatcher
43-
const { node, connection, socket, control } = props?.customize || {}
40+
: props.socketPositionWatcher
41+
const { node, connection, socket, control } = props?.customize ?? {}
4442

4543
return {
4644
attach(plugin) {
@@ -60,8 +58,12 @@ export function setup<Schemes extends ClassicScheme, K extends VueArea2D<Schemes
6058

6159
return {
6260
data: payload,
63-
...(start ? { start } : {}),
64-
...(end ? { end } : {})
61+
...start
62+
? { start }
63+
: {},
64+
...end
65+
? { end }
66+
: {}
6567
}
6668
}
6769
return { data: payload }
@@ -72,25 +74,31 @@ export function setup<Schemes extends ClassicScheme, K extends VueArea2D<Schemes
7274
const emit = parent.emit.bind(parent)
7375

7476
if (context.data.type === 'node') {
75-
const component = node ? node(context.data) : Node
77+
const component = node
78+
? node(context.data)
79+
: Node
7680

7781
return component && {
78-
component, props: {
82+
component,
83+
props: {
7984
data: context.data.payload,
8085
emit
8186
}
8287
}
8388
} else if (context.data.type === 'connection') {
84-
const component = connection ? connection(context.data) : Connection
89+
const component = connection
90+
? connection(context.data)
91+
: Connection
8592
const { payload } = context.data
8693
const { source, target, sourceOutput, targetInput } = payload
8794

8895
return component && {
89-
component: ConnectionWrapper, props: {
96+
component: ConnectionWrapper,
97+
props: {
9098
data: context.data.payload,
9199
component,
92-
start: context.data.start || ((change: any) => positionWatcher.listen(source, 'output', sourceOutput, change)),
93-
end: context.data.end || ((change: any) => positionWatcher.listen(target, 'input', targetInput, change)),
100+
start: context.data.start ?? ((change: any) => positionWatcher.listen(source, 'output', sourceOutput, change)),
101+
end: context.data.end ?? ((change: any) => positionWatcher.listen(target, 'input', targetInput, change)),
94102
path: async (start: Position, end: Position) => {
95103
const response = await plugin.emit({ type: 'connectionpath', data: { payload, points: [start, end] } })
96104

@@ -110,10 +118,13 @@ export function setup<Schemes extends ClassicScheme, K extends VueArea2D<Schemes
110118
}
111119
} else if (context.data.type === 'socket') {
112120
const { payload } = context.data
113-
const component = socket ? socket(context.data) : Socket
121+
const component = socket
122+
? socket(context.data)
123+
: Socket
114124

115125
return {
116-
component, props: {
126+
component,
127+
props: {
117128
data: payload
118129
}
119130
}
@@ -124,15 +135,17 @@ export function setup<Schemes extends ClassicScheme, K extends VueArea2D<Schemes
124135
const component = control(context.data)
125136

126137
return component && {
127-
component, props: {
138+
component,
139+
props: {
128140
data: payload
129141
}
130142
}
131143
}
132144

133145
return context.data.payload instanceof ClassicPreset.InputControl
134146
? {
135-
component: Control, props: {
147+
component: Control,
148+
props: {
136149
data: payload
137150
}
138151
}

‎src/presets/classic/types.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { ClassicPreset as Classic, GetSchemes, NodeId } from 'rete'
22

33
import { Position, RenderSignal } from '../../types'
44

5-
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I)=> void)
5+
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void)
66
? I
77
: never
88
type GetControls<
@@ -33,4 +33,4 @@ export type VueArea2D<T extends ClassicScheme> =
3333
}>
3434
| { type: 'unmount', data: { element: HTMLElement } }
3535

36-
export type ExtractPayload<T extends ClassicScheme, K extends string> = Extract<VueArea2D<T>, { type: 'render', data: { type: K }}>['data']
36+
export type ExtractPayload<T extends ClassicScheme, K extends string> = Extract<VueArea2D<T>, { type: 'render', data: { type: K } }>['data']

‎src/presets/context-menu/index.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ import { ContextMenuRender } from './types'
88
* Preset for rendering context menu.
99
*/
1010
export function setup<Schemes extends BaseSchemes, K extends ContextMenuRender>(props?: { delay?: number }): RenderPreset<Schemes, K> {
11-
const delay = typeof props?.delay === 'undefined' ? 1000 : props.delay
11+
const delay = typeof props?.delay === 'undefined'
12+
? 1000
13+
: props.delay
1214

1315
return {
1416
update(context) {

‎src/presets/minimap/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export function setup<Schemes extends BaseSchemes, K extends MinimapRender>(prop
1313
if (context.data.type === 'minimap') {
1414
return {
1515
nodes: context.data.nodes,
16-
size: props?.size || 200,
16+
size: props?.size ?? 200,
1717
ratio: context.data.ratio,
1818
viewport: context.data.viewport,
1919
translate: context.data.translate,
@@ -27,7 +27,7 @@ export function setup<Schemes extends BaseSchemes, K extends MinimapRender>(prop
2727
component: Minimap,
2828
props: {
2929
nodes: context.data.nodes,
30-
size: props?.size || 200,
30+
size: props?.size ?? 200,
3131
ratio: context.data.ratio,
3232
viewport: context.data.viewport,
3333
translate: context.data.translate,

‎src/presets/minimap/types.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { RenderSignal } from '../../types'
33
export type Rect = {
44
width: number
55
height: number
6-
left: number,
6+
left: number
77
top: number
88
}
99
export type Transform = {

‎src/presets/reroute/index.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ type Props = {
1616
*/
1717
export function setup<Schemes extends BaseSchemes, K extends PinsRender>(props?: Props): RenderPreset<Schemes, K> {
1818
const getProps = () => ({
19-
menu: props?.contextMenu || (() => null),
20-
translate: props?.translate || (() => null),
21-
down: props?.pointerdown || (() => null)
19+
menu: props?.contextMenu ?? (() => null),
20+
translate: props?.translate ?? (() => null),
21+
down: props?.pointerdown ?? (() => null)
2222
})
2323

2424
return {

‎src/presets/types.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/* eslint-disable @typescript-eslint/no-invalid-void-type */
12
import { BaseSchemes } from 'rete'
23

34
import { VuePlugin } from '..'

‎src/vuecompat/types.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ type Vue = typeof VueNamespace
44

55
export type Context = Vue extends { createApp: (arg: infer U) => any }
66
? U
7-
: (Vue extends { new(options: infer U): any } ? U : any)
7+
: (Vue extends new(options: infer U) => any ? U : any)
88

99
export type Instance = Vue extends { createApp: (arg: any) => infer U }
1010
? U
11-
: (Vue extends { new(options: any): infer U } ? U : any)
11+
: (Vue extends new(options: any) => infer U ? U : any)

‎src/vuecompat/vue2.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ export function create(element: any, component: any, payload: any, onRendered: a
1616
}
1717
}
1818

19-
const app: Vue & { payload?: Record<string, unknown> } = props?.setup ? props.setup(context) as Vue : new Vue(context)
19+
const app: Vue & { payload?: Record<string, unknown> } = props?.setup
20+
? props.setup(context) as Vue
21+
: new Vue(context)
2022

2123
app.payload = payload
2224

‎src/vuecompat/vue3.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ export function create<P extends object>(element: HTMLElement, component: any, p
2222
}
2323
}
2424

25-
const app = props?.setup ? props.setup(context) : createApp(context)
25+
const app = props?.setup
26+
? props.setup(context)
27+
: createApp(context)
2628

2729
app.mount(element)
2830

‎tsconfig.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2+
"extends": "rete-cli/configs/tsconfig.json",
23
"compilerOptions": {
3-
"strict": true,
44
"lib": ["DOM"]
55
},
66
"include": ["src"]

0 commit comments

Comments
 (0)
Please sign in to comment.