ForgeDokumentace
cs

Dokumentace

Úvodní typy novinek

Total.js 5 · total5@0.0.19 referencevalidationinput Spuštěno s Total.js 5

Definice je seznam name:Type oddělený čárkami, například *email:Email, age:Number. * před názvem činí pole povinným. Stejný formát se používá v input (tělo), params, query a output. Typ převádí hodnotu: akce dostane převedenou hodnotu, nikoli odeslaný text.

Názvy typů nerozlišují velká a malá písmena. Každý typ níže byl ověřen odesláním hodnoty z druhého sloupce.

TypOdeslaná hodnotaPřijatá hodnotaPoznámky
String hello helloText; mezery na začátku a na konci se odstraní.
Text text text Text zachovaný přesně tak, jak byl odeslán.
Email A@B.CZ a@b.czPlatná e-mailová adresa malými písmeny; vše ostatní se odmítne.
Phone+421 900 123 456+421900123456Telefonní číslo; mezery se odstraní.
URLhttps://totaljs.com/xhttps://totaljs.com/xPlatná URL; vše ostatní se odmítne.
Namejohn smithJohn SmithVelké písmeno na začátku každého slova.
Capitalizehello big worldHello Big WorldVelké písmeno na začátku každého slova.
Capitalize2HELLO big WORLDHello big worldVelké písmeno jen na začátku, zbytek malými.
LowercaseABCabcMalá písmena.
UppercaseabcABCVelká písmena.
SearchŽluťoučký Kůňzlutoucki kunMalá písmena bez diakritiky, pro vyhledávání.
SafeStringplain textplain textText; hodnota s HTML značkami jako <b> se odmítne.
Color#FF0000#FF0000schema-enums-and-formats
Base64SGVsbG8=SGVsbG8=schema-enums-and-formats
Zip8110181101schema-enums-and-formats
Iconti ti-hometi ti-homeschema-enums-and-formats
Number12.512.5Číslo; text se převede.
Float3.143.14Číslo; text se převede.
Decimal2.52.5Číslo; text se převede.
Booleantruetruetrue nebo false; text true se převede.
Date2026-01-052026-01-05T00:00:00.000ZDatum. V JSON se odesílá jako text ISO.

Další formy:

FormaPříkladPoznámky
[String], [Number]ze_arr:[String]Pole daného typu: každá položka se převede.
{ x:Number, y:String }zg_obj:{ x:Number, y:String }Vnořený objekt validovaný vlastními poli.
String(5)zd_max:String(5)Text s nejvýše 5 znaky; delší text se odmítne.

Hodnota, která neodpovídá typu, se odmítne se stavem 400 a názvem pole v chybě. V kontrolách se odmítly tyto hodnoty: SafeString s <b>x</b>, String(5) s deseti znaky, UID s abc a GUID s not-guid. Recept mezních hodnot ověřuje Int, SmallInt, TinyInt, Number2: numeric-schema-boundaries. V této verzi Int neořezává: 7.9 zůstane 7.9.

UID a GUID přijímají hodnoty, které vytvářejí UID() a GUID().

definitions/types.js
NEWACTION('Types/all', {
	name: 'Every type',
	input: 'a_string:String, b_text:Text, c_email:Email, d_phone:Phone, e_url:URL, f_name:Name, g_capitalize:Capitalize, h_capitalize2:Capitalize2, i_lowercase:Lowercase, j_uppercase:Uppercase, k_search:Search, l_safestring:SafeString, m_color:Color, n_base64:Base64, o_zip:Zip, p_icon:Icon, q_number:Number, r_float:Float, s_decimal:Decimal, t_boolean:Boolean, u_date:Date, ze_arr:[String], zf_nums:[Number], zg_obj:{ x:Number, y:String }, zd_max:String(5)',
	action: function($, model) {
		$.callback(model);
	}
});

NEWACTION('Types/ids', {
	name: 'UID and GUID',
	input: '*id:UID, *key:GUID',
	action: function($, model) {
		$.callback(model);
	}
});
controllers/types.js
exports.install = function() {
	ROUTE('POST /types/ @json --> *Types/all');
	ROUTE('POST /ids/ @json --> *Types/ids');
	ROUTE('GET /newids/', ids);
};

function ids($) {
	$.json({ id: UID(), key: GUID() });
}