Repozitář komponent Flow: 146 komponent, katalog a tester
totaljs/flowstreamcomponents obsahuje open-source komponenty, které nabízí editor Flow. V zde dokumentované revizi (e34d283) má 146 komponent v components/, 32 starších uložených v archived/, generátor katalogu (db.js), samotný katalog (db.json) a tester.
Co katalog pokrývá
Komponenty jsou uspořádány do skupin. Některé z větších:
| Skupina | Komponenty (příklady) |
|---|---|
| Common (40) | delay, print, counter, switch, merge, code, request, throttle, transform, macro, modify, stringoperations |
| Total.js (17) | taction, troute, tschema, tcors, tresponse, tauthtoken, twebsocketroute, tuploadedfiles, tsql, querybuilderpg |
| Total.js API Services (13) | tapiocrapi, tapigeoipapi, tapiweatherapi, tapismsapi, tapichatgptapi, tapiinvoiceparserapi, tapicheckvatapi, tapiprintapi |
| Databases (8) | postgresql, mysql, sqlite3, mongodb-query, mongodb-insert, influxdb, nosql, localstorage |
| Triggers (7) | timer, trigger, crontab, minutely, notify |
| Files (6) | filewriter, filewatcher, fileswatcher, fsrename, fstouch, fsunlink |
| Flow, FlowStream, Stats, Checks, Security... | debug, flowstats, input, output, publish, subscribe, stopwatch, checkurl, checklog, checkfreespace, totp, iplimiter |
| MQTT, AI, Ollama | mqtt-broker, mqtt-publish, mqtt-subscribe, aiagent, aitool, aicontext, chatgpt, ollamaprompt, ollamals, ollamawebsearch |
Kromě toho jsou zde komponenty pro parsování (xmlparser, dataparser, csvdataset, cheerio), data a časová pásma (date, timezone, duration), text a šablony (tangular, qrcode), OAuth2 (oauth2), stahování (downloader, urldownload), oznámení (sms, rssreader, openweather, googlesearch) a hardware Linuxu (nvidiasmi). Složka archived/ uchovává pro referenci starší generaci rodiny (GPIO a I2C Raspberry Pi, RabbitMQ, systémové metriky).
Jak je Flow najde: db.json
Flow nestahuje HTML každé komponenty. Stahuje katalog, soubor JSON (výchozí https://cdn.totaljs.com/flowstream/webcomponents/db.json, nastavený v nastavení) s jedním záznamem na komponentu:
{
"id": "taction",
"group": "Total.js",
"name": "Action",
"url": "https://cdn.totaljs.com/flowstream/webcomponents/taction.html",
"author": "Peter Širka | Total.js",
"icon": "ti ti-totaljs",
"color": "",
"version": "2",
"kind": "",
"readme": "This component creates similar functionality as Total.js Actions. ..."
}Editor zobrazí seznam s readme a když komponentu přidáte, stáhne její url. Chcete-li vedle oficiálních nabízet vlastní komponenty, zveřejněte své soubory HTML a vlastní db.json a jeho adresu zapište do nastavení components2.
db.js generuje katalog: přečte každý soubor v components/, z jeho exports vezme group, name, author, icon, color, version a kind, vezme text z <readme>, sestaví url na CDN a zapíše db.json seřazený podle názvu. Spusťte jej v Node.js po přidání nebo změně komponenty.
Tester
tester.js spouští komponentu bez editoru a tests/ obsahuje příklady (counter.js, example.js, example-multiple.js, influxdb.js, sqlite3.js, trigger.js) a readme.md se všemi možnostmi. Test vypadá takto:
require('../tester')(async function(describe, done) {
await describe(function(test, next) {
let messages = 0;
let status = 0;
test.status = function(data) {
status = data;
};
test.input('Hello World!');
messages++;
setTimeout(function() {
test.ok(status === messages, 'Counting');
next();
}, 2000);
});
done();
});describe načte komponentu, test.input(data) jí pošle zprávu, test.output a test.message přijímají, co posílá, test.configure({...}) mění její konfiguraci, test.trigger() volá její trigger a test.ok() a test.fail() označí výsledek. Spuštění všech testů: cd flowstreamcomponents, jednou npm install total4 a node tester.js. Tester této revize je napsán pro Total.js 4 (require('total4')), jak říká jeho readme.
Přispívání
Repozitář žádá dodržovat kódovací normy a pokyny Total.js a jeho readme na ně odkazuje; kontakt je info@totaljs.com. Chcete-li napsat komponentu, viz napsat komponentu.