Compare commits
5
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c38ff8b405 | ||
|
|
66d5f6247b | ||
|
|
e2362418aa | ||
|
|
71e34848d9 | ||
|
|
f275180571 |
@@ -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
|
||||
```
|
||||
|
||||
@@ -18,6 +18,10 @@ export default [
|
||||
globals: {
|
||||
...globals.browser,
|
||||
...globals.jquery
|
||||
},
|
||||
parserOptions: {
|
||||
ecmaVersion: 2022,
|
||||
sourceType: "script",
|
||||
}
|
||||
}},
|
||||
pluginJs.configs.recommended,
|
||||
|
||||
+4
-4
@@ -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
@@ -15,7 +15,7 @@
|
||||
]
|
||||
},
|
||||
"repositories": {
|
||||
"git.egplusww.jp.Composer": {
|
||||
"packages.omnicomproduction.jp.Composer": {
|
||||
"type": "composer",
|
||||
"url": "https://packages.omnicomproduction.jp/api/packages/Composer/composer"
|
||||
}
|
||||
|
||||
@@ -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__
|
||||
|
||||
Reference in New Issue
Block a user