- 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
extend
util 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
DateTime
refined type - Add an optionally implementable
getParser
method inBaseValueObject
to allow sharing schematic (syntactic + semantic) validation logic with domain boundaries - Add a
DateRange
type to show case how to use refined types and the structure of a value object with schematic and domain validations - Update
BaseEntity
to 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
,IsUnion
andEnsureNotUnion
type utils - Remove
isPromise
type guard. Already present innode:util/types
- Add
extractProp
,extractProps
,extractId
,toSerialized
andnestWithKey
composition utilities - Rename
RefinedType.$inferInner
toRefinedType.$inferPrimitive
andRefinedType.value
toRefinedType.primitive
- Add
-
261f5fd: Improve refined amd enum types
- Add
$infer
and$inferInner
for simpler type extraction - Add
value
method for getting the unbranded type easily - Add
matchEnum
for 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
extend
util 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
DateTime
refined type - Add an optionally implementable
getParser
method inBaseValueObject
to allow sharing schematic (syntactic + semantic) validation logic with domain boundaries - Add a
DateRange
type to show case how to use refined types and the structure of a value object with schematic and domain validations - Update
BaseEntity
to 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/[email protected]. Add isPromise type guard
- cbd1c1c: - Rename nominal types to refined types
- Add
extend
util 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
DateTime
refined type - Add an optionally implementable
getParser
method inBaseValueObject
to allow sharing schematic (syntactic + semantic) validation logic with domain boundaries - Add a
DateRange
type to show case how to use refined types and the structure of a value object with schematic and domain validations - Update
BaseEntity
to 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
extend
util 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
DateTime
refined type - Add an optionally implementable
getParser
method inBaseValueObject
to allow sharing schematic (syntactic + semantic) validation logic with domain boundaries - Add a
DateRange
type to show case how to use refined types and the structure of a value object with schematic and domain validations - Update
BaseEntity
to 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