@sudoo/marked
Version:
JavaScript & TypeScript code runner in JavaScript, safe with marked territory, asynchronous
96 lines (95 loc) • 3.82 kB
JavaScript
;
/**
* @author WMXPY
* @namespace Operation_MemberExpression
* @description String
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.memberExpressionString = void 0;
const error_code_1 = require("../../declare/error-code");
const error_1 = require("../../util/error/error");
const wrap_member_function_1 = require("../../util/wrap-member-function");
const memberExpressionString = (sandbox, target, key) => {
if (typeof key === "string") {
switch (key) {
case "concat": {
return (0, wrap_member_function_1.wrapMemberFunction)(sandbox, (...args) => {
return target.concat(...args);
});
}
case "endsWith": {
return (0, wrap_member_function_1.wrapMemberFunction)(sandbox, (slice) => {
return target.endsWith(slice);
});
}
case "includes": {
return (0, wrap_member_function_1.wrapMemberFunction)(sandbox, (slice) => {
return target.includes(slice);
});
}
case "length": {
return target.length;
}
case "padEnd": {
return (0, wrap_member_function_1.wrapMemberFunction)(sandbox, (length, fillString) => {
return target.padEnd(length, fillString);
});
}
case "padStart": {
return (0, wrap_member_function_1.wrapMemberFunction)(sandbox, (length, fillString) => {
return target.padStart(length, fillString);
});
}
case "repeat": {
return (0, wrap_member_function_1.wrapMemberFunction)(sandbox, (count) => {
return target.repeat(count);
});
}
case "replace": {
return (0, wrap_member_function_1.wrapMemberFunction)(sandbox, (searchValue, replaceValue) => {
return target.replace(searchValue, replaceValue);
});
}
case "slice": {
return (0, wrap_member_function_1.wrapMemberFunction)(sandbox, (start, end) => {
return target.slice(start, end);
});
}
case "split": {
return (0, wrap_member_function_1.wrapMemberFunction)(sandbox, (separator) => {
return target.split(separator);
});
}
case "substring": {
return (0, wrap_member_function_1.wrapMemberFunction)(sandbox, (start, end) => {
return target.substring(start, end);
});
}
case "startsWith": {
return (0, wrap_member_function_1.wrapMemberFunction)(sandbox, (slice) => {
return target.startsWith(slice);
});
}
case "toLowerCase": {
return (0, wrap_member_function_1.wrapMemberFunction)(sandbox, () => {
return target.toLowerCase();
});
}
case "toString": {
return (0, wrap_member_function_1.wrapMemberFunction)(sandbox, () => {
return target.toString();
});
}
case "toUpperCase": {
return (0, wrap_member_function_1.wrapMemberFunction)(sandbox, () => {
return target.toUpperCase();
});
}
}
}
if (typeof key === "number") {
return target.charAt(key);
}
throw (0, error_1.error)(error_code_1.ERROR_CODE.STRING_METHOD_NOT_FOUND);
};
exports.memberExpressionString = memberExpressionString;