@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
39 lines (38 loc) • 1.03 kB
JavaScript
;
import { isNumber, isString } from "../../../core/Type";
import { BaseMethod } from "./_Base";
function toString(arg) {
if (arg == null) {
return "";
}
return isString(arg) ? arg : `${arg}`;
}
function toInt(arg, defaultVal) {
if (arg == null) {
return defaultVal;
}
return isNumber(arg) ? arg : parseInt(arg);
}
export class StrSubExpression extends BaseMethod {
// str_chars_count('bla') => 3
static requiredArguments() {
return [
["string", "string to get range from"],
["integer", "range start"],
["integer", "range size"]
];
}
// findDependency(index_or_path: number | string): MethodDependency | null {
// return null;
// // return this.createDependencyFromIndexOrPath(index_or_path)
// }
async processArguments(args) {
const string = toString(args[0]);
const rangeStart = toInt(args[1], 0);
let rangeSize = toInt(args[2], 1);
if (string) {
return string.substring(rangeStart, rangeStart + rangeSize);
}
return "";
}
}