നിങ്ങളുടെ സ്വന്തം CtroEnv Validators നിർമ്മിക്കാം

CtroEnv-ലെ ഇൻബിൽറ്റ് വാലിഡേറ്ററുകൾ അടിസ്ഥാന കാര്യങ്ങൾ കൈകാര്യം ചെയ്യുന്നു. നിങ്ങൾക്ക് string, number, boolean, pick എന്നിവ ലഭിക്കും. എന്നാൽ ചിലപ്പോൾ നിങ്ങൾക്ക് കൂടുതൽ ആവശ്യമായി വന്നേക്കാം. എനിക്ക് ഒരു IPv6 വാലിഡേറ്റർ ആവശ്യമായിരുന്നു. അത് അവിടെ ഉണ്ടായിരുന്നില്ല. അതിനാൽ ഞാൻ അത് നിർമ്മിച്ചു.

ഞാൻ ഉപയോഗിക്കുന്ന അതേ ടൂളുകൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് സ്വന്തമായി വാലിഡേറ്ററുകൾ നിർമ്മിക്കാം.

ഇത് എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്ന് നോക്കാം.

ഒരു parse ഫങ്ക്ഷനും മെറ്റാഡേറ്റയും (metadata) ഉള്ള ഒരു ഒബ്‌ജക്റ്റാണ് ഒരു വാലിഡേറ്റർ. parse ഫങ്ക്ഷൻ ഇൻപുട്ട് സ്വീകരിക്കുകയും അത് വിജയമാണോ (success) പരാജയമാണോ (failure) എന്ന് തിരികെ നൽകുകയും ചെയ്യുന്നു.

തുടങ്ങാൻ നിങ്ങൾക്ക് createValidator ഉപയോഗിക്കാം. ഇതാണ് ഏറ്റവും ലളിതമായ വഴി.

എന്നിരുന്നാലും, ഒരു സാധാരണ വാലിഡേറ്ററിൽ ഹെൽപ്പർ മെത്തേഡുകൾ (helper methods) ഉണ്ടാകില്ല. അതിൽ .default() അല്ലെങ്കിൽ .optional() എന്നിവ ഉണ്ടായിരിക്കില്ല. ഈ മെത്തേഡുകൾ ചേർക്കാൻ നിങ്ങൾ applyChain ഉപയോഗിക്കണം.

സ്ട്രിംഗുകൾക്കായി .min() പോലെ പ്രത്യേക ലോജിക് ചേർക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, വാലിഡേറ്റർ എക്സ്റ്റെൻഡ് (extend) ചെയ്യാം. ഇത് ഒറിജിനൽ ലോജിക്കിനെ ഉൾക്കൊള്ളാനും (wrap) പുതിയ നിയമങ്ങൾ ചേർക്കാനും നിങ്ങളെ അനുവദിക്കുന്നു.

കസ്റ്റം ലോജിക് ചേർക്കാൻ പ്രധാനമായും രണ്ട് വഴികളുണ്ട്:

നിങ്ങൾക്ക് ഉപയോഗിക്കാവുന്ന ടൂളുകളുടെ സംഗ്രഹം താഴെ നൽകുന്നു:

• createValidator: കസ്റ്റം ലോജിക്കോട് കൂടിയ ഒരു ബേസ് വാലിഡേറ്റർ നിർമ്മിക്കുന്നു. • applyChain: .optional(), .default(), .describe() എന്നിവ ചേർക്കുന്നു. • parseOk: വിജയകരമായ ഫലം തിരികെ നൽകുന്നു. • singleError: പരാജയപ്പെട്ട ഫലം തിരികെ നൽകുന്നു. • errType, errInvalid: പ്രത്യേക എറർ മെസ്സേജുകൾ നിർമ്മിക്കുന്നു.

നിങ്ങളുടെ സ്വന്തം വാലിഡേറ്ററുകൾ കമ്മ്യൂണിറ്റി പാക്കേജുകളായി പ്രസിദ്ധീകരിക്കാനും നിങ്ങൾക്ക് കഴിയും. ഇതിനായി @ctroenv/community- എന്ന പ്രിഫിക്സ് ഉപയോഗിക്കുക. നിങ്ങളുടെ പാക്കേജിന് @ctroenv/core ഒരു ഡിപെൻഡൻസി ആയി മാത്രം മതിയാകും.

ഉപകാരപ്രദമായ എന്തെങ്കിലും നിങ്ങൾ നിർമ്മിക്കുകയാണെങ്കിൽ, ദയവായി അത് പങ്കുവെക്കുക. നിങ്ങൾക്ക് ഒരു PR ഓപ്പൺ ചെയ്യാം അല്ലെങ്കിൽ മറ്റുള്ളവർക്ക് ഉപയോഗിക്കാനായി അത് പ്രസിദ്ധീകരിക്കാം.

സ്രോതസ്സ്: https://dev.to/ctrotech/building-your-own-ctroenv-validators-19h8