agency-lang 0.0.21 → 0.0.22
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/dist/lib/backends/agencyGenerator.d.ts +10 -2
- package/dist/lib/backends/agencyGenerator.js +86 -19
- package/dist/lib/backends/agencyGenerator.test.js +0 -48
- package/dist/lib/backends/baseGenerator.d.ts +11 -4
- package/dist/lib/backends/baseGenerator.js +35 -11
- package/dist/lib/backends/graphGenerator.js +19 -186
- package/dist/lib/backends/typescriptGenerator/builtins.js +6 -0
- package/dist/lib/backends/typescriptGenerator.d.ts +11 -3
- package/dist/lib/backends/typescriptGenerator.js +98 -26
- package/dist/lib/backends/utils.d.ts +1 -1
- package/dist/lib/parser.js +5 -5
- package/dist/lib/parser.test.js +15 -38
- package/dist/lib/parsers/access.test.js +14 -3
- package/dist/lib/parsers/assignment.test.js +159 -4
- package/dist/lib/parsers/await.d.ts +3 -0
- package/dist/lib/parsers/await.js +18 -0
- package/dist/lib/parsers/body.test.js +10 -1
- package/dist/lib/parsers/dataStructures.js +2 -2
- package/dist/lib/parsers/dataStructures.test.js +11 -11
- package/dist/lib/parsers/function.d.ts +8 -3
- package/dist/lib/parsers/function.js +64 -12
- package/dist/lib/parsers/function.test.js +284 -52
- package/dist/lib/parsers/functionCall.test.js +6 -6
- package/dist/lib/parsers/ifElse.test.d.ts +1 -0
- package/dist/lib/parsers/ifElse.test.js +376 -0
- package/dist/lib/parsers/importStatement.js +2 -2
- package/dist/lib/parsers/literals.d.ts +1 -0
- package/dist/lib/parsers/literals.js +6 -2
- package/dist/lib/parsers/literals.test.js +110 -21
- package/dist/lib/parsers/matchBlock.js +7 -4
- package/dist/lib/parsers/matchBlock.test.js +16 -16
- package/dist/lib/parsers/newline.d.ts +3 -0
- package/dist/lib/parsers/newline.js +2 -0
- package/dist/lib/parsers/parserUtils.d.ts +3 -1
- package/dist/lib/parsers/parserUtils.js +4 -1
- package/dist/lib/parsers/returnStatement.js +2 -1
- package/dist/lib/parsers/returnStatement.test.js +2 -2
- package/dist/lib/parsers/specialVar.test.js +7 -7
- package/dist/lib/parsers/typeHints.d.ts +1 -1
- package/dist/lib/parsers/typeHints.js +4 -4
- package/dist/lib/parsers/typeHints.test.js +0 -8
- package/dist/lib/parsers/utils.d.ts +1 -0
- package/dist/lib/parsers/utils.js +2 -1
- package/dist/lib/parsers/whileLoop.test.js +46 -1
- package/dist/lib/templates/backends/graphGenerator/goToNode.d.ts +2 -1
- package/dist/lib/templates/backends/graphGenerator/goToNode.js +11 -1
- package/dist/lib/templates/backends/graphGenerator/graphNode.d.ts +2 -2
- package/dist/lib/templates/backends/graphGenerator/graphNode.js +2 -1
- package/dist/lib/templates/backends/graphGenerator/imports.d.ts +1 -1
- package/dist/lib/templates/backends/graphGenerator/imports.js +14 -1
- package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/sleep.d.ts +4 -0
- package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/sleep.js +13 -0
- package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/time.d.ts +7 -0
- package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/time.js +12 -0
- package/dist/lib/templates/backends/typescriptGenerator/functionDefinition.d.ts +1 -1
- package/dist/lib/templates/backends/typescriptGenerator/functionDefinition.js +1 -0
- package/dist/lib/templates/backends/typescriptGenerator/promptFunction.d.ts +1 -1
- package/dist/lib/templates/backends/typescriptGenerator/promptFunction.js +3 -2
- package/dist/lib/templates/backends/typescriptGenerator/tool.d.ts +1 -1
- package/dist/lib/templates/backends/typescriptGenerator/tool.js +1 -1
- package/dist/lib/templates/backends/typescriptGenerator/toolCall.d.ts +1 -1
- package/dist/lib/templates/backends/typescriptGenerator/toolCall.js +2 -2
- package/dist/lib/types/await.d.ts +7 -0
- package/dist/lib/types/await.js +1 -0
- package/dist/lib/types/graphNode.d.ts +2 -1
- package/dist/lib/types/ifElse.d.ts +7 -0
- package/dist/lib/types/ifElse.js +1 -0
- package/dist/lib/types/literals.d.ts +1 -1
- package/dist/lib/types/returnStatement.d.ts +2 -1
- package/dist/lib/types/timeBlock.d.ts +5 -0
- package/dist/lib/types/timeBlock.js +1 -0
- package/dist/lib/types.d.ts +16 -8
- package/dist/lib/types.js +1 -0
- package/dist/lib/utils.d.ts +1 -0
- package/dist/lib/utils.js +3 -0
- package/package.json +3 -2
- package/dist/lib/parsers/assignment.d.ts +0 -3
- package/dist/lib/parsers/assignment.js +0 -8
- package/dist/lib/templates/backends/graphGenerator/node.d.ts +0 -7
- package/dist/lib/templates/backends/graphGenerator/node.js +0 -18
- package/dist/lib/templates/backends/graphGenerator/promptNode.d.ts +0 -8
- package/dist/lib/templates/backends/graphGenerator/promptNode.js +0 -16
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { functionParser, docStringParser, graphNodeParser } from "./function.js";
|
|
2
|
+
import { functionParser, docStringParser, graphNodeParser, timeBlockParser, } from "./function.js";
|
|
3
3
|
describe("docStringParser", () => {
|
|
4
4
|
const testCases = [
|
|
5
5
|
// Happy path - basic docstrings
|
|
@@ -175,6 +175,9 @@ describe("functionParser", () => {
|
|
|
175
175
|
variableName: "x",
|
|
176
176
|
value: { type: "number", value: "5" },
|
|
177
177
|
},
|
|
178
|
+
{
|
|
179
|
+
type: "newLine",
|
|
180
|
+
},
|
|
178
181
|
{
|
|
179
182
|
type: "assignment",
|
|
180
183
|
variableName: "y",
|
|
@@ -254,11 +257,17 @@ describe("functionParser", () => {
|
|
|
254
257
|
variableName: "x",
|
|
255
258
|
value: { type: "number", value: "5" },
|
|
256
259
|
},
|
|
260
|
+
{
|
|
261
|
+
type: "newLine",
|
|
262
|
+
},
|
|
257
263
|
{
|
|
258
264
|
type: "assignment",
|
|
259
265
|
variableName: "y",
|
|
260
266
|
value: { type: "number", value: "10" },
|
|
261
267
|
},
|
|
268
|
+
{
|
|
269
|
+
type: "newLine",
|
|
270
|
+
},
|
|
262
271
|
],
|
|
263
272
|
},
|
|
264
273
|
},
|
|
@@ -333,6 +342,9 @@ describe("functionParser", () => {
|
|
|
333
342
|
segments: [{ type: "text", value: "say hello" }],
|
|
334
343
|
},
|
|
335
344
|
},
|
|
345
|
+
{
|
|
346
|
+
type: "newLine",
|
|
347
|
+
},
|
|
336
348
|
],
|
|
337
349
|
},
|
|
338
350
|
},
|
|
@@ -356,6 +368,9 @@ describe("functionParser", () => {
|
|
|
356
368
|
variableName: "x",
|
|
357
369
|
value: { type: "number", value: "5" },
|
|
358
370
|
},
|
|
371
|
+
{
|
|
372
|
+
type: "newLine",
|
|
373
|
+
},
|
|
359
374
|
{
|
|
360
375
|
type: "assignment",
|
|
361
376
|
variableName: "y",
|
|
@@ -401,6 +416,9 @@ describe("functionParser", () => {
|
|
|
401
416
|
variableName: "x",
|
|
402
417
|
value: { type: "number", value: "5" },
|
|
403
418
|
},
|
|
419
|
+
{
|
|
420
|
+
type: "newLine",
|
|
421
|
+
},
|
|
404
422
|
],
|
|
405
423
|
},
|
|
406
424
|
},
|
|
@@ -494,6 +512,9 @@ describe("functionParser", () => {
|
|
|
494
512
|
variableName: "result",
|
|
495
513
|
value: { type: "number", value: "42" },
|
|
496
514
|
},
|
|
515
|
+
{
|
|
516
|
+
type: "newLine",
|
|
517
|
+
},
|
|
497
518
|
{
|
|
498
519
|
type: "variableName",
|
|
499
520
|
value: "result",
|
|
@@ -572,43 +593,6 @@ describe("functionParser", () => {
|
|
|
572
593
|
},
|
|
573
594
|
},
|
|
574
595
|
},
|
|
575
|
-
{
|
|
576
|
-
input: 'def greet(name, greeting) {\n """Greets someone with a custom greeting"""\n result = `${greeting} ${name}`\n result\n}',
|
|
577
|
-
expected: {
|
|
578
|
-
success: true,
|
|
579
|
-
result: {
|
|
580
|
-
type: "function",
|
|
581
|
-
functionName: "greet",
|
|
582
|
-
parameters: [
|
|
583
|
-
{ type: "functionParameter", name: "name" },
|
|
584
|
-
{ type: "functionParameter", name: "greeting" },
|
|
585
|
-
],
|
|
586
|
-
returnType: null,
|
|
587
|
-
docString: {
|
|
588
|
-
type: "docString",
|
|
589
|
-
value: "Greets someone with a custom greeting",
|
|
590
|
-
},
|
|
591
|
-
body: [
|
|
592
|
-
{
|
|
593
|
-
type: "assignment",
|
|
594
|
-
variableName: "result",
|
|
595
|
-
value: {
|
|
596
|
-
type: "prompt",
|
|
597
|
-
segments: [
|
|
598
|
-
{ type: "interpolation", variableName: "greeting" },
|
|
599
|
-
{ type: "text", value: " " },
|
|
600
|
-
{ type: "interpolation", variableName: "name" },
|
|
601
|
-
],
|
|
602
|
-
},
|
|
603
|
-
},
|
|
604
|
-
{
|
|
605
|
-
type: "variableName",
|
|
606
|
-
value: "result",
|
|
607
|
-
},
|
|
608
|
-
],
|
|
609
|
-
},
|
|
610
|
-
},
|
|
611
|
-
},
|
|
612
596
|
// Functions with single parameter with type hint
|
|
613
597
|
{
|
|
614
598
|
input: "def add(x: number) { x }",
|
|
@@ -1112,7 +1096,7 @@ describe("functionParser", () => {
|
|
|
1112
1096
|
type: "docString",
|
|
1113
1097
|
value: "Adds two numbers",
|
|
1114
1098
|
},
|
|
1115
|
-
body: [{ type: "variableName", value: "x" }],
|
|
1099
|
+
body: [{ type: "variableName", value: "x" }, { type: "newLine" }],
|
|
1116
1100
|
},
|
|
1117
1101
|
},
|
|
1118
1102
|
},
|
|
@@ -1135,7 +1119,7 @@ describe("functionParser", () => {
|
|
|
1135
1119
|
type: "docString",
|
|
1136
1120
|
value: "Greets a person by name",
|
|
1137
1121
|
},
|
|
1138
|
-
body: [{ type: "variableName", value: "name" }],
|
|
1122
|
+
body: [{ type: "variableName", value: "name" }, { type: "newLine" }],
|
|
1139
1123
|
},
|
|
1140
1124
|
},
|
|
1141
1125
|
},
|
|
@@ -1159,7 +1143,7 @@ describe("functionParser", () => {
|
|
|
1159
1143
|
type: "docString",
|
|
1160
1144
|
value: "Mix of typed and untyped params",
|
|
1161
1145
|
},
|
|
1162
|
-
body: [{ type: "variableName", value: "typed" }],
|
|
1146
|
+
body: [{ type: "variableName", value: "typed" }, { type: "newLine" }],
|
|
1163
1147
|
},
|
|
1164
1148
|
},
|
|
1165
1149
|
},
|
|
@@ -1502,7 +1486,7 @@ describe("functionParser", () => {
|
|
|
1502
1486
|
type: "docString",
|
|
1503
1487
|
value: "Adds two numbers",
|
|
1504
1488
|
},
|
|
1505
|
-
body: [{ type: "variableName", value: "x" }],
|
|
1489
|
+
body: [{ type: "variableName", value: "x" }, { type: "newLine" }],
|
|
1506
1490
|
},
|
|
1507
1491
|
},
|
|
1508
1492
|
},
|
|
@@ -1525,7 +1509,7 @@ describe("functionParser", () => {
|
|
|
1525
1509
|
type: "docString",
|
|
1526
1510
|
value: "Greets a person",
|
|
1527
1511
|
},
|
|
1528
|
-
body: [{ type: "variableName", value: "name" }],
|
|
1512
|
+
body: [{ type: "variableName", value: "name" }, { type: "newLine" }],
|
|
1529
1513
|
},
|
|
1530
1514
|
},
|
|
1531
1515
|
},
|
|
@@ -1668,6 +1652,248 @@ describe("functionParser", () => {
|
|
|
1668
1652
|
}
|
|
1669
1653
|
});
|
|
1670
1654
|
});
|
|
1655
|
+
describe("timeBlockParser", () => {
|
|
1656
|
+
const testCases = [
|
|
1657
|
+
// Happy path - basic time blocks
|
|
1658
|
+
{
|
|
1659
|
+
input: "time {\n x = 1\n}",
|
|
1660
|
+
expected: {
|
|
1661
|
+
success: true,
|
|
1662
|
+
result: {
|
|
1663
|
+
type: "timeBlock",
|
|
1664
|
+
body: [
|
|
1665
|
+
{
|
|
1666
|
+
type: "assignment",
|
|
1667
|
+
variableName: "x",
|
|
1668
|
+
value: { type: "number", value: "1" },
|
|
1669
|
+
},
|
|
1670
|
+
{
|
|
1671
|
+
type: "newLine",
|
|
1672
|
+
},
|
|
1673
|
+
],
|
|
1674
|
+
},
|
|
1675
|
+
},
|
|
1676
|
+
},
|
|
1677
|
+
{
|
|
1678
|
+
input: "time {\n foo = `hello`\n}",
|
|
1679
|
+
expected: {
|
|
1680
|
+
success: true,
|
|
1681
|
+
result: {
|
|
1682
|
+
type: "timeBlock",
|
|
1683
|
+
body: [
|
|
1684
|
+
{
|
|
1685
|
+
type: "assignment",
|
|
1686
|
+
variableName: "foo",
|
|
1687
|
+
value: {
|
|
1688
|
+
type: "prompt",
|
|
1689
|
+
segments: [{ type: "text", value: "hello" }],
|
|
1690
|
+
},
|
|
1691
|
+
},
|
|
1692
|
+
{
|
|
1693
|
+
type: "newLine",
|
|
1694
|
+
},
|
|
1695
|
+
],
|
|
1696
|
+
},
|
|
1697
|
+
},
|
|
1698
|
+
},
|
|
1699
|
+
// Multiple statements in body
|
|
1700
|
+
{
|
|
1701
|
+
input: "time {\n a = 1\n b = 2\n c = 3\n}",
|
|
1702
|
+
expected: {
|
|
1703
|
+
success: true,
|
|
1704
|
+
result: {
|
|
1705
|
+
type: "timeBlock",
|
|
1706
|
+
body: [
|
|
1707
|
+
{
|
|
1708
|
+
type: "assignment",
|
|
1709
|
+
variableName: "a",
|
|
1710
|
+
value: { type: "number", value: "1" },
|
|
1711
|
+
},
|
|
1712
|
+
{
|
|
1713
|
+
type: "newLine",
|
|
1714
|
+
},
|
|
1715
|
+
{
|
|
1716
|
+
type: "assignment",
|
|
1717
|
+
variableName: "b",
|
|
1718
|
+
value: { type: "number", value: "2" },
|
|
1719
|
+
},
|
|
1720
|
+
{
|
|
1721
|
+
type: "newLine",
|
|
1722
|
+
},
|
|
1723
|
+
{
|
|
1724
|
+
type: "assignment",
|
|
1725
|
+
variableName: "c",
|
|
1726
|
+
value: { type: "number", value: "3" },
|
|
1727
|
+
},
|
|
1728
|
+
{
|
|
1729
|
+
type: "newLine",
|
|
1730
|
+
},
|
|
1731
|
+
],
|
|
1732
|
+
},
|
|
1733
|
+
},
|
|
1734
|
+
},
|
|
1735
|
+
// Empty body
|
|
1736
|
+
{
|
|
1737
|
+
input: "time {\n}",
|
|
1738
|
+
expected: {
|
|
1739
|
+
success: true,
|
|
1740
|
+
result: {
|
|
1741
|
+
type: "timeBlock",
|
|
1742
|
+
body: [],
|
|
1743
|
+
},
|
|
1744
|
+
},
|
|
1745
|
+
},
|
|
1746
|
+
// Whitespace variations
|
|
1747
|
+
{
|
|
1748
|
+
input: "time{\n x = 1\n}",
|
|
1749
|
+
expected: {
|
|
1750
|
+
success: true,
|
|
1751
|
+
result: {
|
|
1752
|
+
type: "timeBlock",
|
|
1753
|
+
body: [
|
|
1754
|
+
{
|
|
1755
|
+
type: "assignment",
|
|
1756
|
+
variableName: "x",
|
|
1757
|
+
value: { type: "number", value: "1" },
|
|
1758
|
+
},
|
|
1759
|
+
{
|
|
1760
|
+
type: "newLine",
|
|
1761
|
+
},
|
|
1762
|
+
],
|
|
1763
|
+
},
|
|
1764
|
+
},
|
|
1765
|
+
},
|
|
1766
|
+
{
|
|
1767
|
+
input: "time { \n x = 1\n }",
|
|
1768
|
+
expected: {
|
|
1769
|
+
success: true,
|
|
1770
|
+
result: {
|
|
1771
|
+
type: "timeBlock",
|
|
1772
|
+
body: [
|
|
1773
|
+
{
|
|
1774
|
+
type: "assignment",
|
|
1775
|
+
variableName: "x",
|
|
1776
|
+
value: { type: "number", value: "1" },
|
|
1777
|
+
},
|
|
1778
|
+
{
|
|
1779
|
+
type: "newLine",
|
|
1780
|
+
},
|
|
1781
|
+
],
|
|
1782
|
+
},
|
|
1783
|
+
},
|
|
1784
|
+
},
|
|
1785
|
+
// Function calls in body
|
|
1786
|
+
{
|
|
1787
|
+
input: "time {\n result = doSomething()\n}",
|
|
1788
|
+
expected: {
|
|
1789
|
+
success: true,
|
|
1790
|
+
result: {
|
|
1791
|
+
type: "timeBlock",
|
|
1792
|
+
body: [
|
|
1793
|
+
{
|
|
1794
|
+
type: "assignment",
|
|
1795
|
+
variableName: "result",
|
|
1796
|
+
value: {
|
|
1797
|
+
type: "functionCall",
|
|
1798
|
+
functionName: "doSomething",
|
|
1799
|
+
arguments: [],
|
|
1800
|
+
},
|
|
1801
|
+
},
|
|
1802
|
+
{
|
|
1803
|
+
type: "newLine",
|
|
1804
|
+
},
|
|
1805
|
+
],
|
|
1806
|
+
},
|
|
1807
|
+
},
|
|
1808
|
+
},
|
|
1809
|
+
// Complex body with different statement types
|
|
1810
|
+
{
|
|
1811
|
+
input: "time {\n x = 1\n y = `prompt`\n z = foo()\n}",
|
|
1812
|
+
expected: {
|
|
1813
|
+
success: true,
|
|
1814
|
+
result: {
|
|
1815
|
+
type: "timeBlock",
|
|
1816
|
+
body: [
|
|
1817
|
+
{
|
|
1818
|
+
type: "assignment",
|
|
1819
|
+
variableName: "x",
|
|
1820
|
+
value: { type: "number", value: "1" },
|
|
1821
|
+
},
|
|
1822
|
+
{
|
|
1823
|
+
type: "newLine",
|
|
1824
|
+
},
|
|
1825
|
+
{
|
|
1826
|
+
type: "assignment",
|
|
1827
|
+
variableName: "y",
|
|
1828
|
+
value: {
|
|
1829
|
+
type: "prompt",
|
|
1830
|
+
segments: [{ type: "text", value: "prompt" }],
|
|
1831
|
+
},
|
|
1832
|
+
},
|
|
1833
|
+
{
|
|
1834
|
+
type: "newLine",
|
|
1835
|
+
},
|
|
1836
|
+
{
|
|
1837
|
+
type: "assignment",
|
|
1838
|
+
variableName: "z",
|
|
1839
|
+
value: {
|
|
1840
|
+
type: "functionCall",
|
|
1841
|
+
functionName: "foo",
|
|
1842
|
+
arguments: [],
|
|
1843
|
+
},
|
|
1844
|
+
},
|
|
1845
|
+
{
|
|
1846
|
+
type: "newLine",
|
|
1847
|
+
},
|
|
1848
|
+
],
|
|
1849
|
+
},
|
|
1850
|
+
},
|
|
1851
|
+
},
|
|
1852
|
+
// Failure cases - missing braces
|
|
1853
|
+
{
|
|
1854
|
+
input: "time \n x = 1\n",
|
|
1855
|
+
expected: { success: false },
|
|
1856
|
+
},
|
|
1857
|
+
{
|
|
1858
|
+
input: "time {\n x = 1",
|
|
1859
|
+
expected: { success: false },
|
|
1860
|
+
},
|
|
1861
|
+
{
|
|
1862
|
+
input: "time \n x = 1\n}",
|
|
1863
|
+
expected: { success: false },
|
|
1864
|
+
},
|
|
1865
|
+
// Failure cases - empty or malformed
|
|
1866
|
+
{
|
|
1867
|
+
input: "",
|
|
1868
|
+
expected: { success: false },
|
|
1869
|
+
},
|
|
1870
|
+
{
|
|
1871
|
+
input: "time",
|
|
1872
|
+
expected: { success: false },
|
|
1873
|
+
},
|
|
1874
|
+
{
|
|
1875
|
+
input: "time {",
|
|
1876
|
+
expected: { success: false },
|
|
1877
|
+
},
|
|
1878
|
+
];
|
|
1879
|
+
testCases.forEach(({ input, expected }) => {
|
|
1880
|
+
if (expected.success) {
|
|
1881
|
+
it(`should parse "${input.replace(/\n/g, "\\n")}" successfully`, () => {
|
|
1882
|
+
const result = timeBlockParser(input);
|
|
1883
|
+
expect(result.success).toBe(true);
|
|
1884
|
+
if (result.success) {
|
|
1885
|
+
expect(result.result).toEqual(expected.result);
|
|
1886
|
+
}
|
|
1887
|
+
});
|
|
1888
|
+
}
|
|
1889
|
+
else {
|
|
1890
|
+
it(`should fail to parse "${input.replace(/\n/g, "\\n")}"`, () => {
|
|
1891
|
+
const result = timeBlockParser(input);
|
|
1892
|
+
expect(result.success).toBe(false);
|
|
1893
|
+
});
|
|
1894
|
+
}
|
|
1895
|
+
});
|
|
1896
|
+
});
|
|
1671
1897
|
describe("graphNodeParser", () => {
|
|
1672
1898
|
const testCases = [
|
|
1673
1899
|
// Basic graph nodes without return types
|
|
@@ -1733,7 +1959,7 @@ describe("graphNodeParser", () => {
|
|
|
1733
1959
|
result: {
|
|
1734
1960
|
type: "graphNode",
|
|
1735
1961
|
nodeName: "process",
|
|
1736
|
-
parameters: ["input"],
|
|
1962
|
+
parameters: [{ type: "functionParameter", name: "input" }],
|
|
1737
1963
|
returnType: null,
|
|
1738
1964
|
body: [
|
|
1739
1965
|
{
|
|
@@ -1752,7 +1978,10 @@ describe("graphNodeParser", () => {
|
|
|
1752
1978
|
result: {
|
|
1753
1979
|
type: "graphNode",
|
|
1754
1980
|
nodeName: "calculate",
|
|
1755
|
-
parameters: [
|
|
1981
|
+
parameters: [
|
|
1982
|
+
{ type: "functionParameter", name: "a" },
|
|
1983
|
+
{ type: "functionParameter", name: "b" },
|
|
1984
|
+
],
|
|
1756
1985
|
returnType: null,
|
|
1757
1986
|
body: [
|
|
1758
1987
|
{
|
|
@@ -1812,7 +2041,10 @@ describe("graphNodeParser", () => {
|
|
|
1812
2041
|
result: {
|
|
1813
2042
|
type: "graphNode",
|
|
1814
2043
|
nodeName: "add",
|
|
1815
|
-
parameters: [
|
|
2044
|
+
parameters: [
|
|
2045
|
+
{ type: "functionParameter", name: "x" },
|
|
2046
|
+
{ type: "functionParameter", name: "y" },
|
|
2047
|
+
],
|
|
1816
2048
|
returnType: { type: "primitiveType", value: "number" },
|
|
1817
2049
|
body: [
|
|
1818
2050
|
{
|
|
@@ -1831,7 +2063,7 @@ describe("graphNodeParser", () => {
|
|
|
1831
2063
|
result: {
|
|
1832
2064
|
type: "graphNode",
|
|
1833
2065
|
nodeName: "greet",
|
|
1834
|
-
parameters: ["name"],
|
|
2066
|
+
parameters: [{ type: "functionParameter", name: "name" }],
|
|
1835
2067
|
returnType: { type: "primitiveType", value: "string" },
|
|
1836
2068
|
body: [
|
|
1837
2069
|
{
|
|
@@ -1853,7 +2085,7 @@ describe("graphNodeParser", () => {
|
|
|
1853
2085
|
result: {
|
|
1854
2086
|
type: "graphNode",
|
|
1855
2087
|
nodeName: "process",
|
|
1856
|
-
parameters: ["input"],
|
|
2088
|
+
parameters: [{ type: "functionParameter", name: "input" }],
|
|
1857
2089
|
returnType: { type: "primitiveType", value: "boolean" },
|
|
1858
2090
|
body: [{ type: "variableName", value: "result" }],
|
|
1859
2091
|
},
|
|
@@ -1899,7 +2131,7 @@ describe("graphNodeParser", () => {
|
|
|
1899
2131
|
result: {
|
|
1900
2132
|
type: "graphNode",
|
|
1901
2133
|
nodeName: "processArray",
|
|
1902
|
-
parameters: ["items"],
|
|
2134
|
+
parameters: [{ type: "functionParameter", name: "items" }],
|
|
1903
2135
|
returnType: {
|
|
1904
2136
|
type: "arrayType",
|
|
1905
2137
|
elementType: { type: "primitiveType", value: "number" },
|
|
@@ -1935,7 +2167,7 @@ describe("graphNodeParser", () => {
|
|
|
1935
2167
|
result: {
|
|
1936
2168
|
type: "graphNode",
|
|
1937
2169
|
nodeName: "flexible",
|
|
1938
|
-
parameters: ["x"],
|
|
2170
|
+
parameters: [{ type: "functionParameter", name: "x" }],
|
|
1939
2171
|
returnType: {
|
|
1940
2172
|
type: "unionType",
|
|
1941
2173
|
types: [
|
|
@@ -1982,7 +2214,7 @@ describe("graphNodeParser", () => {
|
|
|
1982
2214
|
result: {
|
|
1983
2215
|
type: "graphNode",
|
|
1984
2216
|
nodeName: "baz",
|
|
1985
|
-
parameters: ["x"],
|
|
2217
|
+
parameters: [{ type: "functionParameter", name: "x" }],
|
|
1986
2218
|
returnType: { type: "primitiveType", value: "number" },
|
|
1987
2219
|
body: [{ type: "variableName", value: "x" }],
|
|
1988
2220
|
},
|
|
@@ -2009,7 +2241,7 @@ describe("graphNodeParser", () => {
|
|
|
2009
2241
|
result: {
|
|
2010
2242
|
type: "graphNode",
|
|
2011
2243
|
nodeName: "getData",
|
|
2012
|
-
parameters: ["id"],
|
|
2244
|
+
parameters: [{ type: "functionParameter", name: "id" }],
|
|
2013
2245
|
returnType: { type: "typeAliasVariable", aliasName: "UserData" },
|
|
2014
2246
|
body: [{ type: "variableName", value: "data" }],
|
|
2015
2247
|
},
|
|
@@ -152,8 +152,8 @@ describe("functionCallParser", () => {
|
|
|
152
152
|
{
|
|
153
153
|
type: "agencyArray",
|
|
154
154
|
items: [
|
|
155
|
-
{ type: "string", value: "hello" },
|
|
156
|
-
{ type: "string", value: "world" },
|
|
155
|
+
{ type: "string", segments: [{ type: "text", value: "hello" }] },
|
|
156
|
+
{ type: "string", segments: [{ type: "text", value: "world" }] },
|
|
157
157
|
],
|
|
158
158
|
},
|
|
159
159
|
],
|
|
@@ -221,7 +221,7 @@ describe("functionCallParser", () => {
|
|
|
221
221
|
entries: [
|
|
222
222
|
{
|
|
223
223
|
key: "key",
|
|
224
|
-
value: { type: "string", value: "value" },
|
|
224
|
+
value: { type: "string", segments: [{ type: "text", value: "value" }] },
|
|
225
225
|
},
|
|
226
226
|
],
|
|
227
227
|
},
|
|
@@ -242,7 +242,7 @@ describe("functionCallParser", () => {
|
|
|
242
242
|
entries: [
|
|
243
243
|
{
|
|
244
244
|
key: "name",
|
|
245
|
-
value: { type: "string", value: "Alice" },
|
|
245
|
+
value: { type: "string", segments: [{ type: "text", value: "Alice" }] },
|
|
246
246
|
},
|
|
247
247
|
{
|
|
248
248
|
key: "age",
|
|
@@ -349,7 +349,7 @@ describe("functionCallParser", () => {
|
|
|
349
349
|
entries: [
|
|
350
350
|
{
|
|
351
351
|
key: "key",
|
|
352
|
-
value: { type: "string", value: "value" },
|
|
352
|
+
value: { type: "string", segments: [{ type: "text", value: "value" }] },
|
|
353
353
|
},
|
|
354
354
|
],
|
|
355
355
|
},
|
|
@@ -365,7 +365,7 @@ describe("functionCallParser", () => {
|
|
|
365
365
|
type: "functionCall",
|
|
366
366
|
functionName: "complexCall",
|
|
367
367
|
arguments: [
|
|
368
|
-
{ type: "string", value: "test" },
|
|
368
|
+
{ type: "string", segments: [{ type: "text", value: "test" }] },
|
|
369
369
|
{
|
|
370
370
|
type: "agencyArray",
|
|
371
371
|
items: [],
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|