@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,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.toCurriedPredicate
|
|
3
|
+
*
|
|
4
|
+
* Adapter un prédicat non générique vers la forme curifiée attendue par une fonction.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DString from "@duplojs/lang/string";
|
|
8
|
+
|
|
9
|
+
declare const input: string | number;
|
|
10
|
+
|
|
11
|
+
const isString = (value: string | number): value is string => (
|
|
12
|
+
typeof value === "string"
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
const result = DCommon.pipe(
|
|
16
|
+
input,
|
|
17
|
+
DCommon.when(
|
|
18
|
+
DCommon.toCurriedPredicate(isString),
|
|
19
|
+
DString.toUpperCase,
|
|
20
|
+
),
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
// Le prédicat unaire est adapté à une API qui attend un predicate curifié.
|
|
24
|
+
type _CheckResult = DCommon.ExpectType<
|
|
25
|
+
typeof result,
|
|
26
|
+
number | Uppercase<string>,
|
|
27
|
+
"strict"
|
|
28
|
+
>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.toJSON
|
|
3
|
+
*
|
|
4
|
+
* Transformer récursivement les valeurs DuploJS vers leur représentation JSON.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
|
|
8
|
+
const result = DCommon.toJSON({
|
|
9
|
+
toJSON() {
|
|
10
|
+
return "json" as const;
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
// La méthode toJSON est appelée sur la valeur fournie.
|
|
15
|
+
type _CheckResult = DCommon.ExpectType<typeof result, "json", "strict">;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.toNative
|
|
3
|
+
*
|
|
4
|
+
* Transformer récursivement les valeurs DuploJS qui exposent `toNative`.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
|
|
8
|
+
const result = DCommon.toNative({
|
|
9
|
+
toNative() {
|
|
10
|
+
return "native" as const;
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
// La méthode toNative est appelée sur la valeur fournie.
|
|
15
|
+
type _CheckResult = DCommon.ExpectType<typeof result, "native", "strict">;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.toRegExp
|
|
3
|
+
*
|
|
4
|
+
* Convertir une chaîne, un tuple de chaînes ou une expression régulière en `RegExp`.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
|
|
8
|
+
const fromString = DCommon.toRegExp("file.name");
|
|
9
|
+
const fromTuple = DCommon.toRegExp(["pending", "done"] as const);
|
|
10
|
+
const existing = /^(pending|done)$/;
|
|
11
|
+
const fromRegExp = DCommon.toRegExp(existing);
|
|
12
|
+
|
|
13
|
+
// Une chaîne devient un motif exact et ses caractères spéciaux sont échappés.
|
|
14
|
+
// Un tuple devient une alternative exacte ; une RegExp existante est réutilisée.
|
|
15
|
+
type _CheckString = DCommon.ExpectType<typeof fromString, RegExp, "strict">;
|
|
16
|
+
type _CheckTuple = DCommon.ExpectType<typeof fromTuple, RegExp, "strict">;
|
|
17
|
+
type _CheckRegExp = DCommon.ExpectType<typeof fromRegExp, RegExp, "strict">;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.transformer
|
|
3
|
+
*
|
|
4
|
+
* Appliquer récursivement une méthode sans argument aux objets, tableaux et valeurs imbriqués.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
|
|
8
|
+
const result = DCommon.transformer(
|
|
9
|
+
{
|
|
10
|
+
value: {
|
|
11
|
+
toNative() {
|
|
12
|
+
return 42 as const;
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
"toNative",
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
// Les objets imbriqués sont transformés récursivement.
|
|
20
|
+
type _CheckResult = DCommon.ExpectType<typeof result, { value: 42 }, "strict">;
|
|
21
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.truthy
|
|
3
|
+
*
|
|
4
|
+
* Identifier les valeurs truthy et retirer les valeurs falsy de leur union.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
|
|
8
|
+
declare const input: string | null;
|
|
9
|
+
const result = DCommon.truthy(input);
|
|
10
|
+
|
|
11
|
+
// Le predicate produit un booléen et peut affiner input vers une chaîne.
|
|
12
|
+
type _CheckResult = DCommon.ExpectType<typeof result, boolean, "strict">;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.useAsyncRetry
|
|
3
|
+
*
|
|
4
|
+
* Réessayer une opération asynchrone selon son résultat et une limite d’essais.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
|
|
8
|
+
let callCount = 0;
|
|
9
|
+
|
|
10
|
+
const result = DCommon.useAsyncRetry(
|
|
11
|
+
async() => {
|
|
12
|
+
callCount += 1;
|
|
13
|
+
await DCommon.timeout();
|
|
14
|
+
|
|
15
|
+
return callCount === 1 ? "retry" : "done";
|
|
16
|
+
},
|
|
17
|
+
DCommon.equal("retry"),
|
|
18
|
+
{
|
|
19
|
+
maxRetry: 3,
|
|
20
|
+
timeToSleep: 10,
|
|
21
|
+
},
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
// Le résultat est testé après chaque essai : si le prédicat est vrai (`result === "retry"`), on recommence.
|
|
25
|
+
type _CheckResult = DCommon.ExpectType<
|
|
26
|
+
typeof result,
|
|
27
|
+
Promise<"retry" | "done">,
|
|
28
|
+
"strict"
|
|
29
|
+
>;
|
|
30
|
+
|
|
31
|
+
// `maxRetry` est obligatoire ; `timeToSleep` ajoute une pause entre deux essais.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.when
|
|
3
|
+
*
|
|
4
|
+
* Transformer une valeur uniquement lorsqu’un prédicat est satisfait.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DString from "@duplojs/lang/string";
|
|
8
|
+
|
|
9
|
+
declare const input: string | number;
|
|
10
|
+
|
|
11
|
+
// Appel classique : donner la valeur avant le predicate.
|
|
12
|
+
const result = DCommon.when(
|
|
13
|
+
input,
|
|
14
|
+
DCommon.isType("string"),
|
|
15
|
+
DString.toUpperCase,
|
|
16
|
+
);
|
|
17
|
+
type _CheckResult = DCommon.ExpectType<typeof result, number | Uppercase<string>, "strict">;
|
|
18
|
+
|
|
19
|
+
// Appel curifié : l’étape configurée est directement placée dans DCommon.pipe.
|
|
20
|
+
const piped = DCommon.pipe(
|
|
21
|
+
input,
|
|
22
|
+
DCommon.when(
|
|
23
|
+
DCommon.isType("string"),
|
|
24
|
+
DString.toUpperCase,
|
|
25
|
+
),
|
|
26
|
+
);
|
|
27
|
+
type _CheckPiped = DCommon.ExpectType<typeof piped, number | Uppercase<string>, "strict">;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.whenElse
|
|
3
|
+
*
|
|
4
|
+
* Choisir une transformation selon le résultat d’un prédicat.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
|
|
8
|
+
declare const input: string | number;
|
|
9
|
+
|
|
10
|
+
// Appel classique : les deux branches retournent la valeur sélectionnée.
|
|
11
|
+
const result = DCommon.whenElse(
|
|
12
|
+
input,
|
|
13
|
+
DCommon.isType("string"),
|
|
14
|
+
DCommon.forward,
|
|
15
|
+
DCommon.forward,
|
|
16
|
+
);
|
|
17
|
+
type _CheckResult = DCommon.ExpectType<typeof result, string | number, "strict">;
|
|
18
|
+
|
|
19
|
+
// Appel curifié : configurer le choix dans une étape de pipe.
|
|
20
|
+
const piped = DCommon.pipe(
|
|
21
|
+
input,
|
|
22
|
+
DCommon.whenElse(
|
|
23
|
+
DCommon.isType("string"),
|
|
24
|
+
DCommon.forward,
|
|
25
|
+
DCommon.forward,
|
|
26
|
+
),
|
|
27
|
+
);
|
|
28
|
+
type _CheckPiped = DCommon.ExpectType<typeof piped, string | number, "strict">;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DCommon.whenNot
|
|
3
|
+
*
|
|
4
|
+
* Transformer une valeur uniquement lorsqu’un prédicat n’est pas satisfait.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
|
|
8
|
+
declare const input: string | number;
|
|
9
|
+
|
|
10
|
+
// Appel classique : transformer seulement la branche qui ne satisfait pas le predicate.
|
|
11
|
+
const result = DCommon.whenNot(
|
|
12
|
+
input,
|
|
13
|
+
DCommon.isType("string"),
|
|
14
|
+
DCommon.forward,
|
|
15
|
+
);
|
|
16
|
+
type _CheckResult = DCommon.ExpectType<typeof result, string | number, "strict">;
|
|
17
|
+
|
|
18
|
+
// Appel curifié : placer le traitement conditionnel dans un pipe.
|
|
19
|
+
const piped = DCommon.pipe(
|
|
20
|
+
input,
|
|
21
|
+
DCommon.whenNot(
|
|
22
|
+
DCommon.isType("string"),
|
|
23
|
+
DCommon.forward,
|
|
24
|
+
),
|
|
25
|
+
);
|
|
26
|
+
type _CheckPiped = DCommon.ExpectType<typeof piped, string | number, "strict">;
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
## DCommon
|
|
2
|
+
|
|
3
|
+
Fonctions générales de composition, de transformation, de contrôle de flux et de manipulation des valeurs partagées par les autres domaines DuploJS.
|
|
4
|
+
|
|
5
|
+
### [DCommon.and](10-and.ts)
|
|
6
|
+
|
|
7
|
+
Combiner plusieurs prédicats dans une condition qui doit tous les satisfaire.
|
|
8
|
+
|
|
9
|
+
### [DCommon.asserts](10-asserts.ts)
|
|
10
|
+
|
|
11
|
+
Affirmer une contrainte de type et lever une erreur si le prédicat échoue.
|
|
12
|
+
|
|
13
|
+
### [DCommon.asyncInnerPipe](10-asyncInnerPipe.ts)
|
|
14
|
+
|
|
15
|
+
Construire une fonction qui enchaîne des opérations synchrones ou asynchrones.
|
|
16
|
+
|
|
17
|
+
### [DCommon.asyncLoop](10-asyncLoop.ts)
|
|
18
|
+
|
|
19
|
+
Contrôler une boucle asynchrone avec un compteur et une sortie typée.
|
|
20
|
+
|
|
21
|
+
### [DCommon.asyncPipe](10-asyncPipe.ts)
|
|
22
|
+
|
|
23
|
+
Exécuter séquentiellement plusieurs transformations en attendant chaque résultat.
|
|
24
|
+
|
|
25
|
+
### [DCommon.callThen](10-callThen.ts)
|
|
26
|
+
|
|
27
|
+
Appliquer une fonction à une valeur immédiate ou promise, avec gestion optionnelle des erreurs.
|
|
28
|
+
|
|
29
|
+
### [DCommon.cast](10-cast.ts)
|
|
30
|
+
|
|
31
|
+
Vérifier au niveau du typage qu’une valeur respecte une contrainte attendue.
|
|
32
|
+
|
|
33
|
+
### [DCommon.clone](10-clone.ts)
|
|
34
|
+
|
|
35
|
+
Copier récursivement les tableaux et objets simples sans modifier la valeur source.
|
|
36
|
+
|
|
37
|
+
### [DCommon.createAsyncRetry](10-createAsyncRetry.ts)
|
|
38
|
+
|
|
39
|
+
Décorer une fonction asynchrone avec une stratégie de nouvelle tentative.
|
|
40
|
+
|
|
41
|
+
### [DCommon.createBuilder](10-createBuilder.ts)
|
|
42
|
+
|
|
43
|
+
Configurer des handlers réutilisables pour construire un objet par étapes.
|
|
44
|
+
|
|
45
|
+
### [DCommon.createEnum](10-createEnum.ts)
|
|
46
|
+
|
|
47
|
+
Créer un enum littéral qui expose ses valeurs, un tuple et un prédicat `has`.
|
|
48
|
+
|
|
49
|
+
### [DCommon.createExternalPromise](10-createExternalPromise.ts)
|
|
50
|
+
|
|
51
|
+
Exposer les contrôles `resolve` et `reject` d’une promise séparément de sa création.
|
|
52
|
+
|
|
53
|
+
### [DCommon.createFormData](10-createFormData.ts)
|
|
54
|
+
|
|
55
|
+
Transformer un objet de valeurs en `FormData` en conservant ses valeurs d’entrée typées.
|
|
56
|
+
|
|
57
|
+
### [DCommon.createInterpolation](10-createInterpolation.ts)
|
|
58
|
+
|
|
59
|
+
Préparer une fonction qui remplace les identifiants entre accolades dans un modèle.
|
|
60
|
+
|
|
61
|
+
### [DCommon.createQueue](10-createQueue.ts)
|
|
62
|
+
|
|
63
|
+
Créer une file d’attente typée avec une capacité optionnelle.
|
|
64
|
+
|
|
65
|
+
### [DCommon.createTransformer](10-createTransformer.ts)
|
|
66
|
+
|
|
67
|
+
Créer une fonction de transformation récursive liée à un nom de méthode.
|
|
68
|
+
|
|
69
|
+
### [DCommon.detachObjectMethod](10-detachObjectMethod.ts)
|
|
70
|
+
|
|
71
|
+
Détacher une méthode d’un objet tout en conservant son contexte d’exécution.
|
|
72
|
+
|
|
73
|
+
### [DCommon.equal](10-equal.ts)
|
|
74
|
+
|
|
75
|
+
Créer un prédicat d’égalité pour une valeur ou une liste de valeurs littérales.
|
|
76
|
+
|
|
77
|
+
### [DCommon.escapeRegExp](10-escapeRegExp.ts)
|
|
78
|
+
|
|
79
|
+
Échapper les caractères spéciaux d’une chaîne avant de l’utiliser dans une expression régulière.
|
|
80
|
+
|
|
81
|
+
### [DCommon.falsy](10-falsy.ts)
|
|
82
|
+
|
|
83
|
+
Identifier les valeurs falsy JavaScript avec un narrowing TypeScript.
|
|
84
|
+
|
|
85
|
+
### [DCommon.forward](10-forward.ts)
|
|
86
|
+
|
|
87
|
+
Retourner une valeur telle quelle pour la rendre explicite dans une composition.
|
|
88
|
+
|
|
89
|
+
### [DCommon.forwardAsserts](10-forwardAsserts.ts)
|
|
90
|
+
|
|
91
|
+
Vérifier une valeur et la retourner, ou produire une fonction réutilisable de vérification.
|
|
92
|
+
|
|
93
|
+
### [DCommon.forwardLog](10-forwardLog.ts)
|
|
94
|
+
|
|
95
|
+
Afficher une valeur puis la retourner pour observer une composition.
|
|
96
|
+
|
|
97
|
+
### [DCommon.infer](10-infer.ts)
|
|
98
|
+
|
|
99
|
+
Inférer une contrainte à partir d’une valeur littérale dans une expression typée.
|
|
100
|
+
|
|
101
|
+
### [DCommon.innerPipe](10-innerPipe.ts)
|
|
102
|
+
|
|
103
|
+
Composer plusieurs transformations dans une fonction réutilisable.
|
|
104
|
+
|
|
105
|
+
### [DCommon.instanceOf](10-instanceOf.ts)
|
|
106
|
+
|
|
107
|
+
Créer un prédicat basé sur un constructeur avec narrowing de l’instance.
|
|
108
|
+
|
|
109
|
+
### [DCommon.isType](10-isType.ts)
|
|
110
|
+
|
|
111
|
+
Construire un prédicat de type à partir d’un type runtime.
|
|
112
|
+
|
|
113
|
+
### [DCommon.justExec](10-justExec.ts)
|
|
114
|
+
|
|
115
|
+
Encapsuler une logique impérative locale et affecter directement son résultat.
|
|
116
|
+
|
|
117
|
+
### [DCommon.justReturn](10-justReturn.ts)
|
|
118
|
+
|
|
119
|
+
Fournir une valeur déjà calculée à une étape de pipe sans écrire de callback.
|
|
120
|
+
|
|
121
|
+
### [DCommon.loop](10-loop.ts)
|
|
122
|
+
|
|
123
|
+
Contrôler une boucle synchrone avec un compteur et une sortie typée.
|
|
124
|
+
|
|
125
|
+
### [DCommon.memo](10-memo.ts)
|
|
126
|
+
|
|
127
|
+
Évaluer une fonction au premier accès puis mémoriser sa valeur.
|
|
128
|
+
|
|
129
|
+
### [DCommon.memoObject](10-memoObject.ts)
|
|
130
|
+
|
|
131
|
+
Exposer un objet calculé paresseusement tout en mémorisant son contenu.
|
|
132
|
+
|
|
133
|
+
### [DCommon.memoPromise](10-memoPromise.ts)
|
|
134
|
+
|
|
135
|
+
Mémoriser le résultat d’un calcul synchrone ou asynchrone.
|
|
136
|
+
|
|
137
|
+
### [DCommon.or](10-or.ts)
|
|
138
|
+
|
|
139
|
+
Combiner plusieurs prédicats en une condition satisfaite par au moins l’un d’eux.
|
|
140
|
+
|
|
141
|
+
### [DCommon.pipe](10-pipe.ts)
|
|
142
|
+
|
|
143
|
+
Appliquer une suite de transformations de gauche à droite.
|
|
144
|
+
|
|
145
|
+
### [DCommon.pipeCall](10-pipeCall.ts)
|
|
146
|
+
|
|
147
|
+
Corriger l’inférence d’une fonction sans générique utilisée dans un pipe.
|
|
148
|
+
|
|
149
|
+
### [DCommon.prepareAsyncPipe](10-prepareAsyncPipe.ts)
|
|
150
|
+
|
|
151
|
+
Préparer une fabrique de pipelines asynchrones partageant une contrainte d’entrée.
|
|
152
|
+
|
|
153
|
+
### [DCommon.preparePipe](10-preparePipe.ts)
|
|
154
|
+
|
|
155
|
+
Préparer une fabrique de pipelines partageant une contrainte d’entrée.
|
|
156
|
+
|
|
157
|
+
### [DCommon.promiseAll](10-promiseAll.ts)
|
|
158
|
+
|
|
159
|
+
Attendre un tuple ou un itérable de promesses en conservant la forme du tuple.
|
|
160
|
+
|
|
161
|
+
### [DCommon.promiseObject](10-promiseObject.ts)
|
|
162
|
+
|
|
163
|
+
Attendre toutes les propriétés promises d’un objet et reconstruire l’objet résolu.
|
|
164
|
+
|
|
165
|
+
### [DCommon.removeConstraint](10-removeConstraint.ts)
|
|
166
|
+
|
|
167
|
+
Retirer les contraintes DuploJS d’un type tout en conservant sa forme de valeur.
|
|
168
|
+
|
|
169
|
+
### [DCommon.shameOnYou](10-shameOnYou.ts)
|
|
170
|
+
|
|
171
|
+
Contourner explicitement une contrainte attendue dans un contrat de type.
|
|
172
|
+
|
|
173
|
+
### [DCommon.simpleClone](10-simpleClone.ts)
|
|
174
|
+
|
|
175
|
+
Créer une copie superficielle d’une valeur clonable.
|
|
176
|
+
|
|
177
|
+
### [DCommon.stringToBytes](10-stringToBytes.ts)
|
|
178
|
+
|
|
179
|
+
Convertir une quantité en octets écrite avec une unité ou déjà numérique.
|
|
180
|
+
|
|
181
|
+
### [DCommon.stringToMillisecond](10-stringToMillisecond.ts)
|
|
182
|
+
|
|
183
|
+
Additionner des durées écrites avec une unité ou exprimées en millisecondes.
|
|
184
|
+
|
|
185
|
+
### [DCommon.timeout](10-timeout.ts)
|
|
186
|
+
|
|
187
|
+
Créer une promise résolue après un délai en millisecondes.
|
|
188
|
+
|
|
189
|
+
### [DCommon.toCurriedPredicate](10-toCurriedPredicate.ts)
|
|
190
|
+
|
|
191
|
+
Adapter un prédicat non générique vers la forme curifiée attendue par une fonction.
|
|
192
|
+
|
|
193
|
+
### [DCommon.toJSON](10-toJSON.ts)
|
|
194
|
+
|
|
195
|
+
Transformer récursivement les valeurs DuploJS vers leur représentation JSON.
|
|
196
|
+
|
|
197
|
+
### [DCommon.toNative](10-toNative.ts)
|
|
198
|
+
|
|
199
|
+
Transformer récursivement les valeurs DuploJS qui exposent `toNative`.
|
|
200
|
+
|
|
201
|
+
### [DCommon.toRegExp](10-toRegExp.ts)
|
|
202
|
+
|
|
203
|
+
Convertir une chaîne, un tuple de chaînes ou une expression régulière en `RegExp`.
|
|
204
|
+
|
|
205
|
+
### [DCommon.transformer](10-transformer.ts)
|
|
206
|
+
|
|
207
|
+
Appliquer récursivement une méthode sans argument aux objets, tableaux et valeurs imbriqués.
|
|
208
|
+
|
|
209
|
+
### [DCommon.truthy](10-truthy.ts)
|
|
210
|
+
|
|
211
|
+
Identifier les valeurs truthy et retirer les valeurs falsy de leur union.
|
|
212
|
+
|
|
213
|
+
### [DCommon.useAsyncRetry](10-useAsyncRetry.ts)
|
|
214
|
+
|
|
215
|
+
Réessayer une opération asynchrone selon son résultat et une limite d’essais.
|
|
216
|
+
|
|
217
|
+
### [DCommon.when](10-when.ts)
|
|
218
|
+
|
|
219
|
+
Transformer une valeur uniquement lorsqu’un prédicat est satisfait.
|
|
220
|
+
|
|
221
|
+
### [DCommon.whenElse](10-whenElse.ts)
|
|
222
|
+
|
|
223
|
+
Choisir une transformation selon le résultat d’un prédicat.
|
|
224
|
+
|
|
225
|
+
### [DCommon.whenNot](10-whenNot.ts)
|
|
226
|
+
|
|
227
|
+
Transformer une valeur uniquement lorsqu’un prédicat n’est pas satisfait.
|
|
228
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.absolutePath
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte de chemin absolu et l’appliquer à une structure de chaîne.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import type * as DPath from "@duplojs/lang/path";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.absolutePath();
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.AbsolutePathConstraint,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.string([constraint]);
|
|
18
|
+
const result = structure.check("/src/index.ts");
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
string & DPath.Absolute,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.allowedCharacters
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte de caractères autorisés et l’appliquer à une structure de chaîne.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import type * as DString from "@duplojs/lang/string";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.allowedCharacters("a-z");
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.AllowedCharactersConstraint<"a-z">,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.string([constraint]);
|
|
18
|
+
const result = structure.check("abc");
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
string & DString.AllowedCharacters<"a-z">,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.array
|
|
3
|
+
*
|
|
4
|
+
* Construire une structure de tableau à partir de la structure de ses éléments.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
|
|
9
|
+
const structure = DDataStructure.array(
|
|
10
|
+
DDataStructure.string(),
|
|
11
|
+
);
|
|
12
|
+
const result = structure.check(["red", "blue"]);
|
|
13
|
+
|
|
14
|
+
type _CheckStructure = DCommon.ExpectType<
|
|
15
|
+
typeof structure,
|
|
16
|
+
DDataStructure.ArrayStructure<readonly string[], readonly []>,
|
|
17
|
+
"strict"
|
|
18
|
+
>;
|
|
19
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
20
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
21
|
+
readonly string[],
|
|
22
|
+
"strict"
|
|
23
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.arrayLengthEqual
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte de longueur exacte et l’appliquer à une structure de tableau.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DArray from "@duplojs/lang/array";
|
|
7
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.arrayLengthEqual(3);
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.ArrayLengthEqualConstraint<3>,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.array(DDataStructure.number(), [constraint]);
|
|
18
|
+
const result = structure.check([1, 2, 3]);
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
readonly number[] & DArray.LengthEqual<3>,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.betweenThan
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte de nombre strictement compris entre deux bornes.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import type * as DNumber from "@duplojs/lang/number";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.betweenThan(1, 3);
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.BetweenThanConstraint<1, 3>,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.number([constraint]);
|
|
18
|
+
const result = structure.check(2);
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
number & DNumber.GreaterThan<1> & DNumber.LessThan<3>,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.betweenThanOrEqual
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte de nombre compris entre deux bornes inclusives.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import type * as DNumber from "@duplojs/lang/number";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.betweenThanOrEqual(1, 3);
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.BetweenThanOrEqualConstraint<1, 3>,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.number([constraint]);
|
|
18
|
+
const result = structure.check(1);
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
number & DNumber.GreaterThanOrEqual<1> & DNumber.LessThanOrEqual<3>,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.bigint
|
|
3
|
+
*
|
|
4
|
+
* Construire une structure représentant des valeurs `bigint`.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
|
|
9
|
+
const structure = DDataStructure.bigint();
|
|
10
|
+
const result = structure.check(42n);
|
|
11
|
+
|
|
12
|
+
// La structure représente le type indiqué par son contrat.
|
|
13
|
+
type _CheckStructure = DCommon.ExpectType<
|
|
14
|
+
typeof structure,
|
|
15
|
+
DDataStructure.TypeStructure<bigint, readonly []>,
|
|
16
|
+
"strict"
|
|
17
|
+
>;
|
|
18
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
19
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
20
|
+
bigint,
|
|
21
|
+
"strict"
|
|
22
|
+
>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.boolean
|
|
3
|
+
*
|
|
4
|
+
* Construire une structure représentant des valeurs booléennes.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
|
|
9
|
+
const structure = DDataStructure.boolean();
|
|
10
|
+
const result = structure.check(true);
|
|
11
|
+
|
|
12
|
+
// La structure représente le type indiqué par son contrat.
|
|
13
|
+
type _CheckStructure = DCommon.ExpectType<
|
|
14
|
+
typeof structure,
|
|
15
|
+
DDataStructure.TypeStructure<boolean, readonly []>,
|
|
16
|
+
"strict"
|
|
17
|
+
>;
|
|
18
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
19
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
20
|
+
boolean,
|
|
21
|
+
"strict"
|
|
22
|
+
>;
|