Tuc.DomainResolver 3.1.0

dotnet add package Tuc.DomainResolver --version 3.1.0                
NuGet\Install-Package Tuc.DomainResolver -Version 3.1.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Tuc.DomainResolver" Version="3.1.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Tuc.DomainResolver --version 3.1.0                
#r "nuget: Tuc.DomainResolver, 3.1.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Tuc.DomainResolver as a Cake Addin
#addin nuget:?package=Tuc.DomainResolver&version=3.1.0

// Install Tuc.DomainResolver as a Cake Tool
#tool nuget:?package=Tuc.DomainResolver&version=3.1.0                

Domain Resolver

NuGet Version and Downloads count Check tuc-docs

Library for resolving a Domain types out of a F# script (.fsx) file(s).

Example

The process of this use-case is a collecting interactions by the users.

User interacts with the GenericService, which sends an interaction to the interaction collector service. Interaction collector service identify a person and accepts an interaction.

It is just a simplified real-life process.

Note: All files are in the example dir.

consentsDomain.fsx

// Common types

type Id = UUID

type Stream<'Event> = Stream of 'Event list
type StreamHandler<'Event> = StreamHandler of ('Event -> unit)

// Types

type InteractionEvent =
    | Confirmation
    | Rejection

type InteractionResult =
    | Accepted
    | Error

type IdentityMatchingSet = {
    Contact: Contact
}

and Contact = {
    Email: Email option
    Phone: Phone option
}

and Email = Email of string
and Phone = Phone of string

type Person =
    | Known of PersonId
    | Unknown

and PersonId = PersonId of Id

// Streams

type InteractionCollectorStream = InteractionCollectorStream of Stream<InteractionEvent>

// Services

type GenericService = Initiator

type InteractionCollector = {
    PostInteraction: InteractionEvent -> InteractionResult
}

type PersonIdentificationEngine = {
    OnInteractionEvent: StreamHandler<InteractionEvent>
}

type PersonAggregate = {
    IdentifyPerson: IdentityMatchingSet -> Person
}

type ConsentManager = {
    GenericService: GenericService
    InteractionCollector: InteractionCollector
}

Development

First run:

./build.sh  # or build.cmd if your OS is Windows  (might need ./build Build here)

Everything is done via build.cmd \ build.sh (for later on, lets call it just build).

  • to run a specific target use build -t <target>
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Tuc.DomainResolver:

Package Downloads
Tuc.Parser

A parser for TUC files.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.1.0 733 1/2/2024
3.0.1 802 8/13/2021
3.0.0 390 8/12/2021
2.1.0 783 8/11/2021
2.0.0 1,313 6/7/2021
1.0.0 2,206 10/27/2020