UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

39 lines (38 loc) 1.03 kB
"use strict"; 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 ""; } }