hyperformula
Version:
HyperFormula is a JavaScript engine for efficient processing of spreadsheet-like data and formulas
43 lines (41 loc) • 1.25 kB
JavaScript
;
exports.__esModule = true;
exports.CodePlugin = void 0;
var _Cell = require("../../Cell");
var _errorMessage = require("../../error-message");
var _FunctionPlugin = require("./FunctionPlugin");
/**
* @license
* Copyright (c) 2025 Handsoncode. All rights reserved.
*/
class CodePlugin extends _FunctionPlugin.FunctionPlugin {
code(ast, state) {
return this.runFunction(ast.args, state, this.metadata('CODE'), value => {
if (value.length === 0) {
return new _Cell.CellError(_Cell.ErrorType.VALUE, _errorMessage.ErrorMessage.EmptyString);
}
return value.charCodeAt(0);
});
}
unicode(ast, state) {
return this.runFunction(ast.args, state, this.metadata('UNICODE'), value => {
var _a;
return (_a = value.codePointAt(0)) !== null && _a !== void 0 ? _a : new _Cell.CellError(_Cell.ErrorType.VALUE, _errorMessage.ErrorMessage.EmptyString);
});
}
}
exports.CodePlugin = CodePlugin;
CodePlugin.implementedFunctions = {
'CODE': {
method: 'code',
parameters: [{
argumentType: _FunctionPlugin.FunctionArgumentType.STRING
}]
},
'UNICODE': {
method: 'unicode',
parameters: [{
argumentType: _FunctionPlugin.FunctionArgumentType.STRING
}]
}
};