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

@dashkite/genie-presets

v0.7.0

Published

Presets for common Genie build tasks

Downloads

119

Readme

Genie Presets

Defines presets for the Genie task runner. Probably most useful for DashKite internal development.

The available presets are:

| Name | Description | | -----------: | ------------------------------------------------------------ | | presets | Presets for managing your presets. | | verify | Make sure a module is ready for release. | | update | Like verify, but tries to fix everything. | | release | Builds, versions, and publishes a module. | | esm | Set up package.json to use ESM modules. | | license | Install a given license. | | server | Run a local server. | | browser | Run a local server and connect a puppeteer instance to it for automed tests. | | coffeescript | Builds CoffeeScript source and test code for node and import targets. | | pug | Compile pug into HTML or JavaScript functions. | | stylus | Compile Stylus into CSS or a JavaScript module. | | yaml | Compile YAML into JSON or a JavaScript module. | | media | Compile media assets for use in Web apps or Web Components. | | writeme | Builds YAML spec files into Markdown reference docs using WriteMe. | | retype | Configures and runs Retype, publishing to GitHub pages. |

To use a preset, just load it from your task file, passing in your Genie module.

import "coffeescript/register"
import * as t from "@dashkite/genie"
import preset from "@dashkite/genie-presets"

preset t, "coffeescript"
preset t, "writeme"
preset t, "retype"
preset t, "release"

You can also specify them in genie.yaml, along with any applicable options.

presets:
	coffeescript:
		targets:
			- import
	verify: ~
  update: ~
	release: ~

You can also use the built-in presets mixin to add or remove them:

genie presets:add:esm

coffeescript

| Name | Description | | -------------: | ------------------------------------------------------------ | | build | Builds source and test files from src and test directories into the build directory. Builds to two targets: node and import, to corresponding subdirectories. | | test | Builds and run tests from the build/ directory. | | dev:test | Runs tests from test/ directly without building the source. (This is sometimes helpful for complex builds, where the build is relatively slow.) | | watch | Watch the src/ and test/ directory for changes and runs build in response. | | clean | Remove the build directory. | | targets:add | Adds a target using the default configuration. | | targets:remove | Removes a target. |

Options

| Name | Type | Description | | ------- | ---------- | ---------------------- | | targets | dictionary | Target configurations. |

Each target configuration consists of an array of build descriptions. Each build description specifies a glob, a preset name, corresponding to the presets of Masonry’s CoffeeScript extension, and an options object to pass to the Masonry preset.

Example

Default build for the import target:

targets:
  import:
    # build from src to the browser
	  - preset: import
  		glob: src/**/*.coffee
  	# build test client
  	- preset: import
  		glob: test/client/**/*.coffee
  		options:
  			mode: debug
  	# build test driver
  	- preset: node
  		glob:
  		- test/**/*.coffee
  		- '!test/client/**/*.coffee'

release

Usually what you want to run is something like:

genie release:patch

which will run all the subtasks necessary to do a full release. But sometimes, for whatever reason, you want to do the steps manually, in which case, this preset also provides subtask definitions for convenience.

Important ▹ The release preset assumes that you have a test task defined (the coffeescript preset defines one, for example) and runs that before proceeding. That task should also perform a build, if necessary, and run tests against the build to ensure that the published code has been tested.

| Name | Description | | ------------------------: | ------------------------------------------------------------ | | release: | Does a patch release (test, version, publish, and push). Takes version as arguments. Ex: release:patch:alpha. The prerelease argument is optional. | | release:version: | Versions the module: npm version <level>. Version may be major, minor, patch, alpha, or beta. To start a new prerelease, use major, minor, or patch with alpha or beta. Ex: minor-beta or patch-alpha. | | release:publish | Publishes to the NPM registry: npm publish --access public. | | release:push | Pushes to git remote: git push --follow-tags. |

Options

  • version - Arguments to pass to npm version.

writeme

| Name | Description | | ---------: | ------------------------------------------------------------ | | docs:build | Builds your Markdown files (into docs/reference) from your specs (specs). | | docs:watch | Watches the specs directory for changes and runs docs:build in response. | | docs:clean | Removes the docs/reference directory. **Important: ** Do not add files to this directory, since they’ll be removed on the next build. |

Options

Currently takes no options.

retype

| Name | Description | | ---------------: | ------------------------------------------------------------ | | retype:configure | Sets up your Retype configuration for use locally and with GitHub pages. Requires the RETYPE_LICENSE_KEY environment variable be set. You will also need to add the license key to your GitHub secrets. | | site:build | Builds the site with Retype into the .retype directory. (This directory should be added to your .gitignore.) | | site:watch | Runs doc:watch if defined and runs Retype using your local configuration. |

Options

Currently takes no options.

esm

| Name | Description | | --------------: | ------------------------------------------------------------ | | esm:dual | Set up node and import targets in your package.json. | | esm:dual:glob | Set up node and import glob targets in your package.json. | | esm:node | Set up node target in your package.json. | | esm:import | Set up import target in your package.json. | | esm:node:glob | Set up node glob targets in your package.json. | | esm:import:glob | Set up import glob targets in your package.json. | | esm:main | Set up main target in your package.json. |

Options

Currently takes no options.

license

| Name | Description | | --------------: | ----------------------------------- | | license:ethical | Installs an ethical source license. |

Options

Currently takes no options.

verify

| Name | Description | | ----------------------------: | ------------------------------------------------------------ | | verify | Runs verify:audit, verify:dependencies, and verify:license. | | verify:audit | Runs npm audit. | | verify:dependencies | Runs ncu. You can install ncu by running npm i -g npm-check-updates. Runs verify:dependencies:no-local and no-legacy first. | | verify:license | Checks to make sure a license file exists and there’s a license entry in package.json. | | verify:dependencies:no-local | Checks for local dependencies (those starting with file:). | | verify:dependencies:no-legacy | Checks for legacy dependencies. |

Options

Currently takes no options.

pug

Coming soon.

stylus

Coming soon.

media

Coming soon.

yaml

Coming soon.