@webhare/std offers APIs that may have generic use but are especially useful when building WebHare applications

String manipulation

Be careful when porting the UC (Unicode) functions in HareScript especially when dealing with characters outside the 16 bit range. JavaScript length and substr(ing) operators are based on the UTF16 string representation which does not correspond to the actual codepoints. Ie: UCLength('😀') = 1, Length('😀') = 4 and '😀'.length == 2. Consider the String iterator



@webhare/hscompat offers APIs useful for migrating to JS but things that we don't consider best practice



We also strongly advise against direct selection of any system tables from JavaScript. Generated fields (eg parentsite, whfspath, webroot) are not easily available and considered internal implementations. You should instead use object-based APis such as listSites or list on a WHFSFolder.