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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@lostofthought/factorio-gen

v1.0.1

Published

Generate Factorio mod info.json from package.json

Readme

factorio-gen

Generate Factorio mod info.json from package.json.

Installation

pnpm add factorio-gen
# or
npm install factorio-gen

Usage

As a Binary

After installation, you can use the factorio-gen command:

# Generate info.json from package.json
factorio-gen

# Specify input and output files
factorio-gen my-package.json my-info.json

# Using options
factorio-gen --input package.json --output info.json
factorio-gen -i package.json -o info.json

As a Build Step

Add it to your package.json scripts:

{
  "scripts": {
    "build:info": "factorio-gen",
    "prebuild": "factorio-gen package.json info.json"
  }
}

Options

  • -i, --input <file>: Input package.json file (default: package.json)
  • -o, --output <file>: Output info.json file (default: info.json)
  • -h, --help: Show help message

Input Format

Your package.json should contain the following fields for Factorio mod generation:

{
  "name": "my-factorio-mod",
  "version": "1.2.3",
  "title": "My Awesome Factorio Mod",
  "author": "Your Name",
  "description": "A description of your mod",
  "factorio_version": "1.1",
  "dependencies": ["base >= 1.1.0", "? some-optional-mod"]
}

Required Fields

  • name: Mod internal name (3-50 characters, alphanumeric, hyphens, underscores)
  • version: Semantic version (e.g., "1.2.3")
  • title: Display name for the mod
  • author: Mod author name

Optional Fields

  • contact: Contact information
  • homepage: URL to mod homepage
  • description: Mod description
  • factorio_version: Factorio version (default: "0.12")
  • dependencies: Array of dependency strings (default: ["base"])
  • Various feature flags (quality_required, space_travel_required, etc.)

Dependency Format

Dependencies can be specified as:

  • Simple mod name: "base"
  • With version constraint: "base >= 1.1.0"
  • Optional dependency: "? optional-mod"
  • Incompatible dependency: "! incompatible-mod"

Validation

The tool validates dependencies against the Factorio mod portal and will show warnings if:

  • A mod is not found on the portal
  • A specified version constraint doesn't match available versions

Development

# Build the project
pnpm run build

# Test locally
node dist/cli.js --help

Made with AI

I've had a lot of back and forth with it, and need to do a clean rewrite eventually. Just trying to get this out the door.