@teleporthq/teleport-plugin-next-workflows 0.43.40 → 0.43.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/component-scope-trigger-routing.test.ts +130 -0
- package/__tests__/page-loaded-scoping-skip.test.ts +97 -0
- package/__tests__/route-changed-trigger.test.ts +106 -0
- package/__tests__/state-update-missing-setter-warn.test.ts +180 -0
- package/dist/cjs/trigger-generator.d.ts.map +1 -1
- package/dist/cjs/trigger-generator.js +29 -0
- package/dist/cjs/trigger-generator.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/workflow-component-plugin.js +60 -2
- package/dist/cjs/workflow-component-plugin.js.map +1 -1
- package/dist/cjs/workflow-project-plugin.d.ts.map +1 -1
- package/dist/cjs/workflow-project-plugin.js +35 -1
- package/dist/cjs/workflow-project-plugin.js.map +1 -1
- package/dist/esm/trigger-generator.d.ts.map +1 -1
- package/dist/esm/trigger-generator.js +29 -0
- package/dist/esm/trigger-generator.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/workflow-component-plugin.js +60 -2
- package/dist/esm/workflow-component-plugin.js.map +1 -1
- package/dist/esm/workflow-project-plugin.d.ts.map +1 -1
- package/dist/esm/workflow-project-plugin.js +35 -1
- package/dist/esm/workflow-project-plugin.js.map +1 -1
- package/package.json +4 -4
- package/src/trigger-generator.ts +35 -0
- package/src/workflow-component-plugin.ts +71 -2
- package/src/workflow-project-plugin.ts +43 -1
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
// Routing guard for the `'component'` trigger scope: an `event-component-loaded`
|
|
2
|
+
// workflow must be generated ONLY into the component it is bound to (matched by
|
|
3
|
+
// the emitted component name, with a normalized-compare and componentId
|
|
4
|
+
// fallback) — never into pages, never into unrelated components. This is the
|
|
5
|
+
// fix for the original bug where a component workflow authored with page scope
|
|
6
|
+
// was stripped from the component and silently fanned out to every page.
|
|
7
|
+
|
|
8
|
+
import { createNextWorkflowPlugin } from '../src/workflow-component-plugin'
|
|
9
|
+
|
|
10
|
+
const componentLoadedWorkflow = (config: Record<string, unknown>) => ({
|
|
11
|
+
id: 'wf-comp-loaded',
|
|
12
|
+
name: 'Auto-open Sidebar Group',
|
|
13
|
+
trigger: {
|
|
14
|
+
type: 'event-component-loaded',
|
|
15
|
+
nodeId: 'trigger-component-loaded',
|
|
16
|
+
scope: 'component',
|
|
17
|
+
config,
|
|
18
|
+
},
|
|
19
|
+
nodes: [
|
|
20
|
+
{
|
|
21
|
+
id: 'update-1',
|
|
22
|
+
type: 'state-update-local-state',
|
|
23
|
+
config: { property: 'sidebarGroupOpen', value: 'guilds' },
|
|
24
|
+
stepNumber: 1,
|
|
25
|
+
label: 'Set group',
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
edges: [{ id: 'e1', source: 'trigger-component-loaded', target: 'update-1' }],
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
const jsxComponentChunk = () => ({
|
|
32
|
+
type: 'chunk-type-ast',
|
|
33
|
+
name: 'jsx-component',
|
|
34
|
+
content: {
|
|
35
|
+
type: 'VariableDeclaration',
|
|
36
|
+
declarations: [
|
|
37
|
+
{
|
|
38
|
+
type: 'VariableDeclarator',
|
|
39
|
+
init: {
|
|
40
|
+
type: 'ArrowFunctionExpression',
|
|
41
|
+
body: {
|
|
42
|
+
type: 'BlockStatement',
|
|
43
|
+
body: [{ type: 'ReturnStatement', argument: null }],
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
const buildStructure = (uidl: Record<string, unknown>, workflow: any): any => ({
|
|
52
|
+
uidl: {
|
|
53
|
+
node: { type: 'element', content: { elementType: 'container', name: 'Container' } },
|
|
54
|
+
stateDefinitions: { sidebarGroupOpen: { type: 'string', defaultValue: '' } },
|
|
55
|
+
...uidl,
|
|
56
|
+
},
|
|
57
|
+
chunks: [jsxComponentChunk()],
|
|
58
|
+
options: {
|
|
59
|
+
workflows: { workflows: { [workflow.id]: workflow }, customNodes: {} },
|
|
60
|
+
},
|
|
61
|
+
dependencies: {},
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
const getWorkflowModule = async (
|
|
65
|
+
uidl: Record<string, unknown>,
|
|
66
|
+
workflow: any,
|
|
67
|
+
isPage: boolean
|
|
68
|
+
): Promise<string | null> => {
|
|
69
|
+
const plugin = createNextWorkflowPlugin({ isPage })
|
|
70
|
+
const structure = buildStructure(uidl, workflow)
|
|
71
|
+
await plugin(structure as any)
|
|
72
|
+
const moduleChunk = (structure.chunks as any[]).find((c: any) => c.name === 'workflow-module')
|
|
73
|
+
return moduleChunk ? String(moduleChunk.content) : null
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
describe('component-scope trigger routing', () => {
|
|
77
|
+
it('generates the workflow into the component matching componentName', async () => {
|
|
78
|
+
const code = await getWorkflowModule(
|
|
79
|
+
{ name: 'Navigation' },
|
|
80
|
+
componentLoadedWorkflow({ componentId: 'TQ_QmitTH632i', componentName: 'Navigation' }),
|
|
81
|
+
false
|
|
82
|
+
)
|
|
83
|
+
expect(code).not.toBeNull()
|
|
84
|
+
expect(code).toContain('Component loaded')
|
|
85
|
+
expect(code).toContain("componentName: 'Navigation'")
|
|
86
|
+
})
|
|
87
|
+
|
|
88
|
+
it('matches case/separator-insensitively (generator may re-case the name)', async () => {
|
|
89
|
+
const code = await getWorkflowModule(
|
|
90
|
+
{ name: 'CookieConsent' },
|
|
91
|
+
componentLoadedWorkflow({ componentName: 'Cookie Consent' }),
|
|
92
|
+
false
|
|
93
|
+
)
|
|
94
|
+
expect(code).not.toBeNull()
|
|
95
|
+
expect(code).toContain('Component loaded')
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
it('falls back to componentId when the name does not match', async () => {
|
|
99
|
+
const code = await getWorkflowModule(
|
|
100
|
+
{ name: 'Navigation', outputOptions: { fileName: 'navigation' } },
|
|
101
|
+
componentLoadedWorkflow({ componentId: 'navigation', componentName: 'Renamed Later' }),
|
|
102
|
+
false
|
|
103
|
+
)
|
|
104
|
+
expect(code).not.toBeNull()
|
|
105
|
+
expect(code).toContain('Component loaded')
|
|
106
|
+
})
|
|
107
|
+
|
|
108
|
+
it('does NOT generate into an unrelated component', async () => {
|
|
109
|
+
const code = await getWorkflowModule(
|
|
110
|
+
{ name: 'Footer' },
|
|
111
|
+
componentLoadedWorkflow({ componentId: 'TQ_QmitTH632i', componentName: 'Navigation' }),
|
|
112
|
+
false
|
|
113
|
+
)
|
|
114
|
+
expect(code).toBeNull()
|
|
115
|
+
})
|
|
116
|
+
|
|
117
|
+
it('does NOT generate into pages', async () => {
|
|
118
|
+
const code = await getWorkflowModule(
|
|
119
|
+
{ name: 'Navigation', outputOptions: { pageId: 'page-1', fileName: 'home' } },
|
|
120
|
+
componentLoadedWorkflow({ componentId: 'TQ_QmitTH632i', componentName: 'Navigation' }),
|
|
121
|
+
true
|
|
122
|
+
)
|
|
123
|
+
expect(code).toBeNull()
|
|
124
|
+
})
|
|
125
|
+
|
|
126
|
+
it('matches nothing when both componentId and componentName are missing', async () => {
|
|
127
|
+
const code = await getWorkflowModule({ name: 'Navigation' }, componentLoadedWorkflow({}), false)
|
|
128
|
+
expect(code).toBeNull()
|
|
129
|
+
})
|
|
130
|
+
})
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
// `event-page-loaded` scoping guard: a page-loaded workflow with NO page
|
|
2
|
+
// scoping (no pageId, no selectedPages, no allPages) must be SKIPPED, not
|
|
3
|
+
// injected into every page. Silent all-pages fan-out masked mis-scoped
|
|
4
|
+
// workflows whose state target lives in a component (the setter no-ops on
|
|
5
|
+
// pages). Explicit `allPages: true` is the supported way to run everywhere.
|
|
6
|
+
|
|
7
|
+
import { createNextWorkflowPlugin } from '../src/workflow-component-plugin'
|
|
8
|
+
|
|
9
|
+
const pageLoadedWorkflow = (config: Record<string, unknown>) => ({
|
|
10
|
+
id: 'wf-page-loaded',
|
|
11
|
+
name: 'Page Init',
|
|
12
|
+
trigger: {
|
|
13
|
+
type: 'event-page-loaded',
|
|
14
|
+
nodeId: 'trigger-page-loaded',
|
|
15
|
+
scope: 'page',
|
|
16
|
+
config,
|
|
17
|
+
},
|
|
18
|
+
nodes: [
|
|
19
|
+
{
|
|
20
|
+
id: 'update-1',
|
|
21
|
+
type: 'state-update-local-state',
|
|
22
|
+
config: { property: 'ready', value: 'true' },
|
|
23
|
+
stepNumber: 1,
|
|
24
|
+
label: 'Set ready',
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
edges: [{ id: 'e1', source: 'trigger-page-loaded', target: 'update-1' }],
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
const jsxComponentChunk = () => ({
|
|
31
|
+
type: 'chunk-type-ast',
|
|
32
|
+
name: 'jsx-component',
|
|
33
|
+
content: {
|
|
34
|
+
type: 'VariableDeclaration',
|
|
35
|
+
declarations: [
|
|
36
|
+
{
|
|
37
|
+
type: 'VariableDeclarator',
|
|
38
|
+
init: {
|
|
39
|
+
type: 'ArrowFunctionExpression',
|
|
40
|
+
body: {
|
|
41
|
+
type: 'BlockStatement',
|
|
42
|
+
body: [{ type: 'ReturnStatement', argument: null }],
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
const getWorkflowModule = async (workflow: any, pageId: string): Promise<string | null> => {
|
|
51
|
+
const plugin = createNextWorkflowPlugin({ isPage: true })
|
|
52
|
+
const structure: any = {
|
|
53
|
+
uidl: {
|
|
54
|
+
name: 'Page',
|
|
55
|
+
outputOptions: { pageId, fileName: pageId },
|
|
56
|
+
node: { type: 'element', content: { elementType: 'container', name: 'Container' } },
|
|
57
|
+
stateDefinitions: { ready: { type: 'string', defaultValue: '' } },
|
|
58
|
+
},
|
|
59
|
+
chunks: [jsxComponentChunk()],
|
|
60
|
+
options: {
|
|
61
|
+
workflows: { workflows: { [workflow.id]: workflow }, customNodes: {} },
|
|
62
|
+
},
|
|
63
|
+
dependencies: {},
|
|
64
|
+
}
|
|
65
|
+
await plugin(structure)
|
|
66
|
+
const moduleChunk = (structure.chunks as any[]).find((c: any) => c.name === 'workflow-module')
|
|
67
|
+
return moduleChunk ? String(moduleChunk.content) : null
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
describe('event-page-loaded scoping', () => {
|
|
71
|
+
it('SKIPS a workflow with no page scoping at all (empty config)', async () => {
|
|
72
|
+
const code = await getWorkflowModule(pageLoadedWorkflow({}), 'page-1')
|
|
73
|
+
expect(code).toBeNull()
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
it('generates into every page when allPages is true', async () => {
|
|
77
|
+
const codeA = await getWorkflowModule(pageLoadedWorkflow({ allPages: true }), 'page-1')
|
|
78
|
+
const codeB = await getWorkflowModule(pageLoadedWorkflow({ allPages: true }), 'page-2')
|
|
79
|
+
expect(codeA).toContain('Page loaded')
|
|
80
|
+
expect(codeB).toContain('Page loaded')
|
|
81
|
+
})
|
|
82
|
+
|
|
83
|
+
it('generates only into the matching page when pageId is set', async () => {
|
|
84
|
+
const match = await getWorkflowModule(pageLoadedWorkflow({ pageId: 'page-1' }), 'page-1')
|
|
85
|
+
const mismatch = await getWorkflowModule(pageLoadedWorkflow({ pageId: 'page-1' }), 'page-2')
|
|
86
|
+
expect(match).toContain('Page loaded')
|
|
87
|
+
expect(mismatch).toBeNull()
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
it('generates into pages listed in selectedPages', async () => {
|
|
91
|
+
const config = { selectedPages: [{ id: 'page-1' }, { id: 'page-3' }] }
|
|
92
|
+
const inList = await getWorkflowModule(pageLoadedWorkflow(config), 'page-3')
|
|
93
|
+
const notInList = await getWorkflowModule(pageLoadedWorkflow(config), 'page-2')
|
|
94
|
+
expect(inList).toContain('Page loaded')
|
|
95
|
+
expect(notInList).toBeNull()
|
|
96
|
+
})
|
|
97
|
+
})
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
// `event-route-changed` codegen: component-scoped triggers register a
|
|
2
|
+
// `Router.events` listener inside the owning component's lifecycle effect
|
|
3
|
+
// (with an `.off` cleanup so remounts don't leak listeners); unbound triggers
|
|
4
|
+
// are global-scoped and register in the `_app`-mounted global workflows hook,
|
|
5
|
+
// which must then import Router itself.
|
|
6
|
+
|
|
7
|
+
import { createNextWorkflowPlugin } from '../src/workflow-component-plugin'
|
|
8
|
+
import { NextWorkflowProjectPlugin } from '../src/workflow-project-plugin'
|
|
9
|
+
|
|
10
|
+
const routeChangedWorkflow = (scope: string, config: Record<string, unknown>) => ({
|
|
11
|
+
id: 'wf-route-changed',
|
|
12
|
+
name: 'Track Route',
|
|
13
|
+
trigger: {
|
|
14
|
+
type: 'event-route-changed',
|
|
15
|
+
nodeId: 'trigger-route-changed',
|
|
16
|
+
scope,
|
|
17
|
+
config,
|
|
18
|
+
},
|
|
19
|
+
nodes: [
|
|
20
|
+
{
|
|
21
|
+
id: 'update-1',
|
|
22
|
+
type: 'state-update-local-state',
|
|
23
|
+
config: { property: 'currentRoute', value: '' },
|
|
24
|
+
stepNumber: 1,
|
|
25
|
+
label: 'Set route',
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
edges: [{ id: 'e1', source: 'trigger-route-changed', target: 'update-1' }],
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
const jsxComponentChunk = () => ({
|
|
32
|
+
type: 'chunk-type-ast',
|
|
33
|
+
name: 'jsx-component',
|
|
34
|
+
content: {
|
|
35
|
+
type: 'VariableDeclaration',
|
|
36
|
+
declarations: [
|
|
37
|
+
{
|
|
38
|
+
type: 'VariableDeclarator',
|
|
39
|
+
init: {
|
|
40
|
+
type: 'ArrowFunctionExpression',
|
|
41
|
+
body: {
|
|
42
|
+
type: 'BlockStatement',
|
|
43
|
+
body: [{ type: 'ReturnStatement', argument: null }],
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
describe('event-route-changed — component scope', () => {
|
|
52
|
+
it('registers Router.events with an .off cleanup in the component lifecycle', async () => {
|
|
53
|
+
const workflow = routeChangedWorkflow('component', { componentName: 'Navigation' })
|
|
54
|
+
const plugin = createNextWorkflowPlugin({ isPage: false })
|
|
55
|
+
const structure: any = {
|
|
56
|
+
uidl: {
|
|
57
|
+
name: 'Navigation',
|
|
58
|
+
node: { type: 'element', content: { elementType: 'container', name: 'Container' } },
|
|
59
|
+
stateDefinitions: { currentRoute: { type: 'string', defaultValue: '' } },
|
|
60
|
+
},
|
|
61
|
+
chunks: [jsxComponentChunk()],
|
|
62
|
+
options: {
|
|
63
|
+
workflows: { workflows: { [workflow.id]: workflow }, customNodes: {} },
|
|
64
|
+
},
|
|
65
|
+
dependencies: {},
|
|
66
|
+
}
|
|
67
|
+
await plugin(structure)
|
|
68
|
+
const moduleChunk = (structure.chunks as any[]).find((c: any) => c.name === 'workflow-module')
|
|
69
|
+
expect(moduleChunk).toBeDefined()
|
|
70
|
+
const code = String(moduleChunk.content)
|
|
71
|
+
expect(code).toContain("Router.events.on('routeChangeComplete'")
|
|
72
|
+
expect(code).toContain("Router.events.off('routeChangeComplete'")
|
|
73
|
+
expect(code).toContain('cleanups.push')
|
|
74
|
+
expect(code).toContain('previousUrl')
|
|
75
|
+
})
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
describe('event-route-changed — global scope', () => {
|
|
79
|
+
const plugin = new NextWorkflowProjectPlugin()
|
|
80
|
+
// generateGlobalWorkflowsHook is private; call it directly for a unit test.
|
|
81
|
+
const code = (plugin as any).generateGlobalWorkflowsHook([
|
|
82
|
+
routeChangedWorkflow('global', {}),
|
|
83
|
+
]) as string
|
|
84
|
+
|
|
85
|
+
it('registers Router.events with an .off cleanup in the global hook', () => {
|
|
86
|
+
expect(code).toContain("Router.events.on('routeChangeComplete'")
|
|
87
|
+
expect(code).toContain("Router.events.off('routeChangeComplete'")
|
|
88
|
+
expect(code).toContain('previousUrl')
|
|
89
|
+
})
|
|
90
|
+
|
|
91
|
+
it('imports Router in the generated global-workflows file', () => {
|
|
92
|
+
expect(code).toContain("import Router from 'next/router';")
|
|
93
|
+
})
|
|
94
|
+
|
|
95
|
+
it('does NOT import Router when no route-changed workflow exists', () => {
|
|
96
|
+
const withoutRoute = (plugin as any).generateGlobalWorkflowsHook([
|
|
97
|
+
{
|
|
98
|
+
id: 'wf-other',
|
|
99
|
+
trigger: { type: 'event-user-logged-in', config: {} },
|
|
100
|
+
nodes: [],
|
|
101
|
+
edges: [],
|
|
102
|
+
},
|
|
103
|
+
]) as string
|
|
104
|
+
expect(withoutRoute).not.toContain("import Router from 'next/router';")
|
|
105
|
+
})
|
|
106
|
+
})
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
// `__stateUpdateHandler` observability guard: writing to a state property the
|
|
2
|
+
// current page/component does NOT own must console.warn (and still resolve)
|
|
3
|
+
// instead of silently no-oping. The silent no-op masked the original
|
|
4
|
+
// "Auto-open Navigation Sidebar Group" bug for weeks: the workflow ran on
|
|
5
|
+
// every page, found no `sidebarGroupOpen` setter, and did nothing without a
|
|
6
|
+
// trace. Harness mirrors state-update-default-value.test.ts.
|
|
7
|
+
|
|
8
|
+
import { createNextWorkflowPlugin } from '../src/workflow-component-plugin'
|
|
9
|
+
|
|
10
|
+
const extractFunctionSource = (haystack: string, funcDecl: string): string => {
|
|
11
|
+
const startIdx = haystack.indexOf(funcDecl)
|
|
12
|
+
if (startIdx === -1) {
|
|
13
|
+
throw new Error('Helper not found: ' + funcDecl)
|
|
14
|
+
}
|
|
15
|
+
return braceMatchFrom(haystack, startIdx)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const braceMatchFrom = (haystack: string, startIdx: number): string => {
|
|
19
|
+
let depth = 0
|
|
20
|
+
let i = haystack.indexOf('{', startIdx)
|
|
21
|
+
if (i === -1) {
|
|
22
|
+
throw new Error('No opening brace from index ' + startIdx)
|
|
23
|
+
}
|
|
24
|
+
for (; i < haystack.length; i++) {
|
|
25
|
+
const ch = haystack.charAt(i)
|
|
26
|
+
if (ch === '{') {
|
|
27
|
+
depth++
|
|
28
|
+
} else if (ch === '}') {
|
|
29
|
+
depth--
|
|
30
|
+
if (depth === 0) {
|
|
31
|
+
return haystack.slice(startIdx, i + 1)
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
throw new Error('Unbalanced braces from index ' + startIdx)
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const buildStructure = (): any => ({
|
|
39
|
+
uidl: {
|
|
40
|
+
name: 'Page',
|
|
41
|
+
outputOptions: { pageId: 'page-1', fileName: 'page-1' },
|
|
42
|
+
node: { type: 'element', content: { elementType: 'container', name: 'Container' } },
|
|
43
|
+
stateDefinitions: { known: { type: 'string', defaultValue: '' } },
|
|
44
|
+
},
|
|
45
|
+
chunks: [
|
|
46
|
+
{
|
|
47
|
+
type: 'chunk-type-ast',
|
|
48
|
+
name: 'jsx-component',
|
|
49
|
+
content: {
|
|
50
|
+
type: 'VariableDeclaration',
|
|
51
|
+
declarations: [
|
|
52
|
+
{
|
|
53
|
+
type: 'VariableDeclarator',
|
|
54
|
+
init: {
|
|
55
|
+
type: 'ArrowFunctionExpression',
|
|
56
|
+
body: {
|
|
57
|
+
type: 'BlockStatement',
|
|
58
|
+
body: [{ type: 'ReturnStatement', argument: null }],
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
options: {
|
|
67
|
+
workflows: {
|
|
68
|
+
workflows: {
|
|
69
|
+
'wf-1': {
|
|
70
|
+
id: 'wf-1',
|
|
71
|
+
name: 'Test WF',
|
|
72
|
+
trigger: {
|
|
73
|
+
type: 'event-page-loaded',
|
|
74
|
+
nodeId: 'trigger-1',
|
|
75
|
+
scope: 'page',
|
|
76
|
+
config: { pageId: 'page-1' },
|
|
77
|
+
},
|
|
78
|
+
nodes: [
|
|
79
|
+
{
|
|
80
|
+
id: 'update-1',
|
|
81
|
+
type: 'state-update-local-state',
|
|
82
|
+
config: { property: 'known', value: 'x' },
|
|
83
|
+
stepNumber: 1,
|
|
84
|
+
label: 'X',
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
edges: [{ id: 'e', source: 'trigger-1', target: 'update-1' }],
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
customNodes: {},
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
dependencies: {},
|
|
94
|
+
})
|
|
95
|
+
|
|
96
|
+
type HandlerFn = (config: any, context: any) => Promise<any>
|
|
97
|
+
|
|
98
|
+
const buildUpdateHandler = async (
|
|
99
|
+
stateTypes: Record<string, string>
|
|
100
|
+
): Promise<{ update: HandlerFn; writes: Record<string, unknown> }> => {
|
|
101
|
+
const plugin = createNextWorkflowPlugin({ isPage: true })
|
|
102
|
+
const structure = buildStructure()
|
|
103
|
+
await plugin(structure as any)
|
|
104
|
+
const moduleChunk = (structure.chunks as any[]).find((c: any) => c.name === 'workflow-module')
|
|
105
|
+
if (!moduleChunk) {
|
|
106
|
+
throw new Error('workflow-module chunk not emitted by plugin')
|
|
107
|
+
}
|
|
108
|
+
const moduleCode = String(moduleChunk.content)
|
|
109
|
+
|
|
110
|
+
const coerceSrc = extractFunctionSource(moduleCode, 'function __coerceValue')
|
|
111
|
+
const defaultSrc = extractFunctionSource(moduleCode, 'function __defaultValueForType')
|
|
112
|
+
const updateSrc = extractFunctionSource(moduleCode, 'function __stateUpdateHandler')
|
|
113
|
+
|
|
114
|
+
const writes: Record<string, unknown> = {}
|
|
115
|
+
const stateSetters: Record<string, (v: unknown) => void> = {}
|
|
116
|
+
for (const key of Object.keys(stateTypes)) {
|
|
117
|
+
stateSetters[key] = (v: unknown) => {
|
|
118
|
+
writes[key] = v
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
const stateValuesRef = { current: {} as Record<string, unknown> }
|
|
122
|
+
|
|
123
|
+
// eslint-disable-next-line @typescript-eslint/no-implied-eval
|
|
124
|
+
const factory = new Function(
|
|
125
|
+
'stateSetters',
|
|
126
|
+
'stateTypes',
|
|
127
|
+
'stateValuesRef',
|
|
128
|
+
`
|
|
129
|
+
var __stateNameMap = {};
|
|
130
|
+
Object.keys(stateSetters).forEach(function(k) { __stateNameMap[k] = k; });
|
|
131
|
+
function __resolveName(name) { return __stateNameMap[name] || name; }
|
|
132
|
+
${coerceSrc}
|
|
133
|
+
${defaultSrc}
|
|
134
|
+
${updateSrc}
|
|
135
|
+
return __stateUpdateHandler;
|
|
136
|
+
`
|
|
137
|
+
)
|
|
138
|
+
const update = factory(stateSetters, stateTypes, stateValuesRef) as HandlerFn
|
|
139
|
+
return { update, writes }
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
describe('state-update with a missing setter', () => {
|
|
143
|
+
let warnSpy: jest.SpyInstance
|
|
144
|
+
|
|
145
|
+
beforeEach(() => {
|
|
146
|
+
warnSpy = jest.spyOn(console, 'warn').mockImplementation(() => undefined)
|
|
147
|
+
})
|
|
148
|
+
|
|
149
|
+
afterEach(() => {
|
|
150
|
+
warnSpy.mockRestore()
|
|
151
|
+
})
|
|
152
|
+
|
|
153
|
+
it('warns and still resolves for a plain-value update', async () => {
|
|
154
|
+
const { update, writes } = await buildUpdateHandler({ known: 'string' })
|
|
155
|
+
const result = await update({ property: 'unknownProp', value: 'x' }, { __stateValues: {} })
|
|
156
|
+
expect(result.success).toBe(true)
|
|
157
|
+
expect(writes.unknownProp).toBeUndefined()
|
|
158
|
+
expect(warnSpy).toHaveBeenCalledTimes(1)
|
|
159
|
+
expect(String(warnSpy.mock.calls[0][0])).toContain('unknownProp')
|
|
160
|
+
expect(String(warnSpy.mock.calls[0][0])).toContain('known')
|
|
161
|
+
})
|
|
162
|
+
|
|
163
|
+
it('warns and still resolves for an object property-mode update', async () => {
|
|
164
|
+
const { update } = await buildUpdateHandler({ known: 'string' })
|
|
165
|
+
const result = await update(
|
|
166
|
+
{ property: 'unknownObj', objectUpdateMode: 'property', objectPropertyPath: 'a', value: 1 },
|
|
167
|
+
{ __stateValues: {} }
|
|
168
|
+
)
|
|
169
|
+
expect(result.success).toBe(true)
|
|
170
|
+
expect(warnSpy).toHaveBeenCalledTimes(1)
|
|
171
|
+
expect(String(warnSpy.mock.calls[0][0])).toContain('unknownObj')
|
|
172
|
+
})
|
|
173
|
+
|
|
174
|
+
it('does NOT warn when the setter exists', async () => {
|
|
175
|
+
const { update, writes } = await buildUpdateHandler({ known: 'string' })
|
|
176
|
+
await update({ property: 'known', value: 'hello' }, { __stateValues: {} })
|
|
177
|
+
expect(writes.known).toBe('hello')
|
|
178
|
+
expect(warnSpy).not.toHaveBeenCalled()
|
|
179
|
+
})
|
|
180
|
+
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger-generator.d.ts","sourceRoot":"","sources":["../../src/trigger-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,wBAAwB,eAAgB,MAAM,KAAG,MAC4B,CAAA;AAE1F,eAAO,MAAM,mBAAmB,aAAc,YAAY,mBAAmB,MAAM,KAAG,
|
|
1
|
+
{"version":3,"file":"trigger-generator.d.ts","sourceRoot":"","sources":["../../src/trigger-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,wBAAwB,eAAgB,MAAM,KAAG,MAC4B,CAAA;AAE1F,eAAO,MAAM,mBAAmB,aAAc,YAAY,mBAAmB,MAAM,KAAG,MA0DrF,CAAA"}
|
|
@@ -41,6 +41,10 @@ const generateTriggerCode = (workflow, workflowVarName) => {
|
|
|
41
41
|
return generateFormSubmittedTrigger(config, executionCall, workflow.id);
|
|
42
42
|
case 'event-page-loaded':
|
|
43
43
|
return generatePageLoadedTrigger(config, executionCall, workflow.id);
|
|
44
|
+
case 'event-component-loaded':
|
|
45
|
+
return generateComponentLoadedTrigger(config, executionCall, workflow.id);
|
|
46
|
+
case 'event-route-changed':
|
|
47
|
+
return generateRouteChangedTrigger(executionCall, workflow.id);
|
|
44
48
|
case 'event-user-logged-in':
|
|
45
49
|
return generateCustomEventTrigger('workflow:user-logged-in', executionCall, workflow.id);
|
|
46
50
|
case 'event-user-logged-out':
|
|
@@ -228,6 +232,31 @@ const generatePageLoadedTrigger = (config, executionCall, workflowId) => {
|
|
|
228
232
|
${delay ? `setTimeout(function() { ${executionCall}; }, ${delay});` : `${executionCall};`}
|
|
229
233
|
}`;
|
|
230
234
|
};
|
|
235
|
+
const generateComponentLoadedTrigger = (config, executionCall, workflowId) => {
|
|
236
|
+
const delay = config.delay;
|
|
237
|
+
const componentId = config.componentId || '';
|
|
238
|
+
const componentName = config.componentName || '';
|
|
239
|
+
return `
|
|
240
|
+
// Workflow trigger: component loaded (${workflowId})
|
|
241
|
+
{
|
|
242
|
+
const triggerContext = { componentId: '${componentId}', componentName: '${componentName}', url: window.location.href, timestamp: Date.now() };
|
|
243
|
+
${delay ? `setTimeout(function() { ${executionCall}; }, ${delay});` : `${executionCall};`}
|
|
244
|
+
}`;
|
|
245
|
+
};
|
|
246
|
+
// NOTE: the consumer must have \`Router\` from 'next/router' in scope.
|
|
247
|
+
const generateRouteChangedTrigger = (executionCall, workflowId) => {
|
|
248
|
+
const safeId = workflowId.replace(/[^a-zA-Z0-9]/g, '_');
|
|
249
|
+
return `
|
|
250
|
+
// Workflow trigger: route changed (${workflowId})
|
|
251
|
+
let __prevUrl_${safeId} = window.location.href;
|
|
252
|
+
const __rc_${safeId} = function(url) {
|
|
253
|
+
const triggerContext = { url: url, previousUrl: __prevUrl_${safeId}, pathname: window.location.pathname, timestamp: Date.now() };
|
|
254
|
+
__prevUrl_${safeId} = window.location.href;
|
|
255
|
+
${executionCall};
|
|
256
|
+
};
|
|
257
|
+
Router.events.on('routeChangeComplete', __rc_${safeId});
|
|
258
|
+
return function() { Router.events.off('routeChangeComplete', __rc_${safeId}); };`;
|
|
259
|
+
};
|
|
231
260
|
const generateCustomEventTrigger = (eventName, executionCall, workflowId) => {
|
|
232
261
|
const safeId = workflowId.replace(/[^a-zA-Z0-9]/g, '_');
|
|
233
262
|
return `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger-generator.js","sourceRoot":"","sources":["../../src/trigger-generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trigger-generator.js","sourceRoot":"","sources":["../../src/trigger-generator.ts"],"names":[],"mappings":"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"}
|