- 9c4d458: It adds GuardViolationError and GenericDomainError to the AppError class so that when using AppResult.fromResult, the exact error status is preserved, allowing users to map different status codes in their result interceptors and related logic.
- 085bedf: Fix deno.jsonc
- 35e44d3: Update to NodeNext (esm+cjs) - use tsdown for build
- 3dacb34: Fix readme example
- eca4dcf: Remove slow types
- d47fa13: Add readme and make deno compatible
- f9bf649: empty
- cbd1c1c: - Rename nominal types to refined types
- Add
extendutil for adding custom method to an object or class while retaining type safety (an alternative is spread operator, but that approach removes the runtime private props) - Add
DateTimerefined type - Add an optionally implementable
getParsermethod inBaseValueObjectto allow sharing schematic (syntactic + semantic) validation logic with domain boundaries - Add a
DateRangetype to show case how to use refined types and the structure of a value object with schematic and domain validations - Update
BaseEntityto utilize the new refined types forId(UUID),createdAt(DateTime) andupdatedAt(DateTime) fields
- Add
- 9686ab1: - Add nominal/branded types (and a helper function to simplify their creation)
- Remove ExternalServiceFailure error port
- Add GuardViolationError and AppErrStatus
- Simplify BaseRepository, only insert and update are mandatory to implement now
- Remove UUID and Email value objects, shift to UUID and Email branded types
- Simplify types in SerializedEntity interface (can reuse UUID in both IEntity and SerializedEntity)
- Move Logger interface to shared
- Move MockRepository to infra
- Remove EMAIL and UUID schema types from ZodSchemas
- Update tests to cater to above changes, add new tests for nominal types
- 1dfa48a: Add values getter to refined enums
- 7482c4c: Simplify serialized entity
-
669ff67: Add composition util methods and update AppResult methods for @carbonteq/fp v0.6.0
- Add
AppendToTuple,IsUnionandEnsureNotUniontype utils - Remove
isPromisetype guard. Already present innode:util/types - Add
extractProp,extractProps,extractId,toSerializedandnestWithKeycomposition utilities - Rename
RefinedType.$inferInnertoRefinedType.$inferPrimitiveandRefinedType.valuetoRefinedType.primitive
- Add
-
261f5fd: Improve refined amd enum types
- Add
$inferand$inferInnerfor simpler type extraction - Add
valuemethod for getting the unbranded type easily - Add
matchEnumfor pattern matching enum type (with exhaustive checking and type safety) - Add
eq'static' method in enum types for simpler equality checks
- Add
- 759d906: Simplify app error messages
- cbd1c1c: - Rename nominal types to refined types
- Add
extendutil for adding custom method to an object or class while retaining type safety (an alternative is spread operator, but that approach removes the runtime private props) - Add
DateTimerefined type - Add an optionally implementable
getParsermethod inBaseValueObjectto allow sharing schematic (syntactic + semantic) validation logic with domain boundaries - Add a
DateRangetype to show case how to use refined types and the structure of a value object with schematic and domain validations - Update
BaseEntityto utilize the new refined types forId(UUID),createdAt(DateTime) andupdatedAt(DateTime) fields
- Add
- 9686ab1: - Add nominal/branded types (and a helper function to simplify their creation)
- Remove ExternalServiceFailure error port
- Add GuardViolationError and AppErrStatus
- Simplify BaseRepository, only insert and update are mandatory to implement now
- Remove UUID and Email value objects, shift to UUID and Email branded types
- Simplify types in SerializedEntity interface (can reuse UUID in both IEntity and SerializedEntity)
- Move Logger interface to shared
- Move MockRepository to infra
- Remove EMAIL and UUID schema types from ZodSchemas
- Update tests to cater to above changes, add new tests for nominal types
- 1dfa48a: Add values getter to refined enums
- 7482c4c: Simplify serialized entity
- cc3ce7d: Dummy release with fixed exports
- a18e818: Add createEnumType, update to use @carbonteq/fp@0.5.0. Add isPromise type guard
- cbd1c1c: - Rename nominal types to refined types
- Add
extendutil for adding custom method to an object or class while retaining type safety (an alternative is spread operator, but that approach removes the runtime private props) - Add
DateTimerefined type - Add an optionally implementable
getParsermethod inBaseValueObjectto allow sharing schematic (syntactic + semantic) validation logic with domain boundaries - Add a
DateRangetype to show case how to use refined types and the structure of a value object with schematic and domain validations - Update
BaseEntityto utilize the new refined types forId(UUID),createdAt(DateTime) andupdatedAt(DateTime) fields
- Add
- 9686ab1: - Add nominal/branded types (and a helper function to simplify their creation)
- Remove ExternalServiceFailure error port
- Add GuardViolationError and AppErrStatus
- Simplify BaseRepository, only insert and update are mandatory to implement now
- Remove UUID and Email value objects, shift to UUID and Email branded types
- Simplify types in SerializedEntity interface (can reuse UUID in both IEntity and SerializedEntity)
- Move Logger interface to shared
- Move MockRepository to infra
- Remove EMAIL and UUID schema types from ZodSchemas
- Update tests to cater to above changes, add new tests for nominal types
- 7482c4c: Simplify serialized entity
- cdd733d: Update to @carbonteq/fp version 0.4.0
- cbd1c1c: - Rename nominal types to refined types
- Add
extendutil for adding custom method to an object or class while retaining type safety (an alternative is spread operator, but that approach removes the runtime private props) - Add
DateTimerefined type - Add an optionally implementable
getParsermethod inBaseValueObjectto allow sharing schematic (syntactic + semantic) validation logic with domain boundaries - Add a
DateRangetype to show case how to use refined types and the structure of a value object with schematic and domain validations - Update
BaseEntityto utilize the new refined types forId(UUID),createdAt(DateTime) andupdatedAt(DateTime) fields
- Add
- 9686ab1: - Add nominal/branded types (and a helper function to simplify their creation)
- Remove ExternalServiceFailure error port
- Add GuardViolationError and AppErrStatus
- Simplify BaseRepository, only insert and update are mandatory to implement now
- Remove UUID and Email value objects, shift to UUID and Email branded types
- Simplify types in SerializedEntity interface (can reuse UUID in both IEntity and SerializedEntity)
- Move Logger interface to shared
- Move MockRepository to infra
- Remove EMAIL and UUID schema types from ZodSchemas
- Update tests to cater to above changes, add new tests for nominal types
- 9f66ba9: Add offset to pagination
- 4cd4a51: Add utils
- baf4dc7: Fix export for handleZodError
- 375b949: Upgrade zod utils
- 06a705f: Pagination API RC
- d0569b7: Update rollup to version 4
- 592ff0c: Remove existsById from BaseRepository
- f76700d: Add JSON_SCHEMA to ZodSchemas
- fc5bcb6: Update @carbonteq/fp version
- 28a5cf2: Add ValueObjects and Zod utilities
- 57b3369: Use unit from @ct/fp and add Omitt type util
- a9a3455: Fix exports
- 65fa1fb: Add UUID value object
- 56b595c: Use @carbonteq/fp instead of oxide
- c72a6c9: Add zipF and zipFAsync utils
- 014058a: Add toResult util for DtoValidationResult
- 26e5a5b: add fromErr for DtoValidationResult
- 64ab2ef: DtoValidationResult is now a proper class, not a type alias
- b113ba6: Update zod version to fix type error due to incompatibility
- c12f131: Use safe parse in dto validation
- 1474577: Update monadic bind func type inference
- 41dc3e0: Update repo default errors to include InvalidOperation
- f5c89e4: Add log method to logger interface
- 4e828eb: Updates to AppResult and addition of Base DTO
- c6bfa5f: Remove type arg from UnitResult
- 546d251: Fix exports for MonadicUtils
- 285d4e3: Add monadic utils, UnitResult, and fix AppResult.fromOther
- 00b665b: Default impls for byId methods in ExtendedRepo. existsBy returns RepoResult now
- 47023ec: Add default type argument to repo result
- b43f3b6: Add BaseDTO
- cd3fef0: Polish AppResult further and add mock repository for testing
- 15f7367: add emptyobject type
- dc0496d: add ExternalServiceFailure error
- 891c493: cleanup app result api
- 98a3b98: Add copyBaseProps method to BaseEntity
- 759af93: update to rollup v3
- 0d42ab6: Update module type to nodenext
- db221c6: Add express middleware and update dependencies
-
cc6a637: Update tooling (rome, node, yarn)
- Rome used for linting and formatting instead of eslint + prettier
- Node now at 18.x (lts-hydrogen)
- Update npm and yarn versions accordingly
- 9d83072: Fix: Import from oxide.ts directly to avoid import error in index.js
- 2041498: Allow AppResult Err to include messages
- 6aa77da: Add finish domain utils (tentative)
- d0d49cf: Add BaseRepository (w/o Result)
- 00936cc: add serialize method to Base Entity
- 0bc8c3d: Make markUpdated protected in BaseEntity
- 9bc7aee: Add base entity and tests
- 31f5c0e: Rename to hexapp. Update structure
- 1eab7c0: Add optional error transformer arg to tryFrom and tryFromPromise
- f535850: Add constructors tryFrom and tryFromPromise
- 3ca229c: Initial structure. Very tentative