UNPKG

locutus

Version:

Locutus other languages' standard libraries to JavaScript for fun and educational purposes

24 lines (23 loc) 984 B
"use strict"; 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); }