easy-api.ts
Version:
A powerful library to create your own API with ease.
1 lines • 1.6 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0});let APIFunction_1=require("../../classes/structures/APIFunction");class AdvancedReplace extends APIFunction_1.APIFunction{name="$advancedReplace";description="Replace text with advanced options.";parameters=[{name:"Text",description:"The text to work with.",type:APIFunction_1.ParamType.String,required:!0,rest:!1,defaultValue:null},{name:"Match",description:"The word to be matched.",type:APIFunction_1.ParamType.String,required:!0,rest:!1,defaultValue:null},{name:"New Value",description:"The new value to replace the match with.",type:APIFunction_1.ParamType.String,required:!1,rest:!1,defaultValue:" "},{name:"Amount",description:"How many times to perform the replacement.",type:APIFunction_1.ParamType.Number,required:!1,rest:!1,defaultValue:"-1"},{name:"Direction",description:"Direction of replacement. (forward or backward)",type:APIFunction_1.ParamType.String,required:!1,rest:!1,defaultValue:"fwd",allowedValues:["fwd","bwd","forward","backward"]}];usage="$advancedReplace[text;match;newValue?;amount?;direction?]";returns=APIFunction_1.ParamType.String;aliases=["$advancedReplaceText"];compile=!0;async run(e,[t,r,n="",i="-1",c="fwd"]){let d=t.match(new RegExp(r,"g"))||[],l={fwd:0,bwd:d.length};return"bwd"===c||"backward"===c?t.split("").reverse().join("").replace(new RegExp(r.split("").reverse().join(""),"g"),(e,t,a)=>(--l[c]>=d.length-Math.max(1,Number(i))?n:r).split("").reverse().join("")).split("").reverse().join(""):t.replace(new RegExp(r,"g"),(e,t)=>++l[c]<=Math.max(1,Number(i))?n:r)}}exports.default=AdvancedReplace;