Variable: FlameGuards¶
constFlameGuards:object
Predefined type guards for primitives, objects, and GAS sheet values.
Each guard narrows unknown to a specific type.
Grouped into three categories:
- Primitives: undefined, null, boolean, number, string
- Objects: plain object, array, Map, Date
- GAS Sheet values: empty string, string-or-number, 2D array (table)
Type Declaration¶
isUndefined¶
isUndefined: (
value) =>value is undefined
Returns true if value is undefined.
Parameters¶
value¶
unknown
Returns¶
value is undefined
isNull¶
isNull: (
value) =>value is null
Returns true if value is null.
Parameters¶
value¶
unknown
Returns¶
value is null
isBoolean¶
isBoolean: (
value) =>value is boolean
Returns true if value is a boolean (true or false).
Parameters¶
value¶
unknown
Returns¶
value is boolean
true if value is a boolean, false otherwise
isNumber¶
isNumber: (
value) =>value is number
Returns true if value is a finite number (excludes NaN).
Parameters¶
value¶
unknown
Returns¶
value is number
true if value is a number and not NaN, false otherwise
isString¶
isString: (
value) =>value is string
Returns true if value is a string.
Parameters¶
value¶
unknown
Returns¶
value is string
isFunction¶
isFunction: (
value) =>value is (args: unknown[]) => unknown
Returns true if value is a function.
Parameters¶
value¶
unknown
Returns¶
value is (args: unknown[]) => unknown
isPlainObject¶
isPlainObject: (
value) =>value is Record<string, unknown>
Returns true if value is a plain object ({}). Arrays and Maps return false.
Parameters¶
value¶
unknown
Returns¶
value is Record<string, unknown>
isArray¶
isArray: (
value) =>value is unknown[]
Returns true if value is an array.
Parameters¶
value¶
unknown
Returns¶
value is unknown[]
isMap¶
isMap: (
value) =>value is Map<unknown, unknown>
Returns true if value is a Map.
Parameters¶
value¶
unknown
Returns¶
value is Map<unknown, unknown>
isValidDate¶
isValidDate: (
value) =>value is Date
Returns true if value is a valid Date (not Invalid Date).
Parameters¶
value¶
unknown
Returns¶
value is Date
true if value is a valid Date instance, false otherwise
Remarks¶
Uses Object.prototype.toString instead of instanceof Date to avoid false
negatives across GAS script boundaries, where Date objects may not share
the same constructor reference.
isEmptyString¶
isEmptyString: (
value) =>value is ""
Returns true if value is an empty string ("").
Parameters¶
value¶
unknown
Returns¶
value is ""
isStringOrNumber¶
isStringOrNumber: (
value) => value is string | number
Returns true if value is a string or a finite number.
Parameters¶
value¶
unknown
Returns¶
value is string | number
true if value is a string or number (including NaN), false otherwise
Remarks¶
Useful for validating spreadsheet cell values, which are commonly either text or numeric.
isTable¶
isTable: (
value) =>value is unknown[][]
Returns true if value is a 2D array (i.e., an array of arrays).
Parameters¶
value¶
unknown
Returns¶
value is unknown[][]
true if value is a 2D array, false otherwise
Remarks¶
Matches the shape returned by Sheet.getValues() in Google Apps Script.
Each row must be an array; empty arrays and partial rows are accepted.
Example¶
const data = [["a", "b"], [1, 2]];
FlameGuards.isTable(data); // true
const notTable = [["a", "b"], 123];
FlameGuards.isTable(notTable); // false (second element is not an array)
const empty = [];
FlameGuards.isTable(empty); // true (empty 2D array is valid)
Example¶
if (FlameGuards.isString(value)) {
Logger.log(value.toUpperCase()); // value is typed as string
}
if (FlameGuards.isTable(data)) {
Logger.log(`rows: ${data.length}`); // data is typed as unknown[][]
}
See¶
FlameWright - Factory for parameterized validators
Since¶
0.37.0