ForgeFlow
ro

Flow

Depozitul de componente Flow: 146 de componente, catalogul și testerul

Flow · flow@11.1 flowcomponentscataloguedb.jsontester

totaljs/flowstreamcomponents conține componentele open source pe care le oferă editorul Flow. În revizia documentată aici (e34d283) are 146 de componente în components/, 32 mai vechi păstrate în archived/, generatorul catalogului (db.js), catalogul însuși (db.json) și un tester.

Ce acoperă catalogul

Componentele sunt organizate în grupuri. Câteva dintre cele mai mari:

GrupComponente (exemple)
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

În plus, există componente pentru analiză (xmlparser, dataparser, csvdataset, cheerio), date și fusuri orare (date, timezone, duration), text și șabloane (tangular, qrcode), OAuth2 (oauth2), descărcări (downloader, urldownload), notificări (sms, rssreader, openweather, googlesearch) și hardware-ul Linux (nvidiasmi). Folderul archived/ păstrează pentru referință generația mai veche a familiei (GPIO și I2C de Raspberry Pi, RabbitMQ, metrici de sistem).

Cum le găsește Flow: db.json

Flow nu descarcă HTML-ul fiecărei componente. Descarcă un catalog, un fișier JSON (implicit https://cdn.totaljs.com/flowstream/webcomponents/db.json, setat în setări) cu câte o intrare pe componentă:

{
  "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. ..."
}

Editorul afișează lista cu readme și descarcă url al componentei când o adaugi. Ca să oferi propriile componente alături de cele oficiale, publică fișierele tale HTML și un db.json propriu și scrie adresa lui în setarea components2.

db.js generează catalogul: citește fiecare fișier din components/, ia group, name, author, icon, color, version și kind din exports, ia textul din <readme>, construiește url pe CDN și scrie db.json sortat după nume. Rulează-l cu Node.js după ce adaugi sau schimbi o componentă.

Testerul

tester.js rulează o componentă fără editor, iar tests/ conține exemple (counter.js, example.js, example-multiple.js, influxdb.js, sqlite3.js, trigger.js) și un readme.md cu toate opțiunile. Un test arată așa:

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 încarcă componenta, test.input(data) îi trimite un mesaj, test.output și test.message primesc ce trimite, test.configure({...}) îi schimbă configurația, test.trigger() îi apelează trigger-ul, iar test.ok() și test.fail() marchează rezultatul. Pentru a rula toate testele: cd flowstreamcomponents, o dată npm install total4 și node tester.js. Testerul acestei revizii este scris pentru Total.js 4 (require('total4')), după cum spune readme-ul lui.

Contribuie

Depozitul cere respectarea standardelor și ghidurilor de cod Total.js, iar readme-ul lui le leagă; contactul este info@totaljs.com. Pentru a scrie o componentă, vezi scrie o componentă.