locutus
Version:
Locutus other languages' standard libraries to JavaScript for fun and educational purposes
24 lines (23 loc) • 984 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.strcoll = strcoll;
const _phpRuntimeState_ts_1 = require("../_helpers/_phpRuntimeState.js");
const setlocale_ts_1 = require("../strings/setlocale.js");
function strcoll(str1, str2) {
// discuss at: https://locutus.io/php/strcoll/
// parity verified: PHP 8.3
// original by: Brett Zamir (https://brett-zamir.me)
// improved by: Brett Zamir (https://brett-zamir.me)
// example 1: strcoll('a', 'b')
// returns 1: -1
(0, setlocale_ts_1.setlocale)('LC_ALL', 0); // ensure setup of localization variables takes place
const localeCollation = (0, _phpRuntimeState_ts_1.getPhpLocaleGroup)('LC_COLLATE', 'LC_COLLATE');
if (!localeCollation) {
return str1.localeCompare(str2);
}
const cmp = localeCollation.LC_COLLATE;
if (typeof cmp !== 'function') {
return str1.localeCompare(str2);
}
return cmp(str1, str2);
}