@duplojs/agents-kit 0.0.0-stage → 0.1.0-beta.3
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/README.md +73 -2
- package/dist/bin/index.d.ts +2 -0
- package/dist/bin/index.mjs +7 -0
- package/dist/bin/install/index.d.ts +2 -0
- package/dist/bin/install/index.mjs +25 -0
- package/dist/bin/install/skill.d.ts +28 -0
- package/dist/bin/install/skill.mjs +58 -0
- package/dist/bin/packagePath.d.ts +2 -0
- package/dist/bin/packagePath.mjs +12 -0
- package/dist/bin/setup/index.d.ts +12 -0
- package/dist/bin/setup/index.mjs +33 -0
- package/dist/bin/setup/instructions.d.ts +8 -0
- package/dist/bin/setup/instructions.mjs +27 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +0 -0
- package/docs/API/10-lang/10-array/10-at.ts +65 -0
- package/docs/API/10-lang/10-array/10-chunk.ts +42 -0
- package/docs/API/10-lang/10-array/10-coalescing.ts +19 -0
- package/docs/API/10-lang/10-array/10-concat.ts +34 -0
- package/docs/API/10-lang/10-array/10-copyWithin.ts +34 -0
- package/docs/API/10-lang/10-array/10-every.ts +25 -0
- package/docs/API/10-lang/10-array/10-fill.ts +34 -0
- package/docs/API/10-lang/10-array/10-fillAll.ts +34 -0
- package/docs/API/10-lang/10-array/10-filter.ts +43 -0
- package/docs/API/10-lang/10-array/10-find.ts +33 -0
- package/docs/API/10-lang/10-array/10-findAndReplace.ts +35 -0
- package/docs/API/10-lang/10-array/10-findAndSpliceDelete.ts +35 -0
- package/docs/API/10-lang/10-array/10-findAndSpliceInsert.ts +35 -0
- package/docs/API/10-lang/10-array/10-findAndSpliceReplace.ts +24 -0
- package/docs/API/10-lang/10-array/10-findDuplicates.ts +19 -0
- package/docs/API/10-lang/10-array/10-findIndex.ts +25 -0
- package/docs/API/10-lang/10-array/10-findLast.ts +33 -0
- package/docs/API/10-lang/10-array/10-findLastIndex.ts +25 -0
- package/docs/API/10-lang/10-array/10-first.ts +21 -0
- package/docs/API/10-lang/10-array/10-flat.ts +22 -0
- package/docs/API/10-lang/10-array/10-flatMap.ts +24 -0
- package/docs/API/10-lang/10-array/10-from.ts +25 -0
- package/docs/API/10-lang/10-array/10-group.ts +27 -0
- package/docs/API/10-lang/10-array/10-groupOutput.ts +30 -0
- package/docs/API/10-lang/10-array/10-includes.ts +24 -0
- package/docs/API/10-lang/10-array/10-indexOf.ts +24 -0
- package/docs/API/10-lang/10-array/10-insert.ts +34 -0
- package/docs/API/10-lang/10-array/10-is.ts +15 -0
- package/docs/API/10-lang/10-array/10-isLastIndex.ts +24 -0
- package/docs/API/10-lang/10-array/10-last.ts +21 -0
- package/docs/API/10-lang/10-array/10-lastIndexOf.ts +24 -0
- package/docs/API/10-lang/10-array/10-length.ts +28 -0
- package/docs/API/10-lang/10-array/10-lengthEqual.ts +39 -0
- package/docs/API/10-lang/10-array/10-map.ts +34 -0
- package/docs/API/10-lang/10-array/10-maxElements.ts +44 -0
- package/docs/API/10-lang/10-array/10-minElements.ts +44 -0
- package/docs/API/10-lang/10-array/10-notIncludes.ts +24 -0
- package/docs/API/10-lang/10-array/10-pop.ts +23 -0
- package/docs/API/10-lang/10-array/10-prepend.ts +34 -0
- package/docs/API/10-lang/10-array/10-push.ts +34 -0
- package/docs/API/10-lang/10-array/10-reduce.ts +28 -0
- package/docs/API/10-lang/10-array/10-reduceFrom.ts +16 -0
- package/docs/API/10-lang/10-array/10-reduceRight.ts +28 -0
- package/docs/API/10-lang/10-array/10-reverse.ts +25 -0
- package/docs/API/10-lang/10-array/10-select.ts +26 -0
- package/docs/API/10-lang/10-array/10-set.ts +24 -0
- package/docs/API/10-lang/10-array/10-shift.ts +23 -0
- package/docs/API/10-lang/10-array/10-slice.ts +24 -0
- package/docs/API/10-lang/10-array/10-some.ts +25 -0
- package/docs/API/10-lang/10-array/10-sort.ts +34 -0
- package/docs/API/10-lang/10-array/10-spliceDelete.ts +34 -0
- package/docs/API/10-lang/10-array/10-spliceInsert.ts +34 -0
- package/docs/API/10-lang/10-array/10-spliceReplace.ts +24 -0
- package/docs/API/10-lang/10-array/10-unshift.ts +34 -0
- package/docs/API/10-lang/10-array/index.llms.md +220 -0
- package/docs/API/10-lang/10-array/index.md +3 -0
- package/docs/API/10-lang/10-chrono/10-addDays.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-addHours.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-addMilliseconds.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-addMinutes.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-addMonths.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-addSeconds.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-addTime.ts +38 -0
- package/docs/API/10-lang/10-chrono/10-addWeeks.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-addYears.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-applyTimezone.ts +29 -0
- package/docs/API/10-lang/10-chrono/10-betweenThanDate.ts +27 -0
- package/docs/API/10-lang/10-chrono/10-betweenThanOrEqualDate.ts +27 -0
- package/docs/API/10-lang/10-chrono/10-betweenThanOrEqualTime.ts +27 -0
- package/docs/API/10-lang/10-chrono/10-betweenThanTime.ts +27 -0
- package/docs/API/10-lang/10-chrono/10-closestTo.ts +48 -0
- package/docs/API/10-lang/10-chrono/10-computeTime.ts +35 -0
- package/docs/API/10-lang/10-chrono/10-createDate.ts +122 -0
- package/docs/API/10-lang/10-chrono/10-createDateOrThrow.ts +39 -0
- package/docs/API/10-lang/10-chrono/10-createTime.ts +86 -0
- package/docs/API/10-lang/10-chrono/10-createTimeOrThrow.ts +28 -0
- package/docs/API/10-lang/10-chrono/10-eachDate.ts +67 -0
- package/docs/API/10-lang/10-chrono/10-equalDate.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-equalTime.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-formatDate.ts +43 -0
- package/docs/API/10-lang/10-chrono/10-formatTime.ts +37 -0
- package/docs/API/10-lang/10-chrono/10-getDayOfMonth.ts +37 -0
- package/docs/API/10-lang/10-chrono/10-getDayOfWeek.ts +30 -0
- package/docs/API/10-lang/10-chrono/10-getDayOfYear.ts +28 -0
- package/docs/API/10-lang/10-chrono/10-getDifference.ts +29 -0
- package/docs/API/10-lang/10-chrono/10-getFirstDayOfMonth.ts +24 -0
- package/docs/API/10-lang/10-chrono/10-getFirstDayOfWeek.ts +24 -0
- package/docs/API/10-lang/10-chrono/10-getHour.ts +28 -0
- package/docs/API/10-lang/10-chrono/10-getLastDayOfMonth.ts +24 -0
- package/docs/API/10-lang/10-chrono/10-getLastDayOfWeek.ts +24 -0
- package/docs/API/10-lang/10-chrono/10-getMilliseconds.ts +24 -0
- package/docs/API/10-lang/10-chrono/10-getMinute.ts +27 -0
- package/docs/API/10-lang/10-chrono/10-getMonth.ts +27 -0
- package/docs/API/10-lang/10-chrono/10-getSecond.ts +27 -0
- package/docs/API/10-lang/10-chrono/10-getTimezoneOffset.ts +28 -0
- package/docs/API/10-lang/10-chrono/10-getWeekOfYear.ts +27 -0
- package/docs/API/10-lang/10-chrono/10-getYear.ts +27 -0
- package/docs/API/10-lang/10-chrono/10-greaterThanDate.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-greaterThanOrEqualDate.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-greaterThanOrEqualTime.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-greaterThanTime.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-isDate.ts +23 -0
- package/docs/API/10-lang/10-chrono/10-isSafeTimeValue.ts +19 -0
- package/docs/API/10-lang/10-chrono/10-isSafeTimestamp.ts +19 -0
- package/docs/API/10-lang/10-chrono/10-isSerializedTheDate.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-isSerializedTheTime.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-isTime.ts +23 -0
- package/docs/API/10-lang/10-chrono/10-lessThanDate.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-lessThanOrEqualDate.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-lessThanOrEqualTime.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-lessThanTime.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-makeSafeTimeValue.ts +19 -0
- package/docs/API/10-lang/10-chrono/10-makeSafeTimestamp.ts +19 -0
- package/docs/API/10-lang/10-chrono/10-maxDate.ts +23 -0
- package/docs/API/10-lang/10-chrono/10-maxTime.ts +23 -0
- package/docs/API/10-lang/10-chrono/10-minDate.ts +23 -0
- package/docs/API/10-lang/10-chrono/10-minTime.ts +23 -0
- package/docs/API/10-lang/10-chrono/10-now.ts +13 -0
- package/docs/API/10-lang/10-chrono/10-round.ts +41 -0
- package/docs/API/10-lang/10-chrono/10-serialize.ts +23 -0
- package/docs/API/10-lang/10-chrono/10-sortDates.ts +32 -0
- package/docs/API/10-lang/10-chrono/10-sortTimes.ts +31 -0
- package/docs/API/10-lang/10-chrono/10-subtractDays.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-subtractHours.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-subtractMilliseconds.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-subtractMinutes.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-subtractMonths.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-subtractSeconds.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-subtractTime.ts +38 -0
- package/docs/API/10-lang/10-chrono/10-subtractWeeks.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-subtractYears.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-toDateISOString.ts +17 -0
- package/docs/API/10-lang/10-chrono/10-toNative.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-toTimeValue.ts +17 -0
- package/docs/API/10-lang/10-chrono/10-toTimestamp.ts +17 -0
- package/docs/API/10-lang/10-chrono/10-today.ts +13 -0
- package/docs/API/10-lang/10-chrono/10-tomorrow.ts +13 -0
- package/docs/API/10-lang/10-chrono/10-yesterday.ts +13 -0
- package/docs/API/10-lang/10-chrono/index.llms.md +332 -0
- package/docs/API/10-lang/10-chrono/index.md +3 -0
- package/docs/API/10-lang/10-common/10-and.ts +45 -0
- package/docs/API/10-lang/10-common/10-asserts.ts +13 -0
- package/docs/API/10-lang/10-common/10-asyncInnerPipe.ts +23 -0
- package/docs/API/10-lang/10-common/10-asyncLoop.ts +25 -0
- package/docs/API/10-lang/10-common/10-asyncPipe.ts +21 -0
- package/docs/API/10-lang/10-common/10-callThen.ts +22 -0
- package/docs/API/10-lang/10-common/10-cast.ts +16 -0
- package/docs/API/10-lang/10-common/10-clone.ts +12 -0
- package/docs/API/10-lang/10-common/10-createAsyncRetry.ts +34 -0
- package/docs/API/10-lang/10-common/10-createBuilder.ts +19 -0
- package/docs/API/10-lang/10-common/10-createEnum.ts +25 -0
- package/docs/API/10-lang/10-common/10-createExternalPromise.ts +13 -0
- package/docs/API/10-lang/10-common/10-createFormData.ts +16 -0
- package/docs/API/10-lang/10-common/10-createInterpolation.ts +12 -0
- package/docs/API/10-lang/10-common/10-createQueue.ts +16 -0
- package/docs/API/10-lang/10-common/10-createTransformer.ts +16 -0
- package/docs/API/10-lang/10-common/10-detachObjectMethod.ts +20 -0
- package/docs/API/10-lang/10-common/10-equal.ts +31 -0
- package/docs/API/10-lang/10-common/10-escapeRegExp.ts +11 -0
- package/docs/API/10-lang/10-common/10-falsy.ts +12 -0
- package/docs/API/10-lang/10-common/10-forward.ts +11 -0
- package/docs/API/10-lang/10-common/10-forwardAsserts.ts +17 -0
- package/docs/API/10-lang/10-common/10-forwardLog.ts +11 -0
- package/docs/API/10-lang/10-common/10-infer.ts +16 -0
- package/docs/API/10-lang/10-common/10-innerPipe.ts +23 -0
- package/docs/API/10-lang/10-common/10-instanceOf.ts +23 -0
- package/docs/API/10-lang/10-common/10-isType.ts +29 -0
- package/docs/API/10-lang/10-common/10-justExec.ts +28 -0
- package/docs/API/10-lang/10-common/10-justReturn.ts +19 -0
- package/docs/API/10-lang/10-common/10-loop.ts +20 -0
- package/docs/API/10-lang/10-common/10-memo.ts +12 -0
- package/docs/API/10-lang/10-common/10-memoObject.ts +11 -0
- package/docs/API/10-lang/10-common/10-memoPromise.ts +16 -0
- package/docs/API/10-lang/10-common/10-or.ts +29 -0
- package/docs/API/10-lang/10-common/10-pipe.ts +21 -0
- package/docs/API/10-lang/10-common/10-pipeCall.ts +20 -0
- package/docs/API/10-lang/10-common/10-prepareAsyncPipe.ts +20 -0
- package/docs/API/10-lang/10-common/10-preparePipe.ts +20 -0
- package/docs/API/10-lang/10-common/10-promiseAll.ts +16 -0
- package/docs/API/10-lang/10-common/10-promiseObject.ts +22 -0
- package/docs/API/10-lang/10-common/10-removeConstraint.ts +13 -0
- package/docs/API/10-lang/10-common/10-shameOnYou.ts +20 -0
- package/docs/API/10-lang/10-common/10-simpleClone.ts +12 -0
- package/docs/API/10-lang/10-common/10-stringToBytes.ts +16 -0
- package/docs/API/10-lang/10-common/10-stringToMillisecond.ts +17 -0
- package/docs/API/10-lang/10-common/10-timeout.ts +11 -0
- package/docs/API/10-lang/10-common/10-toCurriedPredicate.ts +28 -0
- package/docs/API/10-lang/10-common/10-toJSON.ts +15 -0
- package/docs/API/10-lang/10-common/10-toNative.ts +15 -0
- package/docs/API/10-lang/10-common/10-toRegExp.ts +17 -0
- package/docs/API/10-lang/10-common/10-transformer.ts +21 -0
- package/docs/API/10-lang/10-common/10-truthy.ts +12 -0
- package/docs/API/10-lang/10-common/10-useAsyncRetry.ts +31 -0
- package/docs/API/10-lang/10-common/10-when.ts +27 -0
- package/docs/API/10-lang/10-common/10-whenElse.ts +28 -0
- package/docs/API/10-lang/10-common/10-whenNot.ts +26 -0
- package/docs/API/10-lang/10-common/index.llms.md +228 -0
- package/docs/API/10-lang/10-common/index.md +3 -0
- package/docs/API/10-lang/10-dataStructure/10-absolutePath.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-allowedCharacters.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-array.ts +23 -0
- package/docs/API/10-lang/10-dataStructure/10-arrayLengthEqual.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-betweenThan.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-betweenThanOrEqual.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-bigint.ts +22 -0
- package/docs/API/10-lang/10-dataStructure/10-boolean.ts +22 -0
- package/docs/API/10-lang/10-dataStructure/10-createCodec.ts +45 -0
- package/docs/API/10-lang/10-dataStructure/10-createCodecs.ts +134 -0
- package/docs/API/10-lang/10-dataStructure/10-createErrorInterpreter.ts +74 -0
- package/docs/API/10-lang/10-dataStructure/10-date.ts +23 -0
- package/docs/API/10-lang/10-dataStructure/10-email.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-endsWith.ts +24 -0
- package/docs/API/10-lang/10-dataStructure/10-even.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-extend.ts +27 -0
- package/docs/API/10-lang/10-dataStructure/10-greaterThan.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-greaterThanOrEqual.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-include.ts +24 -0
- package/docs/API/10-lang/10-dataStructure/10-integer.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-isNullStructure.ts +12 -0
- package/docs/API/10-lang/10-dataStructure/10-isNullable.ts +12 -0
- package/docs/API/10-lang/10-dataStructure/10-isOptional.ts +12 -0
- package/docs/API/10-lang/10-dataStructure/10-isUndefinedStructure.ts +12 -0
- package/docs/API/10-lang/10-dataStructure/10-lazy.ts +23 -0
- package/docs/API/10-lang/10-dataStructure/10-lessThan.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-lessThanOrEqual.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-literal.ts +19 -0
- package/docs/API/10-lang/10-dataStructure/10-maxCharacters.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-maxElements.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-minCharacters.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-minElements.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-multipleOf.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-negative.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-notEmpty.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-notZero.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-null.ts +22 -0
- package/docs/API/10-lang/10-dataStructure/10-nullable.ts +19 -0
- package/docs/API/10-lang/10-dataStructure/10-number.ts +22 -0
- package/docs/API/10-lang/10-dataStructure/10-numberInString.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-object.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-odd.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-optional.ts +19 -0
- package/docs/API/10-lang/10-dataStructure/10-partial.ts +23 -0
- package/docs/API/10-lang/10-dataStructure/10-path.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-positive.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-record.ts +22 -0
- package/docs/API/10-lang/10-dataStructure/10-refine.ts +27 -0
- package/docs/API/10-lang/10-dataStructure/10-regex.ts +24 -0
- package/docs/API/10-lang/10-dataStructure/10-required.ts +21 -0
- package/docs/API/10-lang/10-dataStructure/10-safe.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-segmentPath.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-startsWith.ts +24 -0
- package/docs/API/10-lang/10-dataStructure/10-strictNegative.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-strictPositive.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-string.ts +22 -0
- package/docs/API/10-lang/10-dataStructure/10-stringLengthEqual.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-time.ts +23 -0
- package/docs/API/10-lang/10-dataStructure/10-trimmed.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-typeStructureIdentifier.ts +33 -0
- package/docs/API/10-lang/10-dataStructure/10-undefined.ts +22 -0
- package/docs/API/10-lang/10-dataStructure/10-union.ts +24 -0
- package/docs/API/10-lang/10-dataStructure/10-unwrapLazy.ts +17 -0
- package/docs/API/10-lang/10-dataStructure/10-url.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-uuid.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/index.llms.md +264 -0
- package/docs/API/10-lang/10-dataStructure/index.md +3 -0
- package/docs/API/10-lang/10-either/10-asyncGroup.ts +44 -0
- package/docs/API/10-lang/10-either/10-asyncSafeCallback.ts +23 -0
- package/docs/API/10-lang/10-either/10-error.ts +12 -0
- package/docs/API/10-lang/10-either/10-expect.ts +13 -0
- package/docs/API/10-lang/10-either/10-fail.ts +12 -0
- package/docs/API/10-lang/10-either/10-forwardAssertsSelection.ts +28 -0
- package/docs/API/10-lang/10-either/10-group.ts +58 -0
- package/docs/API/10-lang/10-either/10-hasInformation.ts +24 -0
- package/docs/API/10-lang/10-either/10-isLeft.ts +16 -0
- package/docs/API/10-lang/10-either/10-isRight.ts +16 -0
- package/docs/API/10-lang/10-either/10-isSelected.ts +29 -0
- package/docs/API/10-lang/10-either/10-keepAsRightByInformation.ts +29 -0
- package/docs/API/10-lang/10-either/10-keepAsRightSelection.ts +23 -0
- package/docs/API/10-lang/10-either/10-left.ts +13 -0
- package/docs/API/10-lang/10-either/10-matchInformation.ts +26 -0
- package/docs/API/10-lang/10-either/10-matchInformationOtherwise.ts +27 -0
- package/docs/API/10-lang/10-either/10-none.ts +12 -0
- package/docs/API/10-lang/10-either/10-ok.ts +12 -0
- package/docs/API/10-lang/10-either/10-result.ts +18 -0
- package/docs/API/10-lang/10-either/10-rewriteInformation.ts +24 -0
- package/docs/API/10-lang/10-either/10-right.ts +13 -0
- package/docs/API/10-lang/10-either/10-rightAsyncPipe.ts +69 -0
- package/docs/API/10-lang/10-either/10-rightPipe.ts +72 -0
- package/docs/API/10-lang/10-either/10-safeCallback.ts +29 -0
- package/docs/API/10-lang/10-either/10-some.ts +12 -0
- package/docs/API/10-lang/10-either/10-success.ts +12 -0
- package/docs/API/10-lang/10-either/10-toMaybe.ts +53 -0
- package/docs/API/10-lang/10-either/10-unwrapByInformation.ts +20 -0
- package/docs/API/10-lang/10-either/10-unwrapByInformationOrThrow.ts +19 -0
- package/docs/API/10-lang/10-either/10-unwrapLeft.ts +14 -0
- package/docs/API/10-lang/10-either/10-unwrapLeftOrThrow.ts +17 -0
- package/docs/API/10-lang/10-either/10-unwrapOr.ts +17 -0
- package/docs/API/10-lang/10-either/10-unwrapOtherwise.ts +20 -0
- package/docs/API/10-lang/10-either/10-unwrapRight.ts +14 -0
- package/docs/API/10-lang/10-either/10-unwrapRightOrThrow.ts +17 -0
- package/docs/API/10-lang/10-either/10-unwrapSelection.ts +26 -0
- package/docs/API/10-lang/10-either/10-unwrapSelectionOrThrow.ts +19 -0
- package/docs/API/10-lang/10-either/10-whenHasInformation.ts +35 -0
- package/docs/API/10-lang/10-either/10-whenHasInformationOtherwise.ts +29 -0
- package/docs/API/10-lang/10-either/10-whenIsLeft.ts +20 -0
- package/docs/API/10-lang/10-either/10-whenIsLeftOtherwise.ts +27 -0
- package/docs/API/10-lang/10-either/10-whenIsRight.ts +20 -0
- package/docs/API/10-lang/10-either/10-whenIsRightOtherwise.ts +26 -0
- package/docs/API/10-lang/10-either/10-whenIsSelected.ts +33 -0
- package/docs/API/10-lang/10-either/10-whenIsSelectedOtherwise.ts +35 -0
- package/docs/API/10-lang/10-either/index.llms.md +184 -0
- package/docs/API/10-lang/10-either/index.md +3 -0
- package/docs/API/10-lang/10-generator/10-asyncChunk.ts +55 -0
- package/docs/API/10-lang/10-generator/10-asyncConcat.ts +46 -0
- package/docs/API/10-lang/10-generator/10-asyncFilter.ts +41 -0
- package/docs/API/10-lang/10-generator/10-asyncFlat.ts +37 -0
- package/docs/API/10-lang/10-generator/10-asyncGroup.ts +65 -0
- package/docs/API/10-lang/10-generator/10-asyncLoop.ts +59 -0
- package/docs/API/10-lang/10-generator/10-asyncMap.ts +48 -0
- package/docs/API/10-lang/10-generator/10-asyncReduce.ts +63 -0
- package/docs/API/10-lang/10-generator/10-chunk.ts +44 -0
- package/docs/API/10-lang/10-generator/10-concat.ts +37 -0
- package/docs/API/10-lang/10-generator/10-createExternalAsyncGenerator.ts +29 -0
- package/docs/API/10-lang/10-generator/10-execute.ts +44 -0
- package/docs/API/10-lang/10-generator/10-filter.ts +35 -0
- package/docs/API/10-lang/10-generator/10-flat.ts +25 -0
- package/docs/API/10-lang/10-generator/10-group.ts +44 -0
- package/docs/API/10-lang/10-generator/10-groupOutput.ts +48 -0
- package/docs/API/10-lang/10-generator/10-loop.ts +55 -0
- package/docs/API/10-lang/10-generator/10-map.ts +35 -0
- package/docs/API/10-lang/10-generator/10-reduce.ts +51 -0
- package/docs/API/10-lang/10-generator/10-reduceFrom.ts +30 -0
- package/docs/API/10-lang/10-generator/index.llms.md +84 -0
- package/docs/API/10-lang/10-generator/index.md +3 -0
- package/docs/API/10-lang/index.md +3 -0
- package/docs/API/index.md +3 -0
- package/docs/API.llms.md +31 -0
- package/docs/concepts/01-fundamental/01-constraint/01-use.ts +22 -0
- package/docs/concepts/01-fundamental/01-constraint/10-built-in-constraint.ts +37 -0
- package/docs/concepts/01-fundamental/01-constraint/20-manipulation.ts +38 -0
- package/docs/concepts/01-fundamental/01-constraint/30-cast.ts +62 -0
- package/docs/concepts/01-fundamental/01-constraint/40-custom-constraint.ts +45 -0
- package/docs/concepts/01-fundamental/01-constraint/index.md +3 -0
- package/docs/concepts/01-fundamental/02-currying/01-use.ts +33 -0
- package/docs/concepts/01-fundamental/02-currying/10-built-in-function.ts +178 -0
- package/docs/concepts/01-fundamental/02-currying/20-inner-pipe.ts +39 -0
- package/docs/concepts/01-fundamental/02-currying/30-async-pipe.ts +42 -0
- package/docs/concepts/01-fundamental/02-currying/index.md +3 -0
- package/docs/concepts/01-fundamental/03-either/01-use.ts +21 -0
- package/docs/concepts/01-fundamental/03-either/10-discrimination.ts +79 -0
- package/docs/concepts/01-fundamental/03-either/20-exhaustive-handling.ts +73 -0
- package/docs/concepts/01-fundamental/03-either/30-composition.ts +72 -0
- package/docs/concepts/01-fundamental/03-either/40-result-adaptation.ts +40 -0
- package/docs/concepts/01-fundamental/03-either/50-external-results.ts +59 -0
- package/docs/concepts/01-fundamental/03-either/60-contextual-state.ts +40 -0
- package/docs/concepts/01-fundamental/03-either/index.md +3 -0
- package/docs/concepts/01-fundamental/04-data-structure/01-use.ts +22 -0
- package/docs/concepts/01-fundamental/04-data-structure/10-structure.ts +193 -0
- package/docs/concepts/01-fundamental/04-data-structure/20-constraint.ts +78 -0
- package/docs/concepts/01-fundamental/04-data-structure/30-validation.ts +100 -0
- package/docs/concepts/01-fundamental/04-data-structure/40-codecs.ts +151 -0
- package/docs/concepts/01-fundamental/04-data-structure/50-recursive.ts +48 -0
- package/docs/concepts/01-fundamental/04-data-structure/60-interpret-error.ts +123 -0
- package/docs/concepts/01-fundamental/04-data-structure/index.md +3 -0
- package/docs/concepts/01-fundamental/05-chrono/01-use.ts +14 -0
- package/docs/concepts/01-fundamental/05-chrono/10-creation.ts +59 -0
- package/docs/concepts/01-fundamental/05-chrono/20-manipulation.ts +94 -0
- package/docs/concepts/01-fundamental/05-chrono/30-serialized.ts +73 -0
- package/docs/concepts/01-fundamental/05-chrono/40-timezone.ts +81 -0
- package/docs/concepts/01-fundamental/05-chrono/index.md +3 -0
- package/docs/concepts/01-fundamental/06-modeling/10-new-type.ts +42 -0
- package/docs/concepts/01-fundamental/06-modeling/20-entity.ts +204 -0
- package/docs/concepts/01-fundamental/06-modeling/30-tagged-object.ts +181 -0
- package/docs/concepts/01-fundamental/06-modeling/40-entity-lifecycle.ts +275 -0
- package/docs/concepts/01-fundamental/06-modeling/50-evidence.ts +94 -0
- package/docs/concepts/01-fundamental/06-modeling/60-signed-function.ts +26 -0
- package/docs/concepts/01-fundamental/06-modeling/index.md +3 -0
- package/docs/concepts/01-fundamental/07-discrimination/10-entity.ts +104 -0
- package/docs/concepts/01-fundamental/07-discrimination/20-fact.ts +142 -0
- package/docs/concepts/01-fundamental/07-discrimination/30-tagged-object.ts +105 -0
- package/docs/concepts/01-fundamental/07-discrimination/40-error.ts +57 -0
- package/docs/concepts/01-fundamental/07-discrimination/50-literal.ts +87 -0
- package/docs/concepts/01-fundamental/07-discrimination/60-shape.ts +152 -0
- package/docs/concepts/01-fundamental/07-discrimination/70-predicate.ts +89 -0
- package/docs/concepts/01-fundamental/07-discrimination/index.md +3 -0
- package/docs/concepts/01-fundamental/index.md +1 -0
- package/docs/concepts/02-server/10-file/10-manipulation.ts +40 -0
- package/docs/concepts/02-server/10-file/20-path.ts +56 -0
- package/docs/concepts/02-server/10-file/index.md +3 -0
- package/docs/concepts/02-server/20-http/10-init.ts +31 -0
- package/docs/concepts/02-server/20-http/20-route.ts +174 -0
- package/docs/concepts/02-server/20-http/30-routine.ts +195 -0
- package/docs/concepts/02-server/20-http/40-jwt.ts +137 -0
- package/docs/concepts/02-server/20-http/50-codegen.ts +29 -0
- package/docs/concepts/02-server/20-http/index.md +3 -0
- package/docs/concepts/02-server/30-environment/10-platform.ts +38 -0
- package/docs/concepts/02-server/30-environment/20-variable.ts +41 -0
- package/docs/concepts/02-server/30-environment/index.md +3 -0
- package/docs/concepts/02-server/40-command/10-use.ts +112 -0
- package/docs/concepts/02-server/40-command/20-sub-command.ts +48 -0
- package/docs/concepts/02-server/40-command/index.md +3 -0
- package/docs/concepts/02-server/index.md +1 -0
- package/docs/concepts/03-client/10-http/10-init.ts +64 -0
- package/docs/concepts/03-client/10-http/20-request.ts +244 -0
- package/docs/concepts/03-client/10-http/30-hook.ts +139 -0
- package/docs/concepts/03-client/10-http/index.md +3 -0
- package/docs/concepts/03-client/20-form/10-init.ts +95 -0
- package/docs/concepts/03-client/20-form/20-input.ts +96 -0
- package/docs/concepts/03-client/20-form/30-layout.ts +160 -0
- package/docs/concepts/03-client/20-form/40-template.ts +89 -0
- package/docs/concepts/03-client/20-form/index.md +3 -0
- package/docs/concepts/03-client/index.md +1 -0
- package/docs/concepts/04-tests/01-unit/10-either.ts +136 -0
- package/docs/concepts/04-tests/01-unit/20-server-mocking.ts +53 -0
- package/docs/concepts/04-tests/01-unit/index.md +3 -0
- package/docs/concepts/04-tests/02-e2e/10-init.ts +80 -0
- package/docs/concepts/04-tests/02-e2e/20-architecture.ts +76 -0
- package/docs/concepts/04-tests/02-e2e/30-testing.ts +90 -0
- package/docs/concepts/04-tests/02-e2e/index.md +3 -0
- package/docs/concepts/04-tests/index.md +1 -0
- package/docs/concepts/05-type-driven-design/01-architecture/10-boundaries.md +41 -0
- package/docs/concepts/05-type-driven-design/01-architecture/index.md +3 -0
- package/docs/concepts/05-type-driven-design/02-domains/10-entities.md +58 -0
- package/docs/concepts/05-type-driven-design/02-domains/20-aggregates.md +49 -0
- package/docs/concepts/05-type-driven-design/02-domains/30-repositories.md +41 -0
- package/docs/concepts/05-type-driven-design/02-domains/index.md +3 -0
- package/docs/concepts/05-type-driven-design/03-applications/10-use-case.md +69 -0
- package/docs/concepts/05-type-driven-design/03-applications/index.md +3 -0
- package/docs/concepts/05-type-driven-design/04-infrastructure/10-implementation.md +56 -0
- package/docs/concepts/05-type-driven-design/04-infrastructure/index.md +3 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/index.ts +2 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/book.ts +10 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/client.ts +10 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/email.ts +7 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/index.ts +3 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/clientGiveBackBook.ts +27 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/clientRentBook.ts +30 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/createBook.ts +32 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/index.ts +2 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/clientGiveBackBook.ts +15 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/clientRentBook.ts +16 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/createBook.ts +21 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/index.ts +3 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/create.ts +34 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/index.ts +3 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/rental.ts +31 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/returnBook.ts +30 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/index.ts +87 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/facts/giveBackBook.ts +33 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/facts/index.ts +2 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/facts/rentBook.ts +32 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/index.ts +82 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/index.ts +2 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/index.ts +3 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/book.ts +16 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/client.ts +7 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/email.ts +12 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/index.ts +3 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/index.ts +2 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/command/clientRentBook.ts +62 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/command/index.ts +11 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/checkers/bookExist.ts +19 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/checkers/clientExist.ts +19 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/checkers/index.ts +2 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/main.ts +19 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/routes/clientGiveBackBook.ts +37 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/routes/clientRentBook.ts +50 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/routes/index.ts +2 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/book.ts +25 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/client.ts +7 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/email.ts +10 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/index.ts +3 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/useCases/index.ts +12 -0
- package/docs/concepts/05-type-driven-design/index.md +3 -0
- package/docs/concepts.llms.md +475 -0
- package/instructions/coding-conventions.md +8 -0
- package/package.json +96 -3
- package/skills/command/SKILL.md +63 -0
- package/skills/command/references/examples/cli.ts +22 -0
- package/skills/command/references/examples/options-only.ts +27 -0
- package/skills/command/references/examples/preview-command.ts +57 -0
- package/skills/command/references/execution.md +31 -0
- package/skills/command/references/inputs.md +27 -0
- package/skills/fundamental/SKILL.md +80 -0
- package/skills/fundamental/references/composition.md +35 -0
- package/skills/fundamental/references/constraints-and-validation.md +61 -0
- package/skills/fundamental/references/examples/async-composition.ts +15 -0
- package/skills/fundamental/references/examples/cast.ts +18 -0
- package/skills/fundamental/references/examples/composition.ts +40 -0
- package/skills/fundamental/references/examples/environment-initialization.ts +19 -0
- package/skills/fundamental/references/examples/error-propagation.ts +24 -0
- package/skills/fundamental/references/examples/generic-inference.ts +31 -0
- package/skills/fundamental/references/examples/guaranteed-array-access.ts +31 -0
- package/skills/fundamental/references/examples/independent-inputs.ts +18 -0
- package/skills/fundamental/references/examples/infer.ts +21 -0
- package/skills/fundamental/references/examples/input-validation.ts +37 -0
- package/skills/fundamental/references/examples/safe-declarations.ts +25 -0
- package/skills/fundamental/references/results-and-errors.md +59 -0
- package/skills/http-client/SKILL.md +50 -0
- package/skills/http-client/references/configuration.md +9 -0
- package/skills/http-client/references/examples/client-expectations.ts +84 -0
- package/skills/http-client/references/examples/client-streams.ts +74 -0
- package/skills/http-client/references/examples/external-client.ts +78 -0
- package/skills/http-client/references/hooks.md +7 -0
- package/skills/http-client/references/responses.md +39 -0
- package/skills/http-client/references/streams.md +10 -0
- package/skills/http-server/SKILL.md +66 -0
- package/skills/http-server/references/code-generation.md +31 -0
- package/skills/http-server/references/examples/authentication.ts +42 -0
- package/skills/http-server/references/examples/contracts.ts +19 -0
- package/skills/http-server/references/examples/generate-sdk.ts +36 -0
- package/skills/http-server/references/examples/initialize.ts +29 -0
- package/skills/http-server/references/examples/minimal-route.ts +18 -0
- package/skills/http-server/references/examples/protected-route.ts +31 -0
- package/skills/http-server/references/examples/rename-user-route.ts +54 -0
- package/skills/http-server/references/examples/user-checker.ts +26 -0
- package/skills/http-server/references/examples/user-route.ts +38 -0
- package/skills/http-server/references/initialization.md +33 -0
- package/skills/http-server/references/reusable-flows.md +40 -0
- package/skills/http-server/references/routes-and-floor.md +38 -0
- package/skills/modeling/SKILL.md +76 -0
- package/skills/modeling/references/domain.md +33 -0
- package/skills/modeling/references/orchestration.md +36 -0
- package/skills/server/SKILL.md +55 -0
- package/skills/server/references/environment.md +30 -0
- package/skills/server/references/examples/environment.ts +41 -0
- package/skills/server/references/examples/file-structure.ts +26 -0
- package/skills/server/references/examples/files.ts +52 -0
- package/skills/server/references/files.md +38 -0
- package/skills/server/references/structures.md +15 -0
- package/skills/test/SKILL.md +70 -0
- package/skills/test/references/examples/results.ts +95 -0
- package/skills/test/references/examples/server.ts +59 -0
- package/skills/test/references/results.md +21 -0
- package/skills/test/references/server.md +17 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DChrono.toTimestamp
|
|
3
|
+
*
|
|
4
|
+
* Lire le timestamp en millisecondes d’une TheDate ou d’une chaîne sérialisée.
|
|
5
|
+
*/
|
|
6
|
+
import * as DChrono from "@duplojs/lang/chrono";
|
|
7
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
|
|
9
|
+
const timestamp = DChrono.toTimestamp(DChrono.createDate("2021-01-01"));
|
|
10
|
+
|
|
11
|
+
// La valeur obtenue représente 2021-01-01T00:00:00.000Z en millisecondes.
|
|
12
|
+
type _CheckTimestamp = DCommon.ExpectType<typeof timestamp, number, "strict">;
|
|
13
|
+
|
|
14
|
+
// Une date sérialisée produit le même timestamp.
|
|
15
|
+
const serializedTimestamp = DChrono.toTimestamp("date1609459200000+");
|
|
16
|
+
type _CheckSerialized = DCommon.ExpectType<typeof serializedTimestamp, number, "strict">;
|
|
17
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DChrono.today
|
|
3
|
+
*
|
|
4
|
+
* Créer une TheDate correspondant au début du jour courant en UTC.
|
|
5
|
+
*/
|
|
6
|
+
import * as DChrono from "@duplojs/lang/chrono";
|
|
7
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
|
|
9
|
+
const currentDay = DChrono.today();
|
|
10
|
+
|
|
11
|
+
// La valeur dépend de la date courante, mais son heure UTC est ramenée à minuit.
|
|
12
|
+
type _CheckCurrentDay = DCommon.ExpectType<typeof currentDay, DChrono.TheDate, "strict">;
|
|
13
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DChrono.tomorrow
|
|
3
|
+
*
|
|
4
|
+
* Créer une TheDate correspondant au début du jour suivant en UTC.
|
|
5
|
+
*/
|
|
6
|
+
import * as DChrono from "@duplojs/lang/chrono";
|
|
7
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
|
|
9
|
+
const nextDay = DChrono.tomorrow();
|
|
10
|
+
|
|
11
|
+
// La valeur dépend de l’horloge, mais représente le jour suivant à minuit UTC.
|
|
12
|
+
type _CheckNextDay = DCommon.ExpectType<typeof nextDay, DChrono.TheDate, "strict">;
|
|
13
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DChrono.yesterday
|
|
3
|
+
*
|
|
4
|
+
* Créer une TheDate correspondant au début du jour précédent en UTC.
|
|
5
|
+
*/
|
|
6
|
+
import * as DChrono from "@duplojs/lang/chrono";
|
|
7
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
|
|
9
|
+
const previousDay = DChrono.yesterday();
|
|
10
|
+
|
|
11
|
+
// La valeur dépend de l’horloge, mais représente le jour précédent à minuit UTC.
|
|
12
|
+
type _CheckPreviousDay = DCommon.ExpectType<typeof previousDay, DChrono.TheDate, "strict">;
|
|
13
|
+
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
## DChrono
|
|
2
|
+
|
|
3
|
+
Création, calcul, comparaison, sérialisation et formatage des dates, heures, durées et fuseaux horaires dans les représentations Chrono de DuploJS.
|
|
4
|
+
|
|
5
|
+
### [DChrono.addDays](10-addDays.ts)
|
|
6
|
+
|
|
7
|
+
Ajouter un nombre de jours à une date.
|
|
8
|
+
|
|
9
|
+
### [DChrono.addHours](10-addHours.ts)
|
|
10
|
+
|
|
11
|
+
Ajouter un nombre d’heures à une date.
|
|
12
|
+
|
|
13
|
+
### [DChrono.addMilliseconds](10-addMilliseconds.ts)
|
|
14
|
+
|
|
15
|
+
Ajouter un nombre de millisecondes à une date.
|
|
16
|
+
|
|
17
|
+
### [DChrono.addMinutes](10-addMinutes.ts)
|
|
18
|
+
|
|
19
|
+
Ajouter un nombre de minutes à une date.
|
|
20
|
+
|
|
21
|
+
### [DChrono.addMonths](10-addMonths.ts)
|
|
22
|
+
|
|
23
|
+
Ajouter un nombre de mois à une date en UTC.
|
|
24
|
+
|
|
25
|
+
### [DChrono.addSeconds](10-addSeconds.ts)
|
|
26
|
+
|
|
27
|
+
Ajouter un nombre de secondes à une date.
|
|
28
|
+
|
|
29
|
+
### [DChrono.addTime](10-addTime.ts)
|
|
30
|
+
|
|
31
|
+
Ajouter une durée à une date ou à une autre durée en conservant la nature de l’entrée.
|
|
32
|
+
|
|
33
|
+
### [DChrono.addWeeks](10-addWeeks.ts)
|
|
34
|
+
|
|
35
|
+
Ajouter un nombre de semaines à une date.
|
|
36
|
+
|
|
37
|
+
### [DChrono.addYears](10-addYears.ts)
|
|
38
|
+
|
|
39
|
+
Ajouter un nombre d’années à une date en UTC.
|
|
40
|
+
|
|
41
|
+
### [DChrono.applyTimezone](10-applyTimezone.ts)
|
|
42
|
+
|
|
43
|
+
Décaler une date pour l’exprimer dans un fuseau horaire donné.
|
|
44
|
+
|
|
45
|
+
### [DChrono.betweenThanDate](10-betweenThanDate.ts)
|
|
46
|
+
|
|
47
|
+
Vérifier qu’une date est strictement comprise entre deux bornes.
|
|
48
|
+
|
|
49
|
+
### [DChrono.betweenThanOrEqualDate](10-betweenThanOrEqualDate.ts)
|
|
50
|
+
|
|
51
|
+
Vérifier qu’une date est comprise entre deux bornes inclusives.
|
|
52
|
+
|
|
53
|
+
### [DChrono.betweenThanOrEqualTime](10-betweenThanOrEqualTime.ts)
|
|
54
|
+
|
|
55
|
+
Vérifier qu’une durée est comprise entre deux bornes inclusives.
|
|
56
|
+
|
|
57
|
+
### [DChrono.betweenThanTime](10-betweenThanTime.ts)
|
|
58
|
+
|
|
59
|
+
Vérifier qu’une durée est strictement comprise entre deux bornes.
|
|
60
|
+
|
|
61
|
+
### [DChrono.closestTo](10-closestTo.ts)
|
|
62
|
+
|
|
63
|
+
Trouver dans une collection la date la plus proche d’une date cible.
|
|
64
|
+
|
|
65
|
+
### [DChrono.computeTime](10-computeTime.ts)
|
|
66
|
+
|
|
67
|
+
Convertir une durée représentée par TheTime vers l’unité demandée.
|
|
68
|
+
|
|
69
|
+
### [DChrono.createDate](10-createDate.ts)
|
|
70
|
+
|
|
71
|
+
Construire une date depuis une valeur sûre ou représenter la validation d’une entrée runtime avec un Either.
|
|
72
|
+
|
|
73
|
+
### [DChrono.createDateOrThrow](10-createDateOrThrow.ts)
|
|
74
|
+
|
|
75
|
+
Construire une TheDate depuis les entrées acceptées et lever une erreur si la création échoue.
|
|
76
|
+
|
|
77
|
+
### [DChrono.createTime](10-createTime.ts)
|
|
78
|
+
|
|
79
|
+
Construire une TheTime depuis une durée sûre ou représenter la validation d’une entrée runtime avec un Either.
|
|
80
|
+
|
|
81
|
+
### [DChrono.createTimeOrThrow](10-createTimeOrThrow.ts)
|
|
82
|
+
|
|
83
|
+
Construire une TheTime depuis les entrées acceptées et lever une erreur si la création échoue.
|
|
84
|
+
|
|
85
|
+
### [DChrono.eachDate](10-eachDate.ts)
|
|
86
|
+
|
|
87
|
+
Parcourir une plage de dates en avançant d’une unité et en incluant les bornes.
|
|
88
|
+
|
|
89
|
+
### [DChrono.equalDate](10-equalDate.ts)
|
|
90
|
+
|
|
91
|
+
Vérifier l’égalité de deux dates par leur timestamp.
|
|
92
|
+
|
|
93
|
+
### [DChrono.equalTime](10-equalTime.ts)
|
|
94
|
+
|
|
95
|
+
Vérifier l’égalité de deux durées par leur valeur en millisecondes.
|
|
96
|
+
|
|
97
|
+
### [DChrono.formatDate](10-formatDate.ts)
|
|
98
|
+
|
|
99
|
+
Formater une date avec des jetons et un fuseau horaire.
|
|
100
|
+
|
|
101
|
+
### [DChrono.formatTime](10-formatTime.ts)
|
|
102
|
+
|
|
103
|
+
Formater une durée TheTime avec des jetons de semaines, jours, heures, minutes, secondes et millisecondes.
|
|
104
|
+
|
|
105
|
+
### [DChrono.getDayOfMonth](10-getDayOfMonth.ts)
|
|
106
|
+
|
|
107
|
+
Lire le jour du mois d’une date en UTC ou dans un fuseau horaire donné.
|
|
108
|
+
|
|
109
|
+
### [DChrono.getDayOfWeek](10-getDayOfWeek.ts)
|
|
110
|
+
|
|
111
|
+
Lire le jour de la semaine d’une date, de 0 pour dimanche à 6 pour samedi.
|
|
112
|
+
|
|
113
|
+
### [DChrono.getDayOfYear](10-getDayOfYear.ts)
|
|
114
|
+
|
|
115
|
+
Lire le numéro du jour dans l’année, en tenant compte du fuseau choisi.
|
|
116
|
+
|
|
117
|
+
### [DChrono.getDifference](10-getDifference.ts)
|
|
118
|
+
|
|
119
|
+
Calculer la durée signée séparant une date d’une date de référence.
|
|
120
|
+
|
|
121
|
+
### [DChrono.getFirstDayOfMonth](10-getFirstDayOfMonth.ts)
|
|
122
|
+
|
|
123
|
+
Retourner le premier jour du mois à minuit UTC.
|
|
124
|
+
|
|
125
|
+
### [DChrono.getFirstDayOfWeek](10-getFirstDayOfWeek.ts)
|
|
126
|
+
|
|
127
|
+
Retourner le lundi de la semaine à minuit UTC.
|
|
128
|
+
|
|
129
|
+
### [DChrono.getHour](10-getHour.ts)
|
|
130
|
+
|
|
131
|
+
Lire l’heure d’une date en UTC ou dans un fuseau horaire donné.
|
|
132
|
+
|
|
133
|
+
### [DChrono.getLastDayOfMonth](10-getLastDayOfMonth.ts)
|
|
134
|
+
|
|
135
|
+
Retourner le dernier jour du mois à 23:59:59.999 UTC.
|
|
136
|
+
|
|
137
|
+
### [DChrono.getLastDayOfWeek](10-getLastDayOfWeek.ts)
|
|
138
|
+
|
|
139
|
+
Retourner le dimanche de la semaine à 23:59:59.999 UTC.
|
|
140
|
+
|
|
141
|
+
### [DChrono.getMilliseconds](10-getMilliseconds.ts)
|
|
142
|
+
|
|
143
|
+
Lire les millisecondes d’une date en UTC.
|
|
144
|
+
|
|
145
|
+
### [DChrono.getMinute](10-getMinute.ts)
|
|
146
|
+
|
|
147
|
+
Lire les minutes d’une date en UTC ou dans un fuseau horaire donné.
|
|
148
|
+
|
|
149
|
+
### [DChrono.getMonth](10-getMonth.ts)
|
|
150
|
+
|
|
151
|
+
Lire le mois d’une date, de 1 à 12, en UTC ou dans un fuseau donné.
|
|
152
|
+
|
|
153
|
+
### [DChrono.getSecond](10-getSecond.ts)
|
|
154
|
+
|
|
155
|
+
Lire les secondes d’une date en UTC ou dans un fuseau horaire donné.
|
|
156
|
+
|
|
157
|
+
### [DChrono.getTimezoneOffset](10-getTimezoneOffset.ts)
|
|
158
|
+
|
|
159
|
+
Calculer le décalage d’un fuseau horaire pour une date donnée.
|
|
160
|
+
|
|
161
|
+
### [DChrono.getWeekOfYear](10-getWeekOfYear.ts)
|
|
162
|
+
|
|
163
|
+
Lire le numéro ISO de la semaine d’une date, en tenant compte du fuseau choisi.
|
|
164
|
+
|
|
165
|
+
### [DChrono.getYear](10-getYear.ts)
|
|
166
|
+
|
|
167
|
+
Lire l’année d’une date en UTC ou dans un fuseau horaire donné.
|
|
168
|
+
|
|
169
|
+
### [DChrono.greaterThanDate](10-greaterThanDate.ts)
|
|
170
|
+
|
|
171
|
+
Comparer deux dates avec une relation strictement supérieure.
|
|
172
|
+
|
|
173
|
+
### [DChrono.greaterThanOrEqualDate](10-greaterThanOrEqualDate.ts)
|
|
174
|
+
|
|
175
|
+
Comparer deux dates avec une relation supérieure ou égale.
|
|
176
|
+
|
|
177
|
+
### [DChrono.greaterThanOrEqualTime](10-greaterThanOrEqualTime.ts)
|
|
178
|
+
|
|
179
|
+
Comparer deux durées avec une relation supérieure ou égale.
|
|
180
|
+
|
|
181
|
+
### [DChrono.greaterThanTime](10-greaterThanTime.ts)
|
|
182
|
+
|
|
183
|
+
Comparer deux durées avec une relation strictement supérieure.
|
|
184
|
+
|
|
185
|
+
### [DChrono.isDate](10-isDate.ts)
|
|
186
|
+
|
|
187
|
+
Identifier si une valeur est une instance de TheDate et réduire son type.
|
|
188
|
+
|
|
189
|
+
### [DChrono.isSafeTimeValue](10-isSafeTimeValue.ts)
|
|
190
|
+
|
|
191
|
+
Vérifier qu’une durée entière reste dans l’intervalle sûr de TheTime.
|
|
192
|
+
|
|
193
|
+
### [DChrono.isSafeTimestamp](10-isSafeTimestamp.ts)
|
|
194
|
+
|
|
195
|
+
Vérifier qu’un timestamp entier reste dans l’intervalle sûr de TheDate.
|
|
196
|
+
|
|
197
|
+
### [DChrono.isSerializedTheDate](10-isSerializedTheDate.ts)
|
|
198
|
+
|
|
199
|
+
Vérifier qu’une chaîne respecte le format sérialisé sûr d’une TheDate.
|
|
200
|
+
|
|
201
|
+
### [DChrono.isSerializedTheTime](10-isSerializedTheTime.ts)
|
|
202
|
+
|
|
203
|
+
Vérifier qu’une chaîne respecte le format sérialisé sûr d’une TheTime.
|
|
204
|
+
|
|
205
|
+
### [DChrono.isTime](10-isTime.ts)
|
|
206
|
+
|
|
207
|
+
Identifier si une valeur est une instance de TheTime et réduire son type.
|
|
208
|
+
|
|
209
|
+
### [DChrono.lessThanDate](10-lessThanDate.ts)
|
|
210
|
+
|
|
211
|
+
Comparer deux dates avec une relation strictement inférieure.
|
|
212
|
+
|
|
213
|
+
### [DChrono.lessThanOrEqualDate](10-lessThanOrEqualDate.ts)
|
|
214
|
+
|
|
215
|
+
Comparer deux dates avec une relation inférieure ou égale.
|
|
216
|
+
|
|
217
|
+
### [DChrono.lessThanOrEqualTime](10-lessThanOrEqualTime.ts)
|
|
218
|
+
|
|
219
|
+
Comparer deux durées avec une relation inférieure ou égale.
|
|
220
|
+
|
|
221
|
+
### [DChrono.lessThanTime](10-lessThanTime.ts)
|
|
222
|
+
|
|
223
|
+
Comparer deux durées avec une relation strictement inférieure.
|
|
224
|
+
|
|
225
|
+
### [DChrono.makeSafeTimeValue](10-makeSafeTimeValue.ts)
|
|
226
|
+
|
|
227
|
+
Ramener une durée vers un entier compris dans l’intervalle sûr de TheTime.
|
|
228
|
+
|
|
229
|
+
### [DChrono.makeSafeTimestamp](10-makeSafeTimestamp.ts)
|
|
230
|
+
|
|
231
|
+
Ramener un timestamp vers un entier compris dans l’intervalle sûr de TheDate.
|
|
232
|
+
|
|
233
|
+
### [DChrono.maxDate](10-maxDate.ts)
|
|
234
|
+
|
|
235
|
+
Retourner la date la plus éloignée dans le futur parmi plusieurs dates.
|
|
236
|
+
|
|
237
|
+
### [DChrono.maxTime](10-maxTime.ts)
|
|
238
|
+
|
|
239
|
+
Retourner la durée de valeur maximale parmi plusieurs durées.
|
|
240
|
+
|
|
241
|
+
### [DChrono.minDate](10-minDate.ts)
|
|
242
|
+
|
|
243
|
+
Retourner la date la plus éloignée dans le passé parmi plusieurs dates.
|
|
244
|
+
|
|
245
|
+
### [DChrono.minTime](10-minTime.ts)
|
|
246
|
+
|
|
247
|
+
Retourner la durée de valeur minimale parmi plusieurs durées.
|
|
248
|
+
|
|
249
|
+
### [DChrono.now](10-now.ts)
|
|
250
|
+
|
|
251
|
+
Créer une TheDate représentant l’instant courant.
|
|
252
|
+
|
|
253
|
+
### [DChrono.round](10-round.ts)
|
|
254
|
+
|
|
255
|
+
Ramener une date au début de l’unité UTC demandée.
|
|
256
|
+
|
|
257
|
+
### [DChrono.serialize](10-serialize.ts)
|
|
258
|
+
|
|
259
|
+
Convertir une TheDate ou une TheTime en chaîne sérialisée.
|
|
260
|
+
|
|
261
|
+
### [DChrono.sortDates](10-sortDates.ts)
|
|
262
|
+
|
|
263
|
+
Trier des dates par ordre croissant ou décroissant.
|
|
264
|
+
|
|
265
|
+
### [DChrono.sortTimes](10-sortTimes.ts)
|
|
266
|
+
|
|
267
|
+
Trier des durées par ordre croissant ou décroissant.
|
|
268
|
+
|
|
269
|
+
### [DChrono.subtractDays](10-subtractDays.ts)
|
|
270
|
+
|
|
271
|
+
Soustraire un nombre de jours à une date.
|
|
272
|
+
|
|
273
|
+
### [DChrono.subtractHours](10-subtractHours.ts)
|
|
274
|
+
|
|
275
|
+
Soustraire un nombre d’heures à une date.
|
|
276
|
+
|
|
277
|
+
### [DChrono.subtractMilliseconds](10-subtractMilliseconds.ts)
|
|
278
|
+
|
|
279
|
+
Soustraire un nombre de millisecondes à une date.
|
|
280
|
+
|
|
281
|
+
### [DChrono.subtractMinutes](10-subtractMinutes.ts)
|
|
282
|
+
|
|
283
|
+
Soustraire un nombre de minutes à une date.
|
|
284
|
+
|
|
285
|
+
### [DChrono.subtractMonths](10-subtractMonths.ts)
|
|
286
|
+
|
|
287
|
+
Soustraire un nombre de mois à une date en UTC.
|
|
288
|
+
|
|
289
|
+
### [DChrono.subtractSeconds](10-subtractSeconds.ts)
|
|
290
|
+
|
|
291
|
+
Soustraire un nombre de secondes à une date.
|
|
292
|
+
|
|
293
|
+
### [DChrono.subtractTime](10-subtractTime.ts)
|
|
294
|
+
|
|
295
|
+
Soustraire une durée à une date ou à une autre durée en conservant la nature de l’entrée.
|
|
296
|
+
|
|
297
|
+
### [DChrono.subtractWeeks](10-subtractWeeks.ts)
|
|
298
|
+
|
|
299
|
+
Soustraire un nombre de semaines à une date.
|
|
300
|
+
|
|
301
|
+
### [DChrono.subtractYears](10-subtractYears.ts)
|
|
302
|
+
|
|
303
|
+
Soustraire un nombre d’années à une date en UTC.
|
|
304
|
+
|
|
305
|
+
### [DChrono.toDateISOString](10-toDateISOString.ts)
|
|
306
|
+
|
|
307
|
+
Convertir une date en chaîne ISO UTC.
|
|
308
|
+
|
|
309
|
+
### [DChrono.toNative](10-toNative.ts)
|
|
310
|
+
|
|
311
|
+
Convertir une TheDate en Date native ou une TheTime en nombre de millisecondes.
|
|
312
|
+
|
|
313
|
+
### [DChrono.toTimeValue](10-toTimeValue.ts)
|
|
314
|
+
|
|
315
|
+
Lire la valeur en millisecondes d’une TheTime ou d’une chaîne sérialisée.
|
|
316
|
+
|
|
317
|
+
### [DChrono.toTimestamp](10-toTimestamp.ts)
|
|
318
|
+
|
|
319
|
+
Lire le timestamp en millisecondes d’une TheDate ou d’une chaîne sérialisée.
|
|
320
|
+
|
|
321
|
+
### [DChrono.today](10-today.ts)
|
|
322
|
+
|
|
323
|
+
Créer une TheDate correspondant au début du jour courant en UTC.
|
|
324
|
+
|
|
325
|
+
### [DChrono.tomorrow](10-tomorrow.ts)
|
|
326
|
+
|
|
327
|
+
Créer une TheDate correspondant au début du jour suivant en UTC.
|
|
328
|
+
|
|
329
|
+
### [DChrono.yesterday](10-yesterday.ts)
|
|
330
|
+
|
|
331
|
+
Créer une TheDate correspondant au début du jour précédent en UTC.
|
|
332
|
+
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.and
|
|
3
|
+
*
|
|
4
|
+
* Combiner plusieurs prédicats dans une condition qui doit tous les satisfaire.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DString from "@duplojs/lang/string";
|
|
8
|
+
|
|
9
|
+
// Appel classique : les deux predicates doivent accepter la valeur.
|
|
10
|
+
const result = DCommon.and("duplojs", [
|
|
11
|
+
DCommon.isType("string"),
|
|
12
|
+
DCommon.truthy,
|
|
13
|
+
]);
|
|
14
|
+
|
|
15
|
+
// La valeur obtenue est true.
|
|
16
|
+
type _CheckResult = DCommon.ExpectType<typeof result, boolean, "strict">;
|
|
17
|
+
|
|
18
|
+
declare const source: string | number;
|
|
19
|
+
|
|
20
|
+
// Appel curifié : le predicate composé est passé directement à DCommon.when.
|
|
21
|
+
const transformed = DCommon.pipe(
|
|
22
|
+
source,
|
|
23
|
+
DCommon.when(
|
|
24
|
+
DCommon.and([
|
|
25
|
+
DCommon.isType("string"),
|
|
26
|
+
DCommon.truthy,
|
|
27
|
+
]),
|
|
28
|
+
(value) => {
|
|
29
|
+
type _CheckValue = DCommon.ExpectType<
|
|
30
|
+
typeof value,
|
|
31
|
+
string,
|
|
32
|
+
"strict"
|
|
33
|
+
>;
|
|
34
|
+
|
|
35
|
+
return DString.toUpperCase(value);
|
|
36
|
+
},
|
|
37
|
+
),
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
// La sortie est la source en majuscules si elle est une chaîne non vide, sinon la source inchangée.
|
|
41
|
+
type _CheckTransformed = DCommon.ExpectType<
|
|
42
|
+
typeof transformed,
|
|
43
|
+
number | Uppercase<string>,
|
|
44
|
+
"strict"
|
|
45
|
+
>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.asserts
|
|
3
|
+
*
|
|
4
|
+
* Affirmer une contrainte de type et lever une erreur si le prédicat échoue.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
|
|
8
|
+
declare const input: string | number;
|
|
9
|
+
|
|
10
|
+
DCommon.asserts(input, DCommon.isType("string"));
|
|
11
|
+
|
|
12
|
+
// Après l’assertion, input est garanti comme une chaîne.
|
|
13
|
+
type _CheckInput = DCommon.ExpectType<typeof input, string, "strict">;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.asyncInnerPipe
|
|
3
|
+
*
|
|
4
|
+
* Construire une fonction qui enchaîne des opérations synchrones ou asynchrones.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import type * as DNumber from "@duplojs/lang/number";
|
|
8
|
+
import * as DString from "@duplojs/lang/string";
|
|
9
|
+
|
|
10
|
+
const result = DCommon.asyncPipe(
|
|
11
|
+
"value",
|
|
12
|
+
DCommon.asyncInnerPipe(
|
|
13
|
+
DString.toUpperCase,
|
|
14
|
+
DString.length,
|
|
15
|
+
),
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
// La fonction composée retourne la longueur positive dans une Promise.
|
|
19
|
+
type _CheckResult = DCommon.ExpectType<
|
|
20
|
+
typeof result,
|
|
21
|
+
Promise<number & DNumber.Positive>,
|
|
22
|
+
"strict"
|
|
23
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.asyncLoop
|
|
3
|
+
*
|
|
4
|
+
* Contrôler une boucle asynchrone avec un compteur et une sortie typée.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
|
|
8
|
+
const result = DCommon.asyncLoop<"done", number>(async({
|
|
9
|
+
count,
|
|
10
|
+
previousOutput,
|
|
11
|
+
next,
|
|
12
|
+
exit,
|
|
13
|
+
}) => {
|
|
14
|
+
const current = previousOutput ?? 0;
|
|
15
|
+
await DCommon.timeout();
|
|
16
|
+
|
|
17
|
+
if (count === 3) {
|
|
18
|
+
return exit("done");
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return next(current + 1);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
// La callback est attendue asynchrone, mais conserve les mêmes paramètres que `loop`.
|
|
25
|
+
type _CheckResult = DCommon.ExpectType<typeof result, Promise<"done">, "strict">;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.asyncPipe
|
|
3
|
+
*
|
|
4
|
+
* Exécuter séquentiellement plusieurs transformations en attendant chaque résultat.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import type * as DNumber from "@duplojs/lang/number";
|
|
8
|
+
import * as DString from "@duplojs/lang/string";
|
|
9
|
+
|
|
10
|
+
const result = DCommon.asyncPipe(
|
|
11
|
+
"value",
|
|
12
|
+
DString.toUpperCase,
|
|
13
|
+
DString.length,
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
// Le résultat final est la longueur positive de la chaîne transformée.
|
|
17
|
+
type _CheckResult = DCommon.ExpectType<
|
|
18
|
+
typeof result,
|
|
19
|
+
Promise<number & DNumber.Positive>,
|
|
20
|
+
"strict"
|
|
21
|
+
>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.callThen
|
|
3
|
+
*
|
|
4
|
+
* Appliquer une fonction à une valeur immédiate ou promise, avec gestion optionnelle des erreurs.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DString from "@duplojs/lang/string";
|
|
8
|
+
|
|
9
|
+
const result = DCommon.callThen("value", DString.toUpperCase);
|
|
10
|
+
|
|
11
|
+
// Une valeur immédiate reste immédiate après l’application de la fonction.
|
|
12
|
+
type _CheckResult = DCommon.ExpectType<typeof result, Uppercase<string>, "strict">;
|
|
13
|
+
|
|
14
|
+
declare const promisedValue: Promise<string>;
|
|
15
|
+
const promisedResult = DCommon.callThen(promisedValue, DString.toUpperCase);
|
|
16
|
+
|
|
17
|
+
// Une Promise conserve son caractère asynchrone.
|
|
18
|
+
type _CheckPromisedResult = DCommon.ExpectType<
|
|
19
|
+
typeof promisedResult,
|
|
20
|
+
Promise<Uppercase<string>>,
|
|
21
|
+
"strict"
|
|
22
|
+
>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.cast
|
|
3
|
+
*
|
|
4
|
+
* Vérifier au niveau du typage qu’une valeur respecte une contrainte attendue.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import type * as DString from "@duplojs/lang/string";
|
|
8
|
+
|
|
9
|
+
const result: string & DString.MinCharacters<10> = DCommon.cast("thisIsASuperName");
|
|
10
|
+
|
|
11
|
+
// La compatibilité est vérifiée par TypeScript ; cast n’ajoute aucune validation runtime.
|
|
12
|
+
type _CheckResult = DCommon.ExpectType<
|
|
13
|
+
typeof result,
|
|
14
|
+
string & DString.MinCharacters<10>,
|
|
15
|
+
"strict"
|
|
16
|
+
>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.clone
|
|
3
|
+
*
|
|
4
|
+
* Copier récursivement les tableaux et objets simples sans modifier la valeur source.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
|
|
8
|
+
const source = { nested: { value: 1 } };
|
|
9
|
+
const result = DCommon.clone(source);
|
|
10
|
+
|
|
11
|
+
// La copie conserve la forme typée de l’objet source.
|
|
12
|
+
type _CheckResult = DCommon.ExpectType<typeof result, typeof source, "strict">;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.createAsyncRetry
|
|
3
|
+
*
|
|
4
|
+
* Décorer une fonction asynchrone avec une stratégie de nouvelle tentative.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
|
|
8
|
+
let callCount = 0;
|
|
9
|
+
|
|
10
|
+
const retry = DCommon.createAsyncRetry(
|
|
11
|
+
async(value: string) => {
|
|
12
|
+
callCount += 1;
|
|
13
|
+
await DCommon.timeout();
|
|
14
|
+
|
|
15
|
+
return callCount === 1 ? "retry" : value;
|
|
16
|
+
},
|
|
17
|
+
DCommon.equal("retry"),
|
|
18
|
+
{
|
|
19
|
+
maxRetry: 3,
|
|
20
|
+
timeToSleep: 10,
|
|
21
|
+
},
|
|
22
|
+
);
|
|
23
|
+
const result = retry("done");
|
|
24
|
+
|
|
25
|
+
// La fonction décorée conserve ses paramètres et retourne une Promise.
|
|
26
|
+
type _CheckRetry = DCommon.ExpectType<
|
|
27
|
+
typeof retry,
|
|
28
|
+
(value: string) => Promise<string>,
|
|
29
|
+
"strict"
|
|
30
|
+
>;
|
|
31
|
+
type _CheckResult = DCommon.ExpectType<typeof result, Promise<string>, "strict">;
|
|
32
|
+
|
|
33
|
+
// Le prédicat vrai (`result === "retry"`) relance l’opération ; `done` arrête les tentatives.
|
|
34
|
+
// `maxRetry` limite le nombre d’essais et `timeToSleep` règle la pause entre deux essais.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.createBuilder
|
|
3
|
+
*
|
|
4
|
+
* Configurer des handlers réutilisables pour construire un objet par étapes.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
|
|
8
|
+
interface ExampleBuilder extends DCommon.Builder<{ value: string }> {
|
|
9
|
+
build(): { value: string };
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const handlers = DCommon.createBuilder<ExampleBuilder>("api-documentation-builder").set(
|
|
13
|
+
"build",
|
|
14
|
+
({ accumulator }) => accumulator,
|
|
15
|
+
);
|
|
16
|
+
const result = handlers.use({ value: "done" }).build();
|
|
17
|
+
|
|
18
|
+
// Le handler réutilise l’accumulateur et conserve sa forme typée.
|
|
19
|
+
type _CheckResult = DCommon.ExpectType<typeof result, { value: string }, "strict">;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.createEnum
|
|
3
|
+
*
|
|
4
|
+
* Créer un enum littéral qui expose ses valeurs, un tuple et un prédicat `has`.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
|
|
8
|
+
const status = DCommon.createEnum([
|
|
9
|
+
"pending",
|
|
10
|
+
"done",
|
|
11
|
+
]);
|
|
12
|
+
const result = status.toTuple();
|
|
13
|
+
|
|
14
|
+
// Le tuple conserve les valeurs littérales et leur ordre.
|
|
15
|
+
type _CheckResult = DCommon.ExpectType<
|
|
16
|
+
typeof result,
|
|
17
|
+
readonly ["pending", "done"],
|
|
18
|
+
"strict"
|
|
19
|
+
>;
|
|
20
|
+
|
|
21
|
+
declare const input: "pending" | "done" | "missing";
|
|
22
|
+
if (status.has(input)) {
|
|
23
|
+
// Le predicate has affine l’union vers les valeurs de l’enum.
|
|
24
|
+
type _CheckInput = DCommon.ExpectType<typeof input, "pending" | "done", "strict">;
|
|
25
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.createExternalPromise
|
|
3
|
+
*
|
|
4
|
+
* Exposer les contrôles `resolve` et `reject` d’une promise séparément de sa création.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
|
|
8
|
+
const external = DCommon.createExternalPromise<string>();
|
|
9
|
+
const result = external.promise;
|
|
10
|
+
|
|
11
|
+
// La promise est résolue séparément par la méthode resolve.
|
|
12
|
+
external.resolve("done");
|
|
13
|
+
type _CheckResult = DCommon.ExpectType<typeof result, Promise<string>, "strict">;
|