@yamato-daiwa/es-extensions 1.8.7 → 1.9.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = createSetBasedOnAnyArrayLikeCollection;
4
+ function createSetBasedOnAnyArrayLikeCollection(targetIterable, elementTransformer) {
5
+ return new Set(Array.from(targetIterable).map(elementTransformer));
6
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = getOneElementOfSet;
7
+ const isUndefined_1 = __importDefault(require("../TypeGuards/EmptyTypes/isUndefined"));
8
+ const Logger_1 = __importDefault(require("../Logging/Logger"));
9
+ const UnexpectedEventError_1 = __importDefault(require("../Errors/UnexpectedEvent/UnexpectedEventError"));
10
+ function getOneElementOfSet(targetSet, options) {
11
+ const element = targetSet[Symbol.iterator]().next().value;
12
+ if ((0, isUndefined_1.default)(element)) {
13
+ if (options?.mustThrowErrorIfSetIsEmpty === true) {
14
+ Logger_1.default.throwErrorWithFormattedMessage({
15
+ errorInstance: new UnexpectedEventError_1.default("Contrary to expectations, target set is empty thus there is no the element can be got."),
16
+ title: UnexpectedEventError_1.default.localization.defaultTitle,
17
+ occurrenceLocation: "getOneElementOfSet(targetSet, options)"
18
+ });
19
+ }
20
+ }
21
+ return element;
22
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = removeOneElementFromSet;
7
+ const isUndefined_1 = __importDefault(require("../TypeGuards/EmptyTypes/isUndefined"));
8
+ const Logger_1 = __importDefault(require("../Logging/Logger"));
9
+ const UnexpectedEventError_1 = __importDefault(require("../Errors/UnexpectedEvent/UnexpectedEventError"));
10
+ function removeOneElementFromSet({ targetSet, mustThrowErrorIfSetIsEmpty, mutably }) {
11
+ const element = targetSet[Symbol.iterator]().next().value;
12
+ if ((0, isUndefined_1.default)(element)) {
13
+ if (mustThrowErrorIfSetIsEmpty) {
14
+ Logger_1.default.throwErrorWithFormattedMessage({
15
+ errorInstance: new UnexpectedEventError_1.default("Contrary to expectations, target set is empty thus there is no the element can be deleted."),
16
+ title: UnexpectedEventError_1.default.localization.defaultTitle,
17
+ occurrenceLocation: "removeOneElementOfSet(compoundParameter)"
18
+ });
19
+ }
20
+ return { updatedSet: mutably ? targetSet : new Set([...targetSet]) };
21
+ }
22
+ if (mutably) {
23
+ targetSet.delete(element);
24
+ return {
25
+ removedElement: element,
26
+ updatedSet: targetSet
27
+ };
28
+ }
29
+ const swallowCopy = new Set([...targetSet]);
30
+ swallowCopy.delete(element);
31
+ return {
32
+ removedElement: element,
33
+ updatedSet: swallowCopy
34
+ };
35
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = removeSpecifiedFileNameExtensionsFromPath;
7
+ const splitString_1 = __importDefault(require("../../../splitString"));
8
+ const replaceDoubleBackslashesWithForwardSlashes_1 = __importDefault(require("../../../replaceDoubleBackslashesWithForwardSlashes"));
9
+ const getLastElementOfArray_1 = __importDefault(require("../../../../Arrays/01-RetrievingOfElements/getLastElementOfArray"));
10
+ const createSetBasedOnAnyArrayLikeCollection_1 = __importDefault(require("../../../../Sets/createSetBasedOnAnyArrayLikeCollection"));
11
+ const removeSpecificCharacterFromCertainPosition_1 = __importDefault(require("../../../removeSpecificCharacterFromCertainPosition"));
12
+ function removeSpecifiedFileNameExtensionsFromPath({ filePath, mustIgnoreLastOrSingleFileNameExtension, filesNamesExtensions: filesNamesExtensions__possiblyWithLeadingDots, pathsSeparatorMustBeUsedInOutputPathWhen2_KindsMixedInInitialPaths }) {
13
+ const mutableSegmentsOfTargetPath = (0, splitString_1.default)((0, replaceDoubleBackslashesWithForwardSlashes_1.default)(filePath), "/");
14
+ const lastPathSegment = (0, getLastElementOfArray_1.default)(mutableSegmentsOfTargetPath);
15
+ if (lastPathSegment === null || !lastPathSegment.includes(".") || lastPathSegment === ".") {
16
+ return filePath;
17
+ }
18
+ const mutableSubsegmentsOfLastPathSegment = (0, splitString_1.default)(lastPathSegment, ".");
19
+ const indexOfLastFileNameExtension = mutableSubsegmentsOfLastPathSegment.length - 1;
20
+ const targetFilesNamesExtensions = (0, createSetBasedOnAnyArrayLikeCollection_1.default)(filesNamesExtensions__possiblyWithLeadingDots, (fileNameExtension) => (0, removeSpecificCharacterFromCertainPosition_1.default)({
21
+ targetString: fileNameExtension,
22
+ targetCharacter: ".",
23
+ fromFirstPosition: true
24
+ }));
25
+ for (let index = lastPathSegment.length - 1; index > 0; index--) {
26
+ const subsegmentOfLastPathSegment = mutableSubsegmentsOfLastPathSegment[index];
27
+ if (targetFilesNamesExtensions.has(subsegmentOfLastPathSegment)) {
28
+ if (mustIgnoreLastOrSingleFileNameExtension === true && index === indexOfLastFileNameExtension) {
29
+ continue;
30
+ }
31
+ mutableSubsegmentsOfLastPathSegment.splice(index, 1);
32
+ }
33
+ }
34
+ mutableSegmentsOfTargetPath[mutableSegmentsOfTargetPath.length - 1] = mutableSubsegmentsOfLastPathSegment.join(".");
35
+ if (filePath.includes("\\")) {
36
+ if (filePath.includes("/")) {
37
+ return mutableSegmentsOfTargetPath.join(pathsSeparatorMustBeUsedInOutputPathWhen2_KindsMixedInInitialPaths);
38
+ }
39
+ return mutableSegmentsOfTargetPath.join("\\");
40
+ }
41
+ return mutableSegmentsOfTargetPath.join("/");
42
+ }
@@ -11,9 +11,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.MockGatewayHelperLocalization__English = exports.MockGatewayHelper = exports.DataMocking = exports.MINIMAL_CHARACTERS_COUNT_OF_EMAIL_ADDRESS = exports.MAXIMAL_CHARACTERS_COUNT_OF_EMAIL_ADDRESS = exports.EMAIL_ADDRESS_VALID_PATTERN = exports.CHARACTERS_COUNT_IN_FULL_ISO8601_STRING = exports.MAXIMAL_CHARACTERS_COUNT_IN_DATE_PART_OF_ISO8601_STRING = exports.SECONDS_COUNT_IN_MINUTE = exports.MonthsNames = exports.MONTHS_COUNT_IN_YEAR = exports.MINUTES_COUNT_IN_HOUR = exports.MINIMAL_SUPPORTED_UNIX_MILLISECONDS_AMOUNT = exports.MAXIMAL_SUPPORTED_UNIX_MILLISECONDS_AMOUNT = exports.MAXIMAL_DAYS_IN_MONTH = exports.HOURS_COUNT_IN_STELLAR_DAY = exports.DaysOfWeekNames = exports.DAYS_COUNT_IN_WEEK = exports.IntegerDataTypes = exports.ServerErrorsHTTP_StatusCodes = exports.ClientErrorsHTTP_StatusCodes = exports.RedirectionResponsesHTTP_StatusCodes = exports.SuccessfulResponsesHTTP_StatusCodes = exports.InformationalResponsesHTTP_StatusCodes = exports.HTTP_StatusCodes = exports.NETWORK_PORT_MINIMAL_VALUE = exports.NETWORK_PORT_MAXIMAL_VALUE = exports.HTTPS_DEFAULT_PORT = exports.HTTP_Methods = exports.HTTP_DEFAULT_PORT = exports.YDEE_BUG_REPORTING_PAGE_URI = exports.readonlyArrayToMutableOne = exports.addElementsToArrayIfTheyAreNotPresentOtherwiseRemove = exports.twoDimensionalizeArray = exports.removeArrayElementsByPredicates = exports.removeArrayElementsByIndexes = exports.swapArrayElements = exports.moveArrayElementToOnePosition = exports.replaceArrayElementsByPredicates = exports.replaceArrayElementsByIndexesImmutably = exports.addElementsToArray = exports.cropArray = exports.getIndexOfArrayElementSatisfiesThePredicateIfSuchElementIsExactlyOne = exports.getIndexesOfSatisfiesThePredicateArrayElements = exports.getLastElementOfArray = exports.getArrayElementSatisfiesThePredicateIfSuchElementIsExactlyOne = exports.createArrayOfNaturalNumbers = exports.serializeURI_QueryParameters = exports.FetchAPI_Service = exports.AJAX_Service = void 0;
12
12
  exports.InvalidParameterValueError = exports.invalidExternalDataErrorLocalization__english = exports.InvalidExternalDataError = exports.invalidConfigErrorLocalization__english = exports.InvalidConfigError = exports.interProcessInteractionFailedErrorLocalization__english = exports.InterProcessInteractionFailedError = exports.incompatiblePropertiesInObjectTypeParameterErrorLocalization__english = exports.IncompatiblePropertiesInObjectTypeParameterError = exports.improperUsageErrorLocalization__english = exports.ImproperUsageError = exports.fileWritingFailedErrorLocalization__english = exports.FileWritingFailedError = exports.fileReadingFailedErrorLocalization__english = exports.FileReadingFailedError = exports.dataSubmittingFailedErrorLocalization__english = exports.DataSubmittingFailedError = exports.dataRetrievingFailedErrorLocalization__english = exports.DataRetrievingFailedError = exports.DOM_ElementRetrievingFailedErrorLocalization__english = exports.DOM_ElementRetrievingFailedError = exports.crossBrowserIssueErrorLocalization__english = exports.CrossBrowserIssueError = exports.configFileNotFoundErrorLocalization__english = exports.ConfigFileNotFoundError = exports.classRequiredInitializationHasNotBeenExecutedErrorLocalization__english = exports.ClassRequiredInitializationHasNotBeenExecutedError = exports.classRedundantSubsequentInitializationErrorLocalization__english = exports.ClassRedundantSubsequentInitializationError = exports.algorithmMismatchErrorLocalization__english = exports.AlgorithmMismatchError = exports.substituteWhenUndefined = exports.substituteWhenNull = exports.Timer = exports.TimePoint = exports.secondsToMilliseconds = exports.millisecondsToSeconds = exports.isValidNativeDate = exports.hasTimeCome = exports.getYearOfPreviousMonth = exports.getYearOfNextMonth = exports.getPreviousMonthNumber = exports.getNextMonthNumber = exports.getMonthNumberByName = exports.getMonthNameByNumber = exports.getISO8601_StringWithoutTimePart = exports.getDaysCountInSpecificMonth = exports.DateWithoutTime = exports.convert24_HoursFormatTo12_HoursFormat = exports.CalendarBuilder = void 0;
13
13
  exports.getRandomSubarray = exports.gettingOfRandomStringLocalization__english = exports.RandomStringsGenerator = exports.getRandomString = exports.getRandomObjectPropertyValue = exports.getRandomLatinCharacter = exports.getRandomInteger = exports.getRandomBoolean = exports.getRandomArrayElement = exports.PromisesQueue = exports.getItemsOfPaginationPage = exports.computeLastItemNumberForSpecificPaginationPage = exports.computeFirstItemNumberForSpecificPaginationPage = exports.PaginationCollection = exports.getObjectPropertySafely = exports.separateEach4_DigitsGroupWithComma = exports.separateEach3_DigitsGroupWithComma = exports.roundUpToSpecificIntegerPlaceValue = exports.roundToSpecifiedNearestDecimalPlaceValue = exports.roundToSpecificNearestIntegerPlaceValue = exports.roundDownToSpecificIntegerPlaceValue = exports.limitMinimalValue = exports.limitMinimalAndMaximalValues = exports.limitMaximalValue = exports.isStringifiedNonNegativeIntegerOfRegularNotation = exports.getArithmeticMean = exports.formatNumberWith4_KetaKanji = exports.replaceValuesInMap = exports.removeEntriesFromMap = exports.mergeMaps = exports.invertMapImmutably = exports.getExpectedToBeNonUndefinedMapValue = exports.filterMap = exports.createMapBasedOnOtherMap = exports.addEntriesToMap = exports.PoliteErrorsMessagesBuilder__English = exports.PoliteErrorsMessagesBuilder = exports.loggerLocalization__english = exports.Logger = exports.StringTypeID_Generator = exports.encodeFileToBase64 = exports.HTTP_ResponseBodyParsingFailureErrorLocalization__english = exports.HTTP_ResponseBodyParsingFailureError = exports.unsupportedScenarioErrorLocalization__english = exports.UnsupportedScenarioError = exports.unexpectedEventErrorLocalization__english = exports.UnexpectedEventError = exports.moduleDynamicLoadingFailedErrorLocalization__english = exports.ModuleDynamicLoadingFailedError = exports.invalidParameterValueErrorLocalization__english = void 0;
14
- exports.hasStringOnlySpecificCharacters = exports.getPositionsOfAllSubstringOccurrences = exports.getLastCharacter = exports.getEnglishAbbreviatedOrdinalNumber = exports.explodeStringToLines = exports.explodeCasedPhraseToWords = exports.EmailAddress = exports.cropString = exports.capitalizeFirstCharacter = exports.stringifyAndFormatArbitraryValue = exports.ArbitraryValueFormatter = exports.appendCharacterIfItDoesNotPresentInLastPosition = exports.adjustCharactersCount = exports.removeSpecificSegmentsFromURI_Path = exports.getURI_PartWithoutFragment = exports.generateMailtoURI_Scheme = exports.replaceLastURI_PathSegment = exports.explodeURI_PathToSegments = exports.getURI_Fragment = exports.appendFragmentToURI = exports.extractFileNameWithoutLastExtension = exports.extractFileNameWithAllExtensionsFromPath = exports.extractFileNameWithoutAnyExtensions = exports.removeAllFileNameExtensions = exports.extractLastExtensionOfFileName = exports.extractAllFileNameExtensions = exports.appendLastFileNameExtension = exports.replaceMatchesWithRegularExpressionToDynamicValue = exports.extractMatchingsWithRegularExpression = exports.getMatchingWithFirstRegularExpressionCapturingGroup = exports.LineSeparators = exports.getLineSeparatorType = exports.uppercaseLatinCharacters = exports.stringifiedDigits = exports.SpaceCharactersStringifiedHexCharactersForRegularExpressionWithUnicodeFlag = exports.SpaceCharacters = exports.lowercaseLatinCharacters = exports.EscapeCharacters = exports.removeSetElementsByPredicates = exports.mergeSets = exports.createSetBasedOnOtherSet = exports.addElementsToSet = exports.destringifyBooleanValueIfPossible = exports.convertPotentialStringToFloatIfPossible = exports.convertPotentialStringToIntegerIfPossible = exports.convertPotentialStringToNumberIfPossible = exports.rawObjectDataProcessorLocalization__english = exports.RawObjectDataProcessor = exports.removeRandomArrayElement = exports.getSpecificBooleanValueWithProbability = void 0;
15
- exports.isPossiblyReadonlyParsedJSON_Object = exports.isPossiblyReadonlyParsedJSON = exports.isNonNullObject = exports.isNonEmptyObject = exports.isNonEmptyArbitraryObject = exports.isEmptyObject = exports.isArbitraryObject = exports.isPositiveIntegerOrZero = exports.isPositiveDecimalFraction = exports.isNumber = exports.isNegativeIntegerOrZero = exports.isNegativeInteger = exports.isNegativeDecimalFraction = exports.isNaturalNumberOrZero = exports.isNaturalNumber = exports.isIntegerOfAnySign = exports.isIntegerOnAnySign = exports.isDecimalFractionOfAnySign = exports.isBigInt = exports.isUndefined = exports.isNull = exports.isNotUndefined = exports.isNotNull = exports.isNeitherUndefinedNorNull = exports.isEitherUndefinedOrNull = exports.isNonEmptyArray = exports.isEmptyArray = exports.IsArrayOfLengthCheck = exports.isArrayOfLength = exports.isArrayOfCertainTypeElements = exports.trimSpaces = exports.toUpperCamelCase = exports.toScreamingSnakeCase = exports.toLowerCamelCase = exports.surroundLabelByOrnament = exports.splitString = exports.reverseString = exports.replaceDoubleBackslashesWithForwardSlashes = exports.replaceBrHTML_TagToNewLineEscapeSequence = exports.replace2_OrMoreSpacesTo1 = exports.removeSpecificCharacterFromCertainPosition = exports.removeNthCharacter = exports.removeNonDigitsCharacters = exports.removeLastCharacter = exports.removeAllSpecifiedCharacters = exports.isStringIncludingAtLeastOneOfSubstrings = exports.isIPv4_AddressLiesInRange = exports.insertSubstringIf = exports.insertSubstring = exports.IndentationCoordinator = void 0;
16
- exports.ValuesDeepCopier = exports.undefinedToNull = exports.undefinedToFalse = exports.undefinedToEmptyString = exports.undefinedToEmptyArray = exports.nullToZero = exports.nullToUndefined = exports.nullToEmptyString = exports.emptyStringToUndefined = exports.emptyStringToTrue = exports.emptyStringToNull = exports.isFunctionLike = exports.isElementOfEnumeration = exports.isBoolean = exports.IsStringOfLengthCheck = exports.isStringOfLength = exports.isString = exports.isNonEmptyString = exports.isEmptyString = exports.areStringifiedDigitsOnly = void 0;
14
+ exports.explodeStringToLines = exports.explodeCasedPhraseToWords = exports.EmailAddress = exports.cropString = exports.capitalizeFirstCharacter = exports.stringifyAndFormatArbitraryValue = exports.ArbitraryValueFormatter = exports.appendCharacterIfItDoesNotPresentInLastPosition = exports.adjustCharactersCount = exports.removeSpecificSegmentsFromURI_Path = exports.getURI_PartWithoutFragment = exports.generateMailtoURI_Scheme = exports.replaceLastURI_PathSegment = exports.explodeURI_PathToSegments = exports.getURI_Fragment = exports.appendFragmentToURI = exports.extractFileNameWithoutLastExtension = exports.extractFileNameWithAllExtensionsFromPath = exports.extractFileNameWithoutAnyExtensions = exports.removeSpecifiedFileNameExtensionsFromPath = exports.removeAllFileNameExtensions = exports.extractLastExtensionOfFileName = exports.extractAllFileNameExtensions = exports.appendLastFileNameExtension = exports.replaceMatchesWithRegularExpressionToDynamicValue = exports.extractMatchingsWithRegularExpression = exports.getMatchingWithFirstRegularExpressionCapturingGroup = exports.LineSeparators = exports.getLineSeparatorType = exports.uppercaseLatinCharacters = exports.stringifiedDigits = exports.SpaceCharactersStringifiedHexCharactersForRegularExpressionWithUnicodeFlag = exports.SpaceCharacters = exports.lowercaseLatinCharacters = exports.EscapeCharacters = exports.removeSetElementsByPredicates = exports.removeOneElementFromSet = exports.mergeSets = exports.getOneElementOfSet = exports.createSetBasedOnOtherSet = exports.createSetBasedOnAnyArrayLikeCollection = exports.addElementsToSet = exports.destringifyBooleanValueIfPossible = exports.convertPotentialStringToFloatIfPossible = exports.convertPotentialStringToIntegerIfPossible = exports.convertPotentialStringToNumberIfPossible = exports.rawObjectDataProcessorLocalization__english = exports.RawObjectDataProcessor = exports.removeRandomArrayElement = exports.getSpecificBooleanValueWithProbability = void 0;
15
+ exports.isNonEmptyObject = exports.isNonEmptyArbitraryObject = exports.isEmptyObject = exports.isArbitraryObject = exports.isPositiveIntegerOrZero = exports.isPositiveDecimalFraction = exports.isNumber = exports.isNegativeIntegerOrZero = exports.isNegativeInteger = exports.isNegativeDecimalFraction = exports.isNaturalNumberOrZero = exports.isNaturalNumber = exports.isIntegerOfAnySign = exports.isDecimalFractionOfAnySign = exports.isBigInt = exports.isUndefined = exports.isNull = exports.isNotUndefined = exports.isNotNull = exports.isNeitherUndefinedNorNull = exports.isEitherUndefinedOrNull = exports.isNonEmptyArray = exports.isEmptyArray = exports.IsArrayOfLengthCheck = exports.isArrayOfLength = exports.isArrayOfCertainTypeElements = exports.trimSpaces = exports.toUpperCamelCase = exports.toScreamingSnakeCase = exports.toLowerCamelCase = exports.surroundLabelByOrnament = exports.splitString = exports.reverseString = exports.replaceDoubleBackslashesWithForwardSlashes = exports.replaceBrHTML_TagToNewLineEscapeSequence = exports.replace2_OrMoreSpacesTo1 = exports.removeSpecificCharacterFromCertainPosition = exports.removeNthCharacter = exports.removeNonDigitsCharacters = exports.removeLastCharacter = exports.removeAllSpecifiedCharacters = exports.isStringIncludingAtLeastOneOfSubstrings = exports.isIPv4_AddressLiesInRange = exports.insertSubstringIf = exports.insertSubstring = exports.IndentationCoordinator = exports.hasStringOnlySpecificCharacters = exports.getPositionsOfAllSubstringOccurrences = exports.getLastCharacter = exports.getEnglishAbbreviatedOrdinalNumber = void 0;
16
+ exports.ValuesDeepCopier = exports.undefinedToNull = exports.undefinedToFalse = exports.undefinedToEmptyString = exports.undefinedToEmptyArray = exports.nullToZero = exports.nullToUndefined = exports.nullToEmptyString = exports.emptyStringToUndefined = exports.emptyStringToTrue = exports.emptyStringToNull = exports.isFunctionLike = exports.isElementOfEnumeration = exports.isBoolean = exports.IsStringOfLengthCheck = exports.isStringOfLength = exports.isString = exports.isNonEmptyString = exports.isEmptyString = exports.areStringifiedDigitsOnly = exports.isPossiblyReadonlyParsedJSON_Object = exports.isPossiblyReadonlyParsedJSON = exports.isNonNullObject = void 0;
17
17
  var AJAX_Service_1 = require("./AJAX/AJAX_Service");
18
18
  Object.defineProperty(exports, "AJAX_Service", { enumerable: true, get: function () { return __importDefault(AJAX_Service_1).default; } });
19
19
  var FetchAPI_Service_1 = require("./AJAX/FetchAPI_Service");
@@ -305,10 +305,16 @@ var destringifyBooleanValueIfPossible_1 = require("./RawObjectDataProcessor/Help
305
305
  Object.defineProperty(exports, "destringifyBooleanValueIfPossible", { enumerable: true, get: function () { return __importDefault(destringifyBooleanValueIfPossible_1).default; } });
306
306
  var addElementsToSet_1 = require("./Sets/addElementsToSet");
307
307
  Object.defineProperty(exports, "addElementsToSet", { enumerable: true, get: function () { return __importDefault(addElementsToSet_1).default; } });
308
+ var createSetBasedOnAnyArrayLikeCollection_1 = require("./Sets/createSetBasedOnAnyArrayLikeCollection");
309
+ Object.defineProperty(exports, "createSetBasedOnAnyArrayLikeCollection", { enumerable: true, get: function () { return __importDefault(createSetBasedOnAnyArrayLikeCollection_1).default; } });
308
310
  var createSetBasedOnOtherSet_1 = require("./Sets/createSetBasedOnOtherSet");
309
311
  Object.defineProperty(exports, "createSetBasedOnOtherSet", { enumerable: true, get: function () { return __importDefault(createSetBasedOnOtherSet_1).default; } });
312
+ var getOneElementOfSet_1 = require("./Sets/getOneElementOfSet");
313
+ Object.defineProperty(exports, "getOneElementOfSet", { enumerable: true, get: function () { return __importDefault(getOneElementOfSet_1).default; } });
310
314
  var mergeSets_1 = require("./Sets/mergeSets");
311
315
  Object.defineProperty(exports, "mergeSets", { enumerable: true, get: function () { return __importDefault(mergeSets_1).default; } });
316
+ var removeOneElementOfSet_1 = require("./Sets/removeOneElementOfSet");
317
+ Object.defineProperty(exports, "removeOneElementFromSet", { enumerable: true, get: function () { return __importDefault(removeOneElementOfSet_1).default; } });
312
318
  var removeSetElementsByPredicates_1 = require("./Sets/removeSetElementsByPredicates");
313
319
  Object.defineProperty(exports, "removeSetElementsByPredicates", { enumerable: true, get: function () { return removeSetElementsByPredicates_1.removeSetElementsByPredicates; } });
314
320
  var EscapeCharacters_1 = require("./Strings/CharactersAssets/EscapeCharacters");
@@ -341,6 +347,8 @@ var extractLastExtensionOfFileName_1 = require("./Strings/URI/FilesAndDirectorie
341
347
  Object.defineProperty(exports, "extractLastExtensionOfFileName", { enumerable: true, get: function () { return __importDefault(extractLastExtensionOfFileName_1).default; } });
342
348
  var removeAllFileNameExtensions_1 = require("./Strings/URI/FilesAndDirectories/FileNameExtensions/removeAllFileNameExtensions");
343
349
  Object.defineProperty(exports, "removeAllFileNameExtensions", { enumerable: true, get: function () { return __importDefault(removeAllFileNameExtensions_1).default; } });
350
+ var removeSpecifiedFileNameExtensionsFromPath_1 = require("./Strings/URI/FilesAndDirectories/FileNameExtensions/removeSpecifiedFileNameExtensionsFromPath");
351
+ Object.defineProperty(exports, "removeSpecifiedFileNameExtensionsFromPath", { enumerable: true, get: function () { return __importDefault(removeSpecifiedFileNameExtensionsFromPath_1).default; } });
344
352
  var extractFileNameWithoutAnyExtensions_1 = require("./Strings/URI/FilesAndDirectories/Stem/extractFileNameWithoutAnyExtensions");
345
353
  Object.defineProperty(exports, "extractFileNameWithoutAnyExtensions", { enumerable: true, get: function () { return __importDefault(extractFileNameWithoutAnyExtensions_1).default; } });
346
354
  var extractFileNameWithAllExtensionsFromPath_1 = require("./Strings/URI/FilesAndDirectories/extractFileNameWithAllExtensionsFromPath");
@@ -451,8 +459,6 @@ var isBigInt_1 = require("./TypeGuards/Numbers/isBigInt");
451
459
  Object.defineProperty(exports, "isBigInt", { enumerable: true, get: function () { return __importDefault(isBigInt_1).default; } });
452
460
  var isDecimalFractionOfAnySign_1 = require("./TypeGuards/Numbers/isDecimalFractionOfAnySign");
453
461
  Object.defineProperty(exports, "isDecimalFractionOfAnySign", { enumerable: true, get: function () { return __importDefault(isDecimalFractionOfAnySign_1).default; } });
454
- var isIntegerOnAnySign_1 = require("./TypeGuards/Numbers/isIntegerOnAnySign");
455
- Object.defineProperty(exports, "isIntegerOnAnySign", { enumerable: true, get: function () { return __importDefault(isIntegerOnAnySign_1).default; } });
456
462
  var isIntegerOfAnySign_1 = require("./TypeGuards/Numbers/isIntegerOfAnySign");
457
463
  Object.defineProperty(exports, "isIntegerOfAnySign", { enumerable: true, get: function () { return __importDefault(isIntegerOfAnySign_1).default; } });
458
464
  var isNaturalNumber_1 = require("./TypeGuards/Numbers/isNaturalNumber");
@@ -0,0 +1 @@
1
+ export default function createSetBasedOnAnyArrayLikeCollection<BasicSetElement, NewSetElement>(targetIterable: ArrayLike<BasicSetElement> | ReadonlyArray<BasicSetElement> | ReadonlySet<BasicSetElement>, elementTransformer: (basicSetElement: BasicSetElement) => NewSetElement): Set<NewSetElement>;
@@ -0,0 +1,3 @@
1
+ export default function createSetBasedOnAnyArrayLikeCollection(targetIterable, elementTransformer) {
2
+ return new Set(Array.from(targetIterable).map(elementTransformer));
3
+ }
@@ -0,0 +1,4 @@
1
+ export default function getOneElementOfSet<Element>(targetSet: ReadonlySet<Element>): Element | undefined;
2
+ export default function getOneElementOfSet<Element>(targetSet: ReadonlySet<Element>, options: Readonly<{
3
+ mustThrowErrorIfSetIsEmpty: true;
4
+ }>): Element;
@@ -0,0 +1,16 @@
1
+ import isUndefined from "../TypeGuards/EmptyTypes/isUndefined";
2
+ import Logger from "../Logging/Logger";
3
+ import UnexpectedEventError from "../Errors/UnexpectedEvent/UnexpectedEventError";
4
+ export default function getOneElementOfSet(targetSet, options) {
5
+ const element = targetSet[Symbol.iterator]().next().value;
6
+ if (isUndefined(element)) {
7
+ if (options?.mustThrowErrorIfSetIsEmpty === true) {
8
+ Logger.throwErrorWithFormattedMessage({
9
+ errorInstance: new UnexpectedEventError("Contrary to expectations, target set is empty thus there is no the element can be got."),
10
+ title: UnexpectedEventError.localization.defaultTitle,
11
+ occurrenceLocation: "getOneElementOfSet(targetSet, options)"
12
+ });
13
+ }
14
+ }
15
+ return element;
16
+ }
@@ -0,0 +1,44 @@
1
+ export declare namespace RemoveOfOneElementFromSet {
2
+ type CompoundParameter<Element> = CompoundParameter.MutableAdding<Element> | CompoundParameter.ImmutableAdding<Element>;
3
+ namespace CompoundParameter {
4
+ type MutableAdding<Element> = MutableAdding.PossiblyEmptySet<Element> | MutableAdding.ExpectedToBeNonEmptySet<Element>;
5
+ namespace MutableAdding {
6
+ type PossiblyEmptySet<Element> = Readonly<{
7
+ targetSet: Set<Element>;
8
+ mutably: true;
9
+ mustThrowErrorIfSetIsEmpty: false;
10
+ }>;
11
+ type ExpectedToBeNonEmptySet<Element> = Readonly<{
12
+ targetSet: Set<Element>;
13
+ mutably: true;
14
+ mustThrowErrorIfSetIsEmpty: true;
15
+ }>;
16
+ }
17
+ type ImmutableAdding<Element> = ImmutableAdding.PossiblyEmptySet<Element> | ImmutableAdding.ExpectedToBeNonEmptySet<Element>;
18
+ namespace ImmutableAdding {
19
+ type PossiblyEmptySet<Element> = Readonly<{
20
+ targetSet: ReadonlySet<Element>;
21
+ mutably: false;
22
+ mustThrowErrorIfSetIsEmpty: false;
23
+ }>;
24
+ type ExpectedToBeNonEmptySet<Element> = Readonly<{
25
+ targetSet: ReadonlySet<Element>;
26
+ mutably: false;
27
+ mustThrowErrorIfSetIsEmpty: true;
28
+ }>;
29
+ }
30
+ }
31
+ type Result<Element> = Result.ForExpectedToBeNonEmptySets<Element> | Result.ForPossiblyEmptySets<Element>;
32
+ namespace Result {
33
+ type ForPossiblyEmptySets<Element> = Readonly<{
34
+ removedElement?: Element;
35
+ updatedSet: Set<Element>;
36
+ }>;
37
+ type ForExpectedToBeNonEmptySets<Element> = Readonly<{
38
+ removedElement: Element;
39
+ updatedSet: Set<Element>;
40
+ }>;
41
+ }
42
+ }
43
+ export default function removeOneElementFromSet<Element>(compoundParameter: RemoveOfOneElementFromSet.CompoundParameter.MutableAdding.PossiblyEmptySet<Element> | RemoveOfOneElementFromSet.CompoundParameter.ImmutableAdding.PossiblyEmptySet<Element>): RemoveOfOneElementFromSet.Result.ForPossiblyEmptySets<Element>;
44
+ export default function removeOneElementFromSet<Element>(compoundParameter: RemoveOfOneElementFromSet.CompoundParameter.MutableAdding.ExpectedToBeNonEmptySet<Element> | RemoveOfOneElementFromSet.CompoundParameter.ImmutableAdding.ExpectedToBeNonEmptySet<Element>): RemoveOfOneElementFromSet.Result.ForExpectedToBeNonEmptySets<Element>;
@@ -0,0 +1,29 @@
1
+ import isUndefined from "../TypeGuards/EmptyTypes/isUndefined";
2
+ import Logger from "../Logging/Logger";
3
+ import UnexpectedEventError from "../Errors/UnexpectedEvent/UnexpectedEventError";
4
+ export default function removeOneElementFromSet({ targetSet, mustThrowErrorIfSetIsEmpty, mutably }) {
5
+ const element = targetSet[Symbol.iterator]().next().value;
6
+ if (isUndefined(element)) {
7
+ if (mustThrowErrorIfSetIsEmpty) {
8
+ Logger.throwErrorWithFormattedMessage({
9
+ errorInstance: new UnexpectedEventError("Contrary to expectations, target set is empty thus there is no the element can be deleted."),
10
+ title: UnexpectedEventError.localization.defaultTitle,
11
+ occurrenceLocation: "removeOneElementOfSet(compoundParameter)"
12
+ });
13
+ }
14
+ return { updatedSet: mutably ? targetSet : new Set([...targetSet]) };
15
+ }
16
+ if (mutably) {
17
+ targetSet.delete(element);
18
+ return {
19
+ removedElement: element,
20
+ updatedSet: targetSet
21
+ };
22
+ }
23
+ const swallowCopy = new Set([...targetSet]);
24
+ swallowCopy.delete(element);
25
+ return {
26
+ removedElement: element,
27
+ updatedSet: swallowCopy
28
+ };
29
+ }
@@ -0,0 +1,6 @@
1
+ export default function removeSpecifiedFileNameExtensionsFromPath({ filePath, mustIgnoreLastOrSingleFileNameExtension, filesNamesExtensions: filesNamesExtensions__possiblyWithLeadingDots, pathsSeparatorMustBeUsedInOutputPathWhen2_KindsMixedInInitialPaths }: Readonly<{
2
+ filePath: string;
3
+ mustIgnoreLastOrSingleFileNameExtension?: boolean;
4
+ filesNamesExtensions: ReadonlyArray<string> | ReadonlySet<string>;
5
+ pathsSeparatorMustBeUsedInOutputPathWhen2_KindsMixedInInitialPaths: "/" | "\\";
6
+ }>): string;
@@ -0,0 +1,36 @@
1
+ import splitString from "../../../splitString";
2
+ import replaceDoubleBackslashesWithForwardSlashes from "../../../replaceDoubleBackslashesWithForwardSlashes";
3
+ import getLastElementOfArray from "../../../../Arrays/01-RetrievingOfElements/getLastElementOfArray";
4
+ import createSetBasedOnAnyArrayLikeCollection from "../../../../Sets/createSetBasedOnAnyArrayLikeCollection";
5
+ import removeSpecificCharacterFromCertainPosition from "../../../removeSpecificCharacterFromCertainPosition";
6
+ export default function removeSpecifiedFileNameExtensionsFromPath({ filePath, mustIgnoreLastOrSingleFileNameExtension, filesNamesExtensions: filesNamesExtensions__possiblyWithLeadingDots, pathsSeparatorMustBeUsedInOutputPathWhen2_KindsMixedInInitialPaths }) {
7
+ const mutableSegmentsOfTargetPath = splitString(replaceDoubleBackslashesWithForwardSlashes(filePath), "/");
8
+ const lastPathSegment = getLastElementOfArray(mutableSegmentsOfTargetPath);
9
+ if (lastPathSegment === null || !lastPathSegment.includes(".") || lastPathSegment === ".") {
10
+ return filePath;
11
+ }
12
+ const mutableSubsegmentsOfLastPathSegment = splitString(lastPathSegment, ".");
13
+ const indexOfLastFileNameExtension = mutableSubsegmentsOfLastPathSegment.length - 1;
14
+ const targetFilesNamesExtensions = createSetBasedOnAnyArrayLikeCollection(filesNamesExtensions__possiblyWithLeadingDots, (fileNameExtension) => removeSpecificCharacterFromCertainPosition({
15
+ targetString: fileNameExtension,
16
+ targetCharacter: ".",
17
+ fromFirstPosition: true
18
+ }));
19
+ for (let index = lastPathSegment.length - 1; index > 0; index--) {
20
+ const subsegmentOfLastPathSegment = mutableSubsegmentsOfLastPathSegment[index];
21
+ if (targetFilesNamesExtensions.has(subsegmentOfLastPathSegment)) {
22
+ if (mustIgnoreLastOrSingleFileNameExtension === true && index === indexOfLastFileNameExtension) {
23
+ continue;
24
+ }
25
+ mutableSubsegmentsOfLastPathSegment.splice(index, 1);
26
+ }
27
+ }
28
+ mutableSegmentsOfTargetPath[mutableSegmentsOfTargetPath.length - 1] = mutableSubsegmentsOfLastPathSegment.join(".");
29
+ if (filePath.includes("\\")) {
30
+ if (filePath.includes("/")) {
31
+ return mutableSegmentsOfTargetPath.join(pathsSeparatorMustBeUsedInOutputPathWhen2_KindsMixedInInitialPaths);
32
+ }
33
+ return mutableSegmentsOfTargetPath.join("\\");
34
+ }
35
+ return mutableSegmentsOfTargetPath.join("/");
36
+ }
@@ -138,8 +138,11 @@ export { default as convertPotentialStringToIntegerIfPossible } from "./RawObjec
138
138
  export { default as convertPotentialStringToFloatIfPossible } from "./RawObjectDataProcessor/Helpers/convertPotentialStringToFloatIfPossible";
139
139
  export { default as destringifyBooleanValueIfPossible } from "./RawObjectDataProcessor/Helpers/destringifyBooleanValueIfPossible";
140
140
  export { default as addElementsToSet } from "./Sets/addElementsToSet";
141
+ export { default as createSetBasedOnAnyArrayLikeCollection } from "./Sets/createSetBasedOnAnyArrayLikeCollection";
141
142
  export { default as createSetBasedOnOtherSet } from "./Sets/createSetBasedOnOtherSet";
143
+ export { default as getOneElementOfSet } from "./Sets/getOneElementOfSet";
142
144
  export { default as mergeSets } from "./Sets/mergeSets";
145
+ export { default as removeOneElementFromSet, type RemoveOfOneElementFromSet } from "./Sets/removeOneElementOfSet";
143
146
  export { removeSetElementsByPredicates, type RemovingSetElementsByPredicates } from "./Sets/removeSetElementsByPredicates";
144
147
  export { default as EscapeCharacters } from "./Strings/CharactersAssets/EscapeCharacters";
145
148
  export { default as lowercaseLatinCharacters } from "./Strings/CharactersAssets/lowercaseLatinCharacters";
@@ -156,6 +159,7 @@ export { default as appendLastFileNameExtension } from "./Strings/URI/FilesAndDi
156
159
  export { default as extractAllFileNameExtensions } from "./Strings/URI/FilesAndDirectories/FileNameExtensions/extractAllFileNameExtensions";
157
160
  export { default as extractLastExtensionOfFileName } from "./Strings/URI/FilesAndDirectories/FileNameExtensions/extractLastExtensionOfFileName";
158
161
  export { default as removeAllFileNameExtensions } from "./Strings/URI/FilesAndDirectories/FileNameExtensions/removeAllFileNameExtensions";
162
+ export { default as removeSpecifiedFileNameExtensionsFromPath } from "./Strings/URI/FilesAndDirectories/FileNameExtensions/removeSpecifiedFileNameExtensionsFromPath";
159
163
  export { default as extractFileNameWithoutAnyExtensions } from "./Strings/URI/FilesAndDirectories/Stem/extractFileNameWithoutAnyExtensions";
160
164
  export { default as extractFileNameWithAllExtensionsFromPath } from "./Strings/URI/FilesAndDirectories/extractFileNameWithAllExtensionsFromPath";
161
165
  export { default as extractFileNameWithoutLastExtension } from "./Strings/URI/FilesAndDirectories/extractFileNameWithoutLastExtension";
@@ -210,7 +214,6 @@ export { default as isNull } from "./TypeGuards/EmptyTypes/isNull";
210
214
  export { default as isUndefined } from "./TypeGuards/EmptyTypes/isUndefined";
211
215
  export { default as isBigInt } from "./TypeGuards/Numbers/isBigInt";
212
216
  export { default as isDecimalFractionOfAnySign } from "./TypeGuards/Numbers/isDecimalFractionOfAnySign";
213
- export { default as isIntegerOnAnySign } from "./TypeGuards/Numbers/isIntegerOnAnySign";
214
217
  export { default as isIntegerOfAnySign } from "./TypeGuards/Numbers/isIntegerOfAnySign";
215
218
  export { default as isNaturalNumber } from "./TypeGuards/Numbers/isNaturalNumber";
216
219
  export { default as isNaturalNumberOrZero } from "./TypeGuards/Numbers/isNaturalNumberOrZero";
@@ -135,8 +135,11 @@ export { default as convertPotentialStringToIntegerIfPossible } from "./RawObjec
135
135
  export { default as convertPotentialStringToFloatIfPossible } from "./RawObjectDataProcessor/Helpers/convertPotentialStringToFloatIfPossible";
136
136
  export { default as destringifyBooleanValueIfPossible } from "./RawObjectDataProcessor/Helpers/destringifyBooleanValueIfPossible";
137
137
  export { default as addElementsToSet } from "./Sets/addElementsToSet";
138
+ export { default as createSetBasedOnAnyArrayLikeCollection } from "./Sets/createSetBasedOnAnyArrayLikeCollection";
138
139
  export { default as createSetBasedOnOtherSet } from "./Sets/createSetBasedOnOtherSet";
140
+ export { default as getOneElementOfSet } from "./Sets/getOneElementOfSet";
139
141
  export { default as mergeSets } from "./Sets/mergeSets";
142
+ export { default as removeOneElementFromSet } from "./Sets/removeOneElementOfSet";
140
143
  export { removeSetElementsByPredicates } from "./Sets/removeSetElementsByPredicates";
141
144
  export { default as EscapeCharacters } from "./Strings/CharactersAssets/EscapeCharacters";
142
145
  export { default as lowercaseLatinCharacters } from "./Strings/CharactersAssets/lowercaseLatinCharacters";
@@ -153,6 +156,7 @@ export { default as appendLastFileNameExtension } from "./Strings/URI/FilesAndDi
153
156
  export { default as extractAllFileNameExtensions } from "./Strings/URI/FilesAndDirectories/FileNameExtensions/extractAllFileNameExtensions";
154
157
  export { default as extractLastExtensionOfFileName } from "./Strings/URI/FilesAndDirectories/FileNameExtensions/extractLastExtensionOfFileName";
155
158
  export { default as removeAllFileNameExtensions } from "./Strings/URI/FilesAndDirectories/FileNameExtensions/removeAllFileNameExtensions";
159
+ export { default as removeSpecifiedFileNameExtensionsFromPath } from "./Strings/URI/FilesAndDirectories/FileNameExtensions/removeSpecifiedFileNameExtensionsFromPath";
156
160
  export { default as extractFileNameWithoutAnyExtensions } from "./Strings/URI/FilesAndDirectories/Stem/extractFileNameWithoutAnyExtensions";
157
161
  export { default as extractFileNameWithAllExtensionsFromPath } from "./Strings/URI/FilesAndDirectories/extractFileNameWithAllExtensionsFromPath";
158
162
  export { default as extractFileNameWithoutLastExtension } from "./Strings/URI/FilesAndDirectories/extractFileNameWithoutLastExtension";
@@ -207,7 +211,6 @@ export { default as isNull } from "./TypeGuards/EmptyTypes/isNull";
207
211
  export { default as isUndefined } from "./TypeGuards/EmptyTypes/isUndefined";
208
212
  export { default as isBigInt } from "./TypeGuards/Numbers/isBigInt";
209
213
  export { default as isDecimalFractionOfAnySign } from "./TypeGuards/Numbers/isDecimalFractionOfAnySign";
210
- export { default as isIntegerOnAnySign } from "./TypeGuards/Numbers/isIntegerOnAnySign";
211
214
  export { default as isIntegerOfAnySign } from "./TypeGuards/Numbers/isIntegerOfAnySign";
212
215
  export { default as isNaturalNumber } from "./TypeGuards/Numbers/isNaturalNumber";
213
216
  export { default as isNaturalNumberOrZero } from "./TypeGuards/Numbers/isNaturalNumberOrZero";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yamato-daiwa/es-extensions",
3
- "version": "1.8.7",
3
+ "version": "1.9.0-alpha.1",
4
4
  "description": "Helper functions and classes aimed to reduce the routine code. Build-in TypeScript type safety.",
5
5
  "keywords": [
6
6
  "typescript",
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = isIntegerOnAnySign;
4
- function isIntegerOnAnySign(potentialInteger) {
5
- return typeof potentialInteger === "number" ? Number.isInteger(potentialInteger) : false;
6
- }
@@ -1,2 +0,0 @@
1
- export default function isIntegerOnAnySign(potentialInteger: number): boolean;
2
- export default function isIntegerOnAnySign(potentialInteger: unknown): potentialInteger is number;
@@ -1,3 +0,0 @@
1
- export default function isIntegerOnAnySign(potentialInteger) {
2
- return typeof potentialInteger === "number" ? Number.isInteger(potentialInteger) : false;
3
- }