Repozitár komponentov Flow: 146 komponentov, katalóg a tester
totaljs/flowstreamcomponents obsahuje open-source komponenty, ktoré ponúka editor Flow. V tu dokumentovanej revízii (e34d283) má 146 komponentov v components/, 32 starších uložených v archived/, generátor katalógu (db.js), samotný katalóg (db.json) a tester.
Čo katalóg pokrýva
Komponenty sú usporiadané do skupín. Niektoré z väčších:
| Skupina | Komponenty (prí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 |
Okrem toho sú tu komponenty na parsovanie (xmlparser, dataparser, csvdataset, cheerio), dátumy a časové pásma (date, timezone, duration), text a šablóny (tangular, qrcode), OAuth2 (oauth2), sťahovanie (downloader, urldownload), oznámenia (sms, rssreader, openweather, googlesearch) a hardvér Linuxu (nvidiasmi). Priečinok archived/ uchováva staršiu generáciu rodiny (GPIO a I2C Raspberry Pi, RabbitMQ, systémové metriky) pre referenciu.
Ako ich Flow nájde: db.json
Flow nesťahuje HTML každého komponentu. Sťahuje katalóg, súbor JSON (predvolene https://cdn.totaljs.com/flowstream/webcomponents/db.json, nastavený v nastaveniach) s jedným záznamom na komponent:
{
"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í zoznam s readme a keď komponent pridáte, stiahne jeho url. Ak chcete popri oficiálnych ponúkať vlastné komponenty, zverejnite svoje súbory HTML a vlastný db.json a jeho adresu zapíšte do nastavenia components2.
db.js generuje katalóg: prečíta každý súbor v components/, z jeho exports vezme group, name, author, icon, color, version a kind, vezme text z <readme>, zostaví url na CDN a zapíše db.json zoradený podľa názvu. Spustite ho cez Node.js po pridaní alebo zmene komponentu.
Tester
tester.js spúšťa komponent bez editora a tests/ obsahuje príklady (counter.js, example.js, example-multiple.js, influxdb.js, sqlite3.js, trigger.js) a readme.md so všetkými možnosťami. Test vyzerá 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číta komponent, test.input(data) mu pošle správu, test.output a test.message prijímajú, čo posiela, test.configure({...}) mení jeho konfiguráciu, test.trigger() volá jeho trigger a test.ok() a test.fail() označia výsledok. Spustenie všetkých testov: cd flowstreamcomponents, raz npm install total4 a node tester.js. Tester tejto revízie je napísaný pre Total.js 4 (require('total4')), ako hovorí jeho readme.
Prispievanie
Repozitár žiada dodržiavať kódovacie normy a pokyny Total.js a jeho readme na ne odkazuje; kontakt je info@totaljs.com. Ak chcete napísať komponent, pozri napísať komponent.