index/functions/conditionalTrimAndValidateString.md
conditionalTrimAndValidateString(
value,_fieldName?,minLength?):string|null
Safely trim a string and validate it is non-empty.
Performs conditional trimming and validation for optional string values. Returns null if value is falsy, not a string, or empty after trimming. Useful for chat messages, reasons, comments, and other user input validation.
Consolidated from 15 duplicated patterns in chat/comment/ban operations:
reason?.trim() && reason.trim().length > 0content?.trim().length > 0message && message.trim().length > 0
field name min length
Parameters
| Parameter | Type | Description |
|---|---|---|
value | unknown | Unknown input value to process |
_fieldName? | string | - |
minLength? | number | Optional minimum length requirement (default: 1) |
field name min length
Returns
string | null
Trimmed string if valid and non-empty, null otherwise
Examples
Basic usage with optional values
import { conditionalTrimAndValidateString } from '@gala-chain/launchpad-sdk';
const message = ' Hello world ';
const trimmed = conditionalTrimAndValidateString(message);
console.log(trimmed); // 'Hello world'
const empty = ' ';
console.log(conditionalTrimAndValidateString(empty)); // null
const undefined_ = undefined;
console.log(conditionalTrimAndValidateString(undefined_)); // null
Chat message validation
import { conditionalTrimAndValidateString } from '@gala-chain/launchpad-sdk';
const chatMessage = userInput?.trim();
// OLD: if (chatMessage && chatMessage.length > 0) { ... }
// NEW:
const validatedMessage = conditionalTrimAndValidateString(userInput, 'message');
if (validatedMessage !== null) {
await sdk.sendChatMessage(validatedMessage);
}
Comment with minimum length
import { conditionalTrimAndValidateString } from '@gala-chain/launchpad-sdk';
const comment = ' Hi '; // Only 2 chars after trim
const validated = conditionalTrimAndValidateString(comment, 'comment', 5);
console.log(validated); // null (2 < 5)
const goodComment = ' This is great! '; // 14 chars after trim
const result = conditionalTrimAndValidateString(goodComment, 'comment', 5);
console.log(result); // 'This is great!'
Ban reason validation
import { conditionalTrimAndValidateString } from '@gala-chain/launchpad-sdk';
const reason = userProvidedReason;
// OLD: if (reason?.trim() && reason.trim().length > 0) { ... }
// NEW:
const validatedReason = conditionalTrimAndValidateString(reason, 'reason');
if (validatedReason !== null) {
await sdk.createBan({ tokenName, userAddress, reason: validatedReason });
}
Since
6.14.0