https://github.com/cratis/fundamentals
Library of reusable generic utilities aimed at increasing productivity.
https://github.com/cratis/fundamentals
csharp library productivity
Last synced: about 2 months ago
JSON representation
Library of reusable generic utilities aimed at increasing productivity.
- Host: GitHub
- URL: https://github.com/cratis/fundamentals
- Owner: Cratis
- License: mit
- Created: 2024-05-11T07:49:55.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2026-05-11T19:37:54.000Z (about 2 months ago)
- Last Synced: 2026-05-11T21:39:36.094Z (about 2 months ago)
- Topics: csharp, library, productivity
- Language: C#
- Homepage: https://cratis.io
- Size: 4.63 MB
- Stars: 1
- Watchers: 0
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Fundamentals
## Packages
[](http://nuget.org/packages/cratis.fundamentals)
[](https://www.npmjs.com/package/@cratis/fundamentals)
## Builds
[](https://github.com/cratis/Fundamentals/actions/workflows/dotnet-build.yml)
[](https://github.com/cratis/Fundamentals/actions/workflows/javascript-build.yml)
[](https://github.com/Cratis/Documentation/actions/workflows/pages.yml)
## Description
The Cratis Fundamentals holds generic reusable helpers, utilities and tools that aims at solving common problems and help developers be more productive.
Fundamentals offers functionality for .NET and JavaScript environments. It is not a goal to have parity, as the different environments offer different
building blocks.
You should look at it as a convenience layer on top of the existing base environment you're running in.
Read more about how to use it in our documentation.
## Contributing
If you want to jump into building this repository and possibly contributing, please refer to [contributing](./Documentation/contributing/index.md).
### Prerequisites
The following are prerequisites to work with this repository.
* [.NET 6+](https://dotnet.microsoft.com/en-us/).
* [Node 16+](https://nodejs.org/en)
* [Yarn](https://yarnpkg.com)
### Central Package Management
This repository leverages [Central Package Management](https://learn.microsoft.com/en-us/nuget/consume-packages/Central-Package-Management), which
means that all package versions are managed from a file at the root level called [Directory.Packages.props](./Directory.Packages.props).
In addition there are also [Directory.Build.props](https://learn.microsoft.com/en-us/visualstudio/msbuild/customize-by-directory?view=vs-2022#directorybuildprops-and-directorybuildtargets) files for
setting up common settings that are applied cross cuttingly.
### Root package.json
The `package.json` found at the root level defines all the workspaces. It is assumed
All developer dependencies are defined in the top level `package.json`. The reason for this is to be able to provide global scripts
for every package to use for easier maintenance.
The `package.json` found at the top level contains scripts that can then be used in a child project for this to work properly.
In a package, all you need to do is to define the scripts to use the global scripts in the `package.json´ of that project:
```json
{
"scripts": {
"prepublish": "yarn g:build",
"clean": "yarn g:clean",
"build": "yarn g:build",
"lint": "yarn g:lint",
"lint:ci": "yarn g:lint:ci",
"test": "yarn g:test",
"ci": "yarn g:ci",
"up": "yarn g:up"
}
}
```