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

@tdurieux/dinghy

v1.0.2

Published

Dinghy is a tool to parse and manipulate Dockerfile

Downloads

51

Readme

Dinghy: Versatile AST Generator for Shell Scripts and Dockerfiles

CI NPM Version

Dinghy is a robust library designed to generate Abstract Syntax Trees (ASTs) for both shell scripts and Dockerfiles. It offers developers a solution for parsing and analyzing these files, facilitating advanced automation and analysis tasks.

For detailed documentation, please visit https://durieux.me/Dinghy/.

Features

  • AST Generation: Effortlessly generate ASTs for shell scripts and Dockerfiles.
  • Parsing: Accurately parse complex Dockerfiles, capturing their structure and directives.
  • Traversal: Traverse the AST to perform various analysis tasks such as linting or modification.
  • Querying: Extract specific information about commands, arguments, and more with ease.
  • Modular Design: Built with modularity in mind, enabling easy extension and customization.
  • TypeScript Support: Fully compatible with TypeScript for type-safe development.

Installation

npm install @tdurieux/dinghy

Usage

import dinghy from "@tdurieux/dinghy";

// Parse Dockerfile
const dockerAST = dinghy.parseDocker(/* file path or file content */);
dockerAST.traverse((node) => {
  if (node instanceof dinghy.AbstractValueNode) {
    console.log(node.value);
  }
});

// Parse Shell Script
const shellAST = dinghy.parseShell(/* file path or file content */);
shellAST.traverse((node) => {
  if (node instanceof dinghy.AbstractValueNode) {
    console.log(node.value);
  }
});

Additional examples are available in the library's test suite.

Contributing

Contributions to Dinghy are welcome! Whether it's bug fixes, new features, or documentation improvements, feel free to submit pull requests on our GitHub repository.

License

Dinghy is licensed under the MIT License. See the LICENSE file for details.

Happy Coding with Dinghy!