Effect
4.0.0-beta.7
Patch Changes
-
#1366
a2bda6dThanks @tim-smart! - rename SqlSchema.findOne* apis -
#1360
1f95a2bThanks @tim-smart! - AddSchedule.jitteredto randomize schedule delays between 80% and 120% of the original delay. -
#1364
a8d5e79Thanks @gcanti! - Schema: avoid eager resolution for type-level helpers, closes #1332 -
#1369
a5386baThanks @tim-smart! - align HttpClientRequest constructors with http method names -
#1369
a5386baThanks @tim-smart! - remove body restriction for HttpClientRequest’s -
#1358
06d8a03Thanks @tim-smart! - AddLogLevel.isEnabledfor checking a log level againstReferences.MinimumLogLevel. -
#1363
8caac76Thanks @tim-smart! - rename DurationInput to Duration.Input -
#1363
8caac76Thanks @tim-smart! - DateTime.distance now returns a Duration -
#1363
8caac76Thanks @tim-smart! - remove rpc client nesting to improve type performance
4.0.0-beta.6
Patch Changes
-
#1338
3247da2Thanks @Leka74! - AddshowOperationIdtoHttpApiScalar.ScalarConfig. -
#1326
f205705Thanks @gcanti! - Schema: addBigDecimalschema with comparison checks (isGreaterThanBigDecimal,isGreaterThanOrEqualToBigDecimal,isLessThanBigDecimal,isLessThanOrEqualToBigDecimal,isBetweenBigDecimal). -
#1328
f35022cThanks @gcanti! - Schema: addDateTimeZoned,TimeZoneOffset,TimeZoneNamed, andTimeZoneschemas. -
#1325
8622721Thanks @KhraksMamtsov! - MakeData.Class,Data.TaggedClass, andCause.YieldableErrorpipeable. -
#1323
fc660abThanks @KhraksMamtsov! - PortPipeable.Classfrom v3.class MyClass extends Pipeable.Class() {constructor(public a: number) {super();}methodA() {return this.a;}}console.log(new MyClass(2).pipe((x) => x.methodA())); // 2class A {constructor(public a: number) {}methodA() {return this.a;}}class B extends Pipeable.Class(A) {constructor(private b: string) {super(b.length);}methodB() {return [this.b, this.methodA()];}}console.log(new B("pipe").pipe((x) => x.methodB())); // ['pipe', 4] -
#1337
f37dc33Thanks @IMax153! - Encoding: consolidateeffect/encodingsub-modules (Base64, Base64Url, Hex, EncodingError) into a top-levelEncodingmodule. Functions are now prefixed:encodeBase64,decodeBase64,encodeHex,decodeHex, etc. Theeffect/encodingsub-path export is removed. -
#1351
3662f32Thanks @tim-smart! - addSchema.HashSetfor decoding and encodingHashSetvalues. -
#1336
a7d436fThanks @mikearnaldi! - ExtractSemaphoreandLatchinto their own modules.Semaphore.make/Semaphore.makeUnsafereplaceEffect.makeSemaphore/Effect.makeSemaphoreUnsafe.Latch.make/Latch.makeUnsafereplaceEffect.makeLatch/Effect.makeLatchUnsafe.Merge
PartitionedSemaphoreintoSemaphoreasSemaphore.Partitioned,Semaphore.makePartitioned,Semaphore.makePartitionedUnsafe. -
#1345
6856a41Thanks @tim-smart! - allocate less effects when reading a file -
#1350
8c417d0Thanks @tim-smart! - Add “Previously Known As” JSDoc migration notes for theSemaphoreandLatchAPIs extracted fromEffect. -
#1355
5419570Thanks @tim-smart! - ensure non-middleware http errors are correctly handled -
#1352
449c5edThanks @tim-smart! - AddSchema.HashMapfor decoding and encodingHashMapvalues. -
#1347
4b5ec12Thanks @tim-smart! - use .toJSON for default .toString implementations -
#1329
df87937Thanks @gcanti! - Schema: extract shareddateTimeUtcFromStringtransformation forDateTimeUtcandDateTimeUtcFromString. -
#1318
5dbfca8Thanks @gcanti! - Schema: rename$suffix to$prefix for type-level identifiers that conflict with built-in names (Array$→$Array,Record$→$Record,ReadonlyMap$→$ReadonlyMap,ReadonlySet$→$ReadonlySet). -
#1356
e629497Thanks @tim-smart! - allow passing void for request constructors -
#1348
981c991Thanks @tim-smart! - FixSchedule.andThenResultto initialize the right schedule only after the left schedule completes. This removes the extra immediate transition tick and correctly completes when the right schedule is finite. -
#1320
1ca2ed6Thanks @gcanti! - Struct: addStruct.Recordconstructor for creating records with the given keys and value. -
#1342
45722bdThanks @cevr! -Schema.TaggedErrorClass,Schema.Class, andSchema.ErrorClassconstructors now allow omitting the props argument when all fields have constructor defaults (e.g.new MyError()instead ofnew MyError({})). -
#1322
eb2a85eThanks @tim-smart! - Add arequireServicesAtoption toPersistedCache.makeso lookup-service requirements can be configured likeCache.
4.0.0-beta.5
Patch Changes
-
#1317
f6e133eThanks @tim-smart! - support tag unions in Effect.catchTag/Reason -
#1314
e3893ccThanks @zeyuri! - FixAtom.serializableencode/decode for wire transfer.Use
Schema.toCodecJsoninstead ofSchema.encodeSync/Schema.decodeSyncdirectly, so that encoded values are plain JSON objects that survive serialization roundtrips (JSON, seroval, etc.). Previously,AsyncResult.Schemaencode produced instances with custom prototypes that were lost after wire transfer, causing decode to fail with “Expected AsyncResult” errors during SSR hydration. -
#1314
e3893ccThanks @zeyuri! - Port ReactHydration to effect-smol.Add
Hydrationmodule toeffect/unstable/reactivitywithdehydrate,hydrate, andtoValuesfor SSR state serialization. AddHydrationBoundaryReact component to@effect/atom-reactwith two-phase hydration (new atoms in render, existing atoms after commit).
4.0.0-beta.4
Patch Changes
-
#1308
c5a18efThanks @tim-smart! - improve Schema.TaggedUnion .match auto completion -
#1310
bc6b885Thanks @tim-smart! - AddSchedule.duration, a one-shot schedule that waits for the provided duration and then completes.
4.0.0-beta.3
Patch Changes
-
#1307
c4da328Thanks @tim-smart! - AddHttpClientRequest.bodyFormDataRecordandHttpBody.makeFormDataRecordhelpers for creating multipart form bodies from plain records.
4.0.0-beta.2
Patch Changes
-
#1302
a22ce73Thanks @tim-smart! - allow undefined for VariantSchema.Overridable input -
#1299
ebdabf7Thanks @tim-smart! - PortSqlSchema.findOnefrom effect v3 to returnOptionon empty results and addSqlSchema.singlefor the fail-on-empty behavior. -
#1298
8f663bbThanks @tim-smart! - AddEffect.catchNoSuchElement, a renamed port of v3Effect.optionFromOptionalthat convertsNoSuchElementErrorfailures intoOption.none.
4.0.0-beta.1
Patch Changes
-
#1293
0fecf70Thanks @mikearnaldi! - AddEffect.filtersupport for synchronousFilter.Filteroverloads and correctly handle non-effectResultreturn values at runtime. -
#1294
709569eThanks @tim-smart! - FixPrompt.textand related text prompts to initialize fromdefaultvalues so users can edit the default input directly.