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.
<PackageVersion Include="Tuc.DomainResolver" Version="3.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Tuc.DomainResolver" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version 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.
#addin nuget:?package=Tuc.DomainResolver&version=3.1.0
                    
Install Tuc.DomainResolver as a Cake Addin
#tool nuget:?package=Tuc.DomainResolver&version=3.1.0
                    
Install Tuc.DomainResolver as a Cake Tool

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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.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 751 1/2/2024
3.0.1 836 8/13/2021
3.0.0 419 8/12/2021
2.1.0 810 8/11/2021
2.0.0 1,340 6/7/2021
1.0.0 2,240 10/27/2020