A callback that implements a custom Sass function. This can be passed to functions.
constresult = sass.compile('style.scss', {
functions: {
"sum($arg1, $arg2)": (args) => {
constarg1 = args[0].assertNumber('arg1');
constvalue1 = arg1.value;
constvalue2 = args[1].assertNumber('arg2')
.convertValueToMatch(arg1, 'arg2', 'arg1');
returnnewsass.SassNumber(value1 + value2).coerceToMatch(arg1);
}
}
});
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's toString() will be used. This means it's safe for custom functions to throw plain strings.
An array of arguments passed by the function's caller. If the function takes arbitrary arguments, the last element will be a SassArgumentList.
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.
© 2006–2025 the Sass team, and numerous contributors
Licensed under the MIT License.
https://sass-lang.com/documentation/js-api/types/CustomFunction
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.