@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.
- package/Distributable/cjs/Sets/createSetBasedOnAnyArrayLikeCollection.js +6 -0
- package/Distributable/cjs/Sets/getOneElementOfSet.js +22 -0
- package/Distributable/cjs/Sets/removeOneElementOfSet.js +35 -0
- package/Distributable/cjs/Strings/URI/FilesAndDirectories/FileNameExtensions/removeSpecifiedFileNameExtensionsFromPath.js +42 -0
- package/Distributable/cjs/index.js +11 -5
- package/Distributable/esm/Sets/createSetBasedOnAnyArrayLikeCollection.d.ts +1 -0
- package/Distributable/esm/Sets/createSetBasedOnAnyArrayLikeCollection.js +3 -0
- package/Distributable/esm/Sets/getOneElementOfSet.d.ts +4 -0
- package/Distributable/esm/Sets/getOneElementOfSet.js +16 -0
- package/Distributable/esm/Sets/removeOneElementOfSet.d.ts +44 -0
- package/Distributable/esm/Sets/removeOneElementOfSet.js +29 -0
- package/Distributable/esm/Strings/URI/FilesAndDirectories/FileNameExtensions/removeSpecifiedFileNameExtensionsFromPath.d.ts +6 -0
- package/Distributable/esm/Strings/URI/FilesAndDirectories/FileNameExtensions/removeSpecifiedFileNameExtensionsFromPath.js +36 -0
- package/Distributable/esm/index.d.ts +4 -1
- package/Distributable/esm/index.js +4 -1
- package/package.json +1 -1
- package/Distributable/cjs/TypeGuards/Numbers/isIntegerOnAnySign.js +0 -6
- package/Distributable/esm/TypeGuards/Numbers/isIntegerOnAnySign.d.ts +0 -2
- package/Distributable/esm/TypeGuards/Numbers/isIntegerOnAnySign.js +0 -3
|
@@ -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.
|
|
15
|
-
exports.
|
|
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,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