ඔයාලා JavaScriptවල Tagged Template Literals එක්ක වැඩ කරලා තියෙනවාද? සමහර විට නමින් දන්නෙ නැති වුණාට postgresql.js වගේ library එකක් use කළා නම් අනිවාර්යයෙන්ම මේ වගේ code එකක් ලියලා ඇති.
මටනම් මුලින්ම ඔය වගේ ලියන්න වුණාම කල්පනා වුණේ, කොහොමද function() එකකදි වගේ brackets නැතුව ඔහොම ලියන්නෙ පල්ලෙගෙදර කිරි අප්පගෙ බූදලෙන්ද කියලා. ඊට කලින් backticks දාලා variable values ලියලා තිබුණට (උදා: `My age is ${age}`) function name එකක් එක්ක backticks ලියන එක odd වගේ දැනුනා.
අන්න ඒ backticks දාලා ලියන එකට කියන්නේ Template literals කියලා.
const name = "Kasun";
console.log(`Hello, ${name}!`);
අපි දන්න කතාව ඒක. 😅
ඒත් Tagged Template Literals කියන එක අනිත් ලෙවල් එක. (ඒක දැනගත්තට පස්සෙ අර අශන්යාට හදපු මීම් එක වගේ මටත් “අනේ තාත්ති මටත් ඒ වගේ function එකක් ලියන්න ඕන” කියලා හිතුණා)
👉 Tagged Template Literals වලදි කරන්නෙ, function එකකින් string parse කරන එක:
function highlight(strings, ...values) {
return strings.reduce((result, str, i) =>
result + str + (values[i] ? values[i].toUpperCase() : ""),
"");
}
const lang = "javascript";
console.log(highlight`I love ${lang} so much!`);
ඉහත code එකේ output එක:
I love JAVASCRIPT so much!
මෙකෙන් දේවල් highlight කරන්න, sanitize කරන්න විතරක් නෙවෙයි, custom DSL (domain-specific language) හදාගන්නත් පුළුවන්.
🔹 Tagged Template Literals කියන්නේ string වලින් data වලට හොඳම control එක දෙන්න JS ගෙනා feature එකක්. නැත්තං SQL එහෙම ලියන්න ගියාම වැඩි ආරස්සාවට (injections නවත්වන්න) variable values වෙනම යවන්න වෙනවනෙ.
ඔයාලා Tagged Templates use කරලා ඔයාලගේම function එකක් project එකක try කරලා බලලා තියෙනවද?
Leave a Reply