added more lua snippets
This commit is contained in:
parent
04dbfdf86c
commit
b62552d8cb
3 changed files with 142 additions and 24 deletions
|
@ -626,13 +626,13 @@ function onTypeChange(node) {
|
||||||
}
|
}
|
||||||
var1Input_1.rows = 10;
|
var1Input_1.rows = 10;
|
||||||
var1Div.appendChild(var1Input_1);
|
var1Div.appendChild(var1Input_1);
|
||||||
// dev download link
|
// dev copy link
|
||||||
var devCopyA_1 = document.createElement('a');
|
var devCopyA_1 = document.createElement('a');
|
||||||
var results = node == null ? [] : node.results;
|
var results = node == null ? [] : node.results;
|
||||||
var luaScript_1 = "inputs = {\"" + results.join('","') + "\"}\noutputs = {}\n\n " + var1Input_1.value;
|
var luaScript_1 = "inputs = {\"" + results.join('","') + "\"}\noutputs = {}\n\n " + var1Input_1.value;
|
||||||
devCopyA_1.setAttribute('href', '#');
|
devCopyA_1.setAttribute('href', '#');
|
||||||
devCopyA_1.classList.add("btn", "btn-primary", "btn-sm");
|
devCopyA_1.classList.add("btn", "btn-primary", "btn-sm");
|
||||||
devCopyA_1.innerHTML = "Copy Script";
|
devCopyA_1.innerHTML = "Copy script with inputs";
|
||||||
devCopyA_1.onclick = function () {
|
devCopyA_1.onclick = function () {
|
||||||
if (navigator.clipboard) {
|
if (navigator.clipboard) {
|
||||||
navigator.clipboard.writeText(luaScript_1);
|
navigator.clipboard.writeText(luaScript_1);
|
||||||
|
@ -644,17 +644,28 @@ function onTypeChange(node) {
|
||||||
};
|
};
|
||||||
var1Div.appendChild(devCopyA_1);
|
var1Div.appendChild(devCopyA_1);
|
||||||
var luaSnippets = new Map([
|
var luaSnippets = new Map([
|
||||||
["http", "\nlocal http = require(\"http\")\nlocal client = http.client()\n\nlocal request = http.request(\"GET\", \"https://api.ipify.org\")\nlocal result, err = client:do_request(request)\nif err then\n error(err)\nend\nif not (result.code == 200) then\n error(\"code\")\nend\n\ntable.insert(outputs, result.body)\n "],
|
["HTTP GET", "local http = require(\"http\")\nlocal client = http.client()\n\nlocal request = http.request(\"GET\", \"https://api.ipify.org\")\nlocal result, err = client:do_request(request)\nif err then\n table.insert(logs, err)\n error(err)\nend\nif not (result.code == 200) then\n table.insert(logs, err)\n error(err)\nend\n\ntable.insert(outputs, result.body)\n "],
|
||||||
["strings", "\nlocal strings = require(\"strings\")\nfor i,input in pairs(inputs) do\n table.insert(outputs, strings.trim_space(input))\nend\n "],
|
["HTTP POST", "local http = require(\"http\")\nlocal client = http.client()\n\nlocal request = http.request(\"POST\", \"http://httpbin.org/post\", \"{}\")\nlocal result, err = client:do_request(request)\nif err then\n table.insert(logs, err)\n error(err)\nend\nif not (result.code == 200) then\n table.insert(logs, err)\n error(err)\nend\n\ntable.insert(outputs, result.body)\n "],
|
||||||
["filter", "\nfor i,input in pairs(inputs) do\n number = tonumber(input)\n if number % 2 == 0 then\n table.insert(outputs, input)\n end\nend\n "],
|
["HTTP Auth", "local http = require(\"http\")\nlocal client = http.client()\n\nlocal request = http.request(\"GET\", \"http://httpbin.org/basic-auth/gowatch/gowatch123\")\nrequest:set_basic_auth(\"gowatch\", \"gowatch123\")\nlocal result, err = client:do_request(request)\nif err then\n table.insert(logs, err)\n error(err)\nend\nif not (result.code == 200) then\n table.insert(logs, err)\n error(err)\nend\n\ntable.insert(outputs, result.body)\n "],
|
||||||
|
["HTTP Bearer", "local http = require(\"http\")\nlocal client = http.client()\n\nlocal request = http.request(\"GET\", \"http://httpbin.org/bearer\")\nlocal token = \"gowatch123\"\nrequest:header_set(\"Authorization\", \"Bearer \" .. token)\nlocal result, err = client:do_request(request)\nif err then\n table.insert(logs, err)\n error(err)\nend\nif not (result.code == 200) then\n table.insert(logs, err)\n error(err)\nend\n\ntable.insert(outputs, result.body)\n "],
|
||||||
|
["HTTP Proxy", "local http = require(\"http\")\nlocal client = http.client({ proxy = \"http://login:password@hostname.com\" })\n\nlocal request = http.request(\"GET\", \"https://api.ipify.org\")\nlocal result, err = client:do_request(request)\nif err then\n table.insert(logs, err)\n error(err)\nend\nif not (result.code == 200) then\n table.insert(logs, err)\n error(err)\nend\n\ntable.insert(outputs, result.body)\n "],
|
||||||
|
["HTTP Browserless", "local http = require(\"http\")\nlocal client = http.client()\n\n# note \" for keys/values\nlocal data = '{\"url\": \"https://api.ipify.org\"}'\nlocal request = http.request(\"POST\", \"http://browserless:3000/content\", data)\nrequest:header_set(\"Content-Type\", \"application/json\")\nlocal result, err = client:do_request(request)\nif err then\n table.insert(logs, err)\n error(err)\nend\nif not (result.code == 200) then\n table.insert(logs, \"Response != 200 - \" .. result.code)\nend\n\ntable.insert(outputs, result.body) \n "],
|
||||||
|
["XPath", "local xmlpath = require(\"xmlpath\")\n\nlocal query = \"//td[@class='price']\"\nlocal query, err = xmlpath.compile(query)\nif err then\n table.insert(logs, err)\n error(err)\nend\n\nfor i,input in pairs(inputs) do\n local node, err = xmlpath.load(input)\n if err then\n table.insert(logs, err)\n error(err)\n end\n local iter = query:iter(node)\n for k, v in pairs(iter) do\n table.insert(outputs, v:string())\n end\nend\n "],
|
||||||
|
["strings", "local strings = require(\"strings\")\nfor i,input in pairs(inputs) do\n table.insert(outputs, strings.trim_space(input))\nend\n "],
|
||||||
|
["filter", "for i,input in pairs(inputs) do\n number = tonumber(input)\n if number % 2 == 0 then\n table.insert(outputs, input)\n end\nend\n "],
|
||||||
]);
|
]);
|
||||||
|
var snippetDiv = document.createElement("div");
|
||||||
|
snippetDiv.classList.add("d-flex", "flex-wrap");
|
||||||
var _loop_1 = function (name_1, snippet) {
|
var _loop_1 = function (name_1, snippet) {
|
||||||
var link = document.createElement('a');
|
var link = document.createElement('a');
|
||||||
link.setAttribute("href", "#");
|
link.setAttribute("href", "#");
|
||||||
link.classList.add("btn", "btn-secondary", "btn-sm");
|
link.classList.add("btn", "btn-outline-secondary", "btn-sm", "xs");
|
||||||
link.innerHTML = name_1;
|
link.innerHTML = name_1;
|
||||||
link.onclick = function () { var1Input_1.value = snippet; };
|
link.onclick = function () { var1Input_1.value = snippet; };
|
||||||
var1Div.appendChild(link);
|
snippetDiv.appendChild(link);
|
||||||
|
var gap = document.createElement("div");
|
||||||
|
gap.classList.add("m-1", "xs");
|
||||||
|
snippetDiv.appendChild(gap);
|
||||||
};
|
};
|
||||||
try {
|
try {
|
||||||
// add snippets
|
// add snippets
|
||||||
|
@ -670,6 +681,7 @@ function onTypeChange(node) {
|
||||||
}
|
}
|
||||||
finally { if (e_2) throw e_2.error; }
|
finally { if (e_2) throw e_2.error; }
|
||||||
}
|
}
|
||||||
|
var1Div.appendChild(snippetDiv);
|
||||||
var var2Input = document.createElement("input");
|
var var2Input = document.createElement("input");
|
||||||
var2Input.name = "var2";
|
var2Input.name = "var2";
|
||||||
var2Input.id = "var2Input";
|
var2Input.id = "var2Input";
|
||||||
|
|
134
static/edit.ts
134
static/edit.ts
|
@ -612,13 +612,13 @@ function onTypeChange(node: DiagramNode | null = null){
|
||||||
var1Input.rows = 10;
|
var1Input.rows = 10;
|
||||||
var1Div.appendChild(var1Input);
|
var1Div.appendChild(var1Input);
|
||||||
|
|
||||||
// dev download link
|
// dev copy link
|
||||||
let devCopyA = document.createElement('a');
|
let devCopyA = document.createElement('a');
|
||||||
let results = node == null ? [] : node.results;
|
let results = node == null ? [] : node.results;
|
||||||
let luaScript = `inputs = {"${results.join('","')}"}\noutputs = {}\n\n ${var1Input.value}`;
|
let luaScript = `inputs = {"${results.join('","')}"}\noutputs = {}\n\n ${var1Input.value}`;
|
||||||
devCopyA.setAttribute('href', '#')
|
devCopyA.setAttribute('href', '#')
|
||||||
devCopyA.classList.add("btn", "btn-primary", "btn-sm");
|
devCopyA.classList.add("btn", "btn-primary", "btn-sm");
|
||||||
devCopyA.innerHTML = "Copy Script";
|
devCopyA.innerHTML = "Copy script with inputs";
|
||||||
devCopyA.onclick = function() {
|
devCopyA.onclick = function() {
|
||||||
if (navigator.clipboard){
|
if (navigator.clipboard){
|
||||||
navigator.clipboard.writeText(luaScript);
|
navigator.clipboard.writeText(luaScript);
|
||||||
|
@ -630,29 +630,134 @@ function onTypeChange(node: DiagramNode | null = null){
|
||||||
var1Div.appendChild(devCopyA);
|
var1Div.appendChild(devCopyA);
|
||||||
|
|
||||||
let luaSnippets: Map<string, string> = new Map([
|
let luaSnippets: Map<string, string> = new Map([
|
||||||
["http", `
|
["HTTP GET", `local http = require("http")
|
||||||
local http = require("http")
|
|
||||||
local client = http.client()
|
local client = http.client()
|
||||||
|
|
||||||
local request = http.request("GET", "https://api.ipify.org")
|
local request = http.request("GET", "https://api.ipify.org")
|
||||||
local result, err = client:do_request(request)
|
local result, err = client:do_request(request)
|
||||||
if err then
|
if err then
|
||||||
|
table.insert(logs, err)
|
||||||
error(err)
|
error(err)
|
||||||
end
|
end
|
||||||
if not (result.code == 200) then
|
if not (result.code == 200) then
|
||||||
error("code")
|
table.insert(logs, err)
|
||||||
|
error(err)
|
||||||
end
|
end
|
||||||
|
|
||||||
table.insert(outputs, result.body)
|
table.insert(outputs, result.body)
|
||||||
`],
|
`],
|
||||||
["strings", `
|
["HTTP POST", `local http = require("http")
|
||||||
local strings = require("strings")
|
local client = http.client()
|
||||||
|
|
||||||
|
local request = http.request("POST", "http://httpbin.org/post", "{}")
|
||||||
|
local result, err = client:do_request(request)
|
||||||
|
if err then
|
||||||
|
table.insert(logs, err)
|
||||||
|
error(err)
|
||||||
|
end
|
||||||
|
if not (result.code == 200) then
|
||||||
|
table.insert(logs, err)
|
||||||
|
error(err)
|
||||||
|
end
|
||||||
|
|
||||||
|
table.insert(outputs, result.body)
|
||||||
|
`],
|
||||||
|
["HTTP Auth", `local http = require("http")
|
||||||
|
local client = http.client()
|
||||||
|
|
||||||
|
local request = http.request("GET", "http://httpbin.org/basic-auth/gowatch/gowatch123")
|
||||||
|
request:set_basic_auth("gowatch", "gowatch123")
|
||||||
|
local result, err = client:do_request(request)
|
||||||
|
if err then
|
||||||
|
table.insert(logs, err)
|
||||||
|
error(err)
|
||||||
|
end
|
||||||
|
if not (result.code == 200) then
|
||||||
|
table.insert(logs, err)
|
||||||
|
error(err)
|
||||||
|
end
|
||||||
|
|
||||||
|
table.insert(outputs, result.body)
|
||||||
|
`],
|
||||||
|
["HTTP Bearer", `local http = require("http")
|
||||||
|
local client = http.client()
|
||||||
|
|
||||||
|
local request = http.request("GET", "http://httpbin.org/bearer")
|
||||||
|
local token = "gowatch123"
|
||||||
|
request:header_set("Authorization", "Bearer " .. token)
|
||||||
|
local result, err = client:do_request(request)
|
||||||
|
if err then
|
||||||
|
table.insert(logs, err)
|
||||||
|
error(err)
|
||||||
|
end
|
||||||
|
if not (result.code == 200) then
|
||||||
|
table.insert(logs, err)
|
||||||
|
error(err)
|
||||||
|
end
|
||||||
|
|
||||||
|
table.insert(outputs, result.body)
|
||||||
|
`],
|
||||||
|
["HTTP Proxy", `local http = require("http")
|
||||||
|
local client = http.client({ proxy = "http://login:password@hostname.com" })
|
||||||
|
|
||||||
|
local request = http.request("GET", "https://api.ipify.org")
|
||||||
|
local result, err = client:do_request(request)
|
||||||
|
if err then
|
||||||
|
table.insert(logs, err)
|
||||||
|
error(err)
|
||||||
|
end
|
||||||
|
if not (result.code == 200) then
|
||||||
|
table.insert(logs, err)
|
||||||
|
error(err)
|
||||||
|
end
|
||||||
|
|
||||||
|
table.insert(outputs, result.body)
|
||||||
|
`],
|
||||||
|
["HTTP Browserless", `local http = require("http")
|
||||||
|
local client = http.client()
|
||||||
|
|
||||||
|
# note " for keys/values
|
||||||
|
local data = '{"url": "https://api.ipify.org"}'
|
||||||
|
local request = http.request("POST", "http://browserless:3000/content", data)
|
||||||
|
request:header_set("Content-Type", "application/json")
|
||||||
|
local result, err = client:do_request(request)
|
||||||
|
if err then
|
||||||
|
table.insert(logs, err)
|
||||||
|
error(err)
|
||||||
|
end
|
||||||
|
if not (result.code == 200) then
|
||||||
|
table.insert(logs, "Response != 200 - " .. result.code)
|
||||||
|
end
|
||||||
|
|
||||||
|
table.insert(outputs, result.body)
|
||||||
|
`],
|
||||||
|
["XPath", `local xmlpath = require("xmlpath")
|
||||||
|
|
||||||
|
local query = "//td[@class='price']"
|
||||||
|
local query, err = xmlpath.compile(query)
|
||||||
|
if err then
|
||||||
|
table.insert(logs, err)
|
||||||
|
error(err)
|
||||||
|
end
|
||||||
|
|
||||||
|
for i,input in pairs(inputs) do
|
||||||
|
local node, err = xmlpath.load(input)
|
||||||
|
if err then
|
||||||
|
table.insert(logs, err)
|
||||||
|
error(err)
|
||||||
|
end
|
||||||
|
local iter = query:iter(node)
|
||||||
|
for k, v in pairs(iter) do
|
||||||
|
table.insert(outputs, v:string())
|
||||||
|
end
|
||||||
|
end
|
||||||
|
`],
|
||||||
|
["strings", `local strings = require("strings")
|
||||||
for i,input in pairs(inputs) do
|
for i,input in pairs(inputs) do
|
||||||
table.insert(outputs, strings.trim_space(input))
|
table.insert(outputs, strings.trim_space(input))
|
||||||
end
|
end
|
||||||
`],
|
`],
|
||||||
["filter", `
|
["filter", `for i,input in pairs(inputs) do
|
||||||
for i,input in pairs(inputs) do
|
|
||||||
number = tonumber(input)
|
number = tonumber(input)
|
||||||
if number % 2 == 0 then
|
if number % 2 == 0 then
|
||||||
table.insert(outputs, input)
|
table.insert(outputs, input)
|
||||||
|
@ -660,15 +765,22 @@ for i,input in pairs(inputs) do
|
||||||
end
|
end
|
||||||
`],
|
`],
|
||||||
]);
|
]);
|
||||||
|
let snippetDiv = document.createElement("div");
|
||||||
|
snippetDiv.classList.add("d-flex", "flex-wrap")
|
||||||
// add snippets
|
// add snippets
|
||||||
for (let [name, snippet] of luaSnippets) {
|
for (let [name, snippet] of luaSnippets) {
|
||||||
let link = document.createElement('a');
|
let link = document.createElement('a');
|
||||||
link.setAttribute("href", "#");
|
link.setAttribute("href", "#");
|
||||||
link.classList.add("btn", "btn-secondary", "btn-sm");
|
link.classList.add("btn", "btn-outline-secondary", "btn-sm", "xs");
|
||||||
link.innerHTML = name;
|
link.innerHTML = name;
|
||||||
link.onclick = function() {var1Input.value = snippet;};
|
link.onclick = function() {var1Input.value = snippet;};
|
||||||
var1Div.appendChild(link)
|
snippetDiv.appendChild(link)
|
||||||
|
|
||||||
|
let gap = document.createElement("div");
|
||||||
|
gap.classList.add("m-1", "xs");
|
||||||
|
snippetDiv.appendChild(gap);
|
||||||
}
|
}
|
||||||
|
var1Div.appendChild(snippetDiv);
|
||||||
|
|
||||||
let var2Input = document.createElement("input");
|
let var2Input = document.createElement("input");
|
||||||
var2Input.name = "var2";
|
var2Input.name = "var2";
|
||||||
|
|
6
todo.md
6
todo.md
|
@ -1,9 +1,3 @@
|
||||||
# Todo
|
# Todo
|
||||||
- comments
|
- comments
|
||||||
- lua snippets
|
|
||||||
- basic auth
|
|
||||||
- post
|
|
||||||
- browserless?
|
|
||||||
- xpath
|
|
||||||
- json
|
|
||||||
- safe escape {{ }} for pages
|
- safe escape {{ }} for pages
|
Loading…
Add table
Reference in a new issue