CustomFunction<sync>
Type Parameters
-
sync extends "sync" | "async"
Type declaration
-
- (args: Value[]): PromiseOr<Value, sync>
-
A callback that implements a custom Sass function. This can be passed to functions.
const result = sass.compile('style.scss', {
functions: {
"sum($arg1, $arg2)": (args) => {
const arg1 = args[0].assertNumber('arg1');
const value1 = arg1.value;
const value2 = args[1].assertNumber('arg2')
.convertValueToMatch(arg1, 'arg2', 'arg1');
return new sass.SassNumber(value1 + value2).coerceToMatch(arg1);
}
}
});Throws
any - This function may throw an error, which the Sass compiler will treat as the function call failing. If the exception object has a
message
property, it will be used as the wrapped exception's message; otherwise, the exception object'stoString()
will be used. This means it's safe for custom functions to throw plain strings.Parameters
-
args: Value[]
An array of arguments passed by the function's caller. If the function takes arbitrary arguments, the last element will be a SassArgumentList.
Returns PromiseOr<Value, sync>
The function's result. This may be in the form of a
Promise
, but if it is the function may only be passed to compileAsync and compileStringAsync, not compile or compileString. -
A
CustomFunction<'sync'>
must return synchronously, but in return it can be passed to compile and compileString in addition to compileAsync and compileStringAsync.A
CustomFunction<'async'>
may either return synchronously or asynchronously, but it can only be used with compileAsync and compileStringAsync.