ForgeFlow
cs

Flow

Repozitář komponent Flow: 146 komponent, katalog a tester

Flow · flow@11.1 flowcomponentscataloguedb.jsontester

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:

SkupinaKomponenty (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, Ollamamqtt-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.