Compare commits

..
Author SHA1 Message Date
cliphouse c38ff8b405 Merge branch 'development' into feature/TTD-2662/function-add-to-ArrayCombined 2026-09-18 15:44:01 +09:00
cliphouse 66d5f6247b Add eslint packages 2026-09-18 15:43:01 +09:00
Clemens Schwaighofer e2362418aa phive updates 2026-04-20 10:36:26 +09:00
Clemens Schwaighofer 71e34848d9 Merge branch 'development' into feature/TTD-2662/function-add-to-ArrayCombined 2026-04-17 18:57:59 +09:00
Clemens Schwaighofer f275180571 Add bew array handler functions for various array interfaces
get random entry, remove array entry by value, add string to each entry in array, create sort by array key
2026-03-25 18:51:28 +09:00
6 changed files with 99 additions and 6 deletions
+8
View File
@@ -124,3 +124,11 @@ The development for those files is located in a different repository
General: <https://[service]/CodeBlocks/JavaScript.utils>
Org: <https://[serverice]/[org]/Code-Blocks.JavaScript.utils>
### Update NPM packages
```sh
npm-check-updates
ncu -u
npm install
```
+4
View File
@@ -18,6 +18,10 @@ export default [
globals: {
...globals.browser,
...globals.jquery
},
parserOptions: {
ecmaVersion: 2022,
sourceType: "script",
}
}},
pluginJs.configs.recommended,
+4 -4
View File
@@ -9,9 +9,9 @@
"license": "",
"description": "Core Libraries",
"devDependencies": {
"@eslint/js": "^9.20.0",
"esbuild": "^0.25.0",
"eslint": "^9.20.1",
"globals": "^15.15.0"
"@eslint/js": "^10.0.1",
"esbuild": "^0.28.1",
"eslint": "^10.5.0",
"globals": "^17.7.0"
}
}
+1 -1
View File
@@ -15,7 +15,7 @@
]
},
"repositories": {
"git.egplusww.jp.Composer": {
"packages.omnicomproduction.jp.Composer": {
"type": "composer",
"url": "https://packages.omnicomproduction.jp/api/packages/Composer/composer"
}
+1 -1
View File
@@ -60,7 +60,7 @@ class File
* @param string $read_file File to read, relative or absolute path
* @return string mime type
* @throws \UnexpectedValueException if file cannot be read or is not a file
* @throws \RangeException if we cannot get a mime type and throw exception is on
* @throws \RangeException if we cannot get a mime type
*/
public static function getMimeType(string $read_file): string
{
@@ -811,6 +811,87 @@ class ArrayHandler
);
return $in_array;
}
/**
* TODO: move to CoreLibs ArrayCombined
* return one random entry from an array (value)
* the return entry is null if the incoming array is empty
* the array can also be an array of arrays
*
* @param array<mixed> $array
* @return string|int|float|bool|array<mixed>|null
*/
public static function getRandomEntryFromArray(array $array): string|int|float|bool|array|null
{
if (empty($array)) {
return null;
}
$random_index = array_rand($array);
return $array[$random_index];
}
/**
* TODO: move to CoreLibs ArrayCombined
* find and remove one value
* on default removes only the first entry
* on default does not strict compare
*
* @param array<mixed> $array
* @param string|int|float|bool|array<mixed> $value
* @param bool $strict [false]
* @return array<mixed>
*/
public static function removeArrayEntryByValue(
array $array,
string|int|float|bool|array $value,
bool $strict = false,
): array {
return array_filter($array, function ($element) use ($value, $strict) {
return $strict ?
$element !== $value :
$element != $value;
});
}
/**
* TODO: move to CoreLibs ArrayCombined
* add a string to each element in an array, default is at the end of the value,
* can be switched with the prefix flag
*
* @param array<string> $array
* @param string $string_to_add
* @param bool $prefix [false]
* @return array<string>
*/
public static function addStringToEachValueInArray(array $array, string $string_to_add, bool $prefix = false): array
{
return array_map(function ($value) use ($string_to_add, $prefix) {
return $prefix ?
$string_to_add . $value :
$value . $string_to_add;
}, $array);
}
/**
* sort by key any array, even if it is nested
*
* @param array<mixed> $data
* @return array<mixed>
*/
public static function createSortedArrayByKey(array $data): array
{
// Sort by keys
ksort($data);
// Recursively sort nested arrays
foreach ($data as $key => $value) {
if (is_array($value)) {
$data[$key] = self::createSortedArrayByKey($value);
}
}
return $data;
}
}
// __END__