import * as plugins from "./smartstring.plugins"; let splitString = (stringArg:string):string[] => { let resultArray = stringArg.split("\n"); return cleanStringArray(resultArray); }; let joinString = (stringArrayArg:string[]):string => { let resultString:string = ""; for(let line of stringArrayArg){ resultString = resultString + line + "\n"; }; return resultString; }; let cleanStringArray = (stringArrayArg:string[]):string[] => { let testRegex = /^[\s]*$/; if(testRegex.test(stringArrayArg[0])){ stringArrayArg.shift(); } if(testRegex.test(stringArrayArg[stringArrayArg.length - 1])){ stringArrayArg.pop(); }; return stringArrayArg; } export let indent = (stringArg:string,spaceAmount:number):string => { let resultString:string; return resultString; }; export let indentWithPrefix = (stringArg:string,prefixArg:string):string => { let resultString:string; let stringArray = splitString(stringArg); let resultArray:string[] = []; for(let stringItem of stringArray){ resultArray.push(prefixArg + stringItem); }; resultString = joinString(resultArray); return resultString; }; export let normalize = (stringArg:string):string => { let resultString:string; let splitStringArray:string[] = splitString(stringArg); let minCommonLeftOffset:number; let deIndentRegex = /^(\s*)/; let emptyLineRegex = /^(\s*)$/ for(let stringItem of splitStringArray){ let offsetString = deIndentRegex.exec(stringItem)[1]; if ( (typeof minCommonLeftOffset == "undefined" || offsetString.length < minCommonLeftOffset) && !emptyLineRegex.test(stringItem) ){ minCommonLeftOffset = offsetString.length; }; }; let resultSplitStringArray = []; for(let stringItem of splitStringArray){ resultSplitStringArray.push(stringItem.substr(minCommonLeftOffset)); }; resultString = joinString(resultSplitStringArray); return resultString; }