npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@dxworks/honeydew

v3.1.0

Published

C# Analysis tool

Downloads

18

Readme

Honeydew

Honeydew is a tool that extracts facts using static code analysis from DotNet Solutions that contain C# and Visual Basic Projects.

Extraction

For extracting information about a solution or project use the following command:

.\Honeydew extract <input_path> [-n|--project-name <name>] [--no-progress-bars] [--no-trim-paths] [-p|--parallel]

If input_path is a path to a solution file (.sln), Honeydew will extract facts from that solution file

If input_path is a path to a project file (.csproj or .vbproj), Honeydew will extract facts from that project

If input_path is a path to a folder, Honeydew will find all the solution files and project files and extract facts from those

The output files will be placed in a folder named results

Options

  • -n or --project-name

    The flag must be followed by a string. This flag is used to set the project name. If not present, the project name will be deduced from the <input_path>. The project name is used to name the output files

  • --no-progress-bars

    If present, then all the messages will be printed in the console. Otherwise, output will contain progress bars for a better visualisation of the progress

  • --no-trim-paths

    If present, Honeydew will not trim the File Paths present in the created model

  • -p or --parallel

    If present, Honeydew will make the extraction in parallel where possible

Load Model from file

For loading a model from a json file

.\Honeydew load <path_to_json_model> [-n|--project-name <name>] [--no-progress-bars] [-p|--parallel]

Options

  • -n or --project-name

    The flag must be followed by a string. This flag is used to set the project name. If not present, the project name will be deduced from the <path_to_json_model>. The project name is used to name the output files

  • --no-progress-bars

    If present, then all the messages will be printed in the console. Otherwise, output will contain progress bars for a better visualisation of the progress

  • -p or --parallel

    If present, Honeydew will run scripts in parallel where possible

Adapt

This command is used to adapt a raw model file from version 2.1.x to version 3.x.x. It will create a new file in the results folder with the raw model adapted to the new version.

.\Honeydew adapt <input_path>

Docker

Honeydew can be run from a Docker container like this:

Linux / MacOs

docker run --rm -it -v $(pwd)/results:/app/results -v $(pwd)/<input>:<input> dxworks/honeydew extract <input> -p

Powershell

docker run --rm -it -v ${PWD}/results:/app/results -v ${PWD}/<input>:<input> dxworks/honeydew extract <input> -p

Pack

dotnet pack -c Release -o pack -p:PackageVersion=1.0.0

Create new version of DxWorks.ScriptBee.Plugins.Honeydew

dotnet build .\DxWorks.ScriptBee.Plugins.Honeydew\DxWorks.ScriptBee.Plugins.Honeydew.csproj -c Release
nuget pack .\DxWorks.ScriptBee.Plugins.Honeydew\DxWorks.ScriptBee.Plugins.Honeydew.csproj.nuspec -OutputDirectory pack -Version 3.0.0 -Properties Configuration=Release

Build Project

Self-contained application - Single-file app

For Windows 64-bit

dotnet publish -r win-x64 --self-contained true -p:PublishSingleFile=true 

For Linux 64-bit

dotnet publish -r linux-x64 --self-contained true -p:PublishSingleFile=true 

For macOs 64-bit

dotnet publish -r osx-x64 --self-contained true -p:PublishSingleFile=true 

Self-contained application

For Windows 64-bit

dotnet publish -r win-x64

For Linux 64-bit

dotnet publish -r linux-x64

For macOS 64-bit

dotnet publish -r osx-x64

End to End Test

This test consists of running Honeydew on a test project located at https://github.com/dxworks/HoneydewTestProject

To pass the test, the resulted files after the extraction must be identical to the files located in the 'e2e_results'

The test files are generated by running Honeydew locally and updating the 'e2e_results' folder content

Update 'e2e_results' Folder

There are several helper scripts located in 'e2e_scripts' folder to copy the files generated by the local extraction of the test project, to the 'e2e_results' folder

For Windows

.\prepare_e2e.bat <source_results_folder> [destination_folder]

if destination_folder is not provided, the destination folder will be ..\e2e_results

For Linux and macOS

./prepare_e2e.sh <source_results_folder> [destination_folder]

if destination_folder is not provided, the destination folder will be ../e2e_results