Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@mountainpass/cool-bits-for-projen

mountain-pass12.5kApache-2.00.2.8TypeScript support: included

A collection of cool projen components

cspell, eslint-jsdoc, eslint-unicorn, husky, prettier, projen, projen-component, typescript, vscode-extension-recommendations

readme

cool-bits-for-projen

A collection of cool projen components

License npm npm downloads FOSSA Status

Build Status GitHub issues GitHub pull requests

source code vulnerabilities npm package vulnerabilities

Conventional Commits code style: prettier Contributor Covenant

I love badges

Installation & Usage

  1. If you don't have projen installed and configured, you'll need to go do that first.

  2. Add @mountainpass/cool-bits-for-projen to you development dependencies. e.g., in your .projenrc.ts

const project = new TypeScriptProject({
    //...
    devDeps: [
        //...
        "@mountainpass/cool-bits-for-projen"
    ],
    //...
});

or

const project = new TypeScriptProject({
    //...
});
project.addDevDeps("@mountainpass/cool-bits-for-projen");
  1. Run npx projen to regenerate the project files

  2. Add the components to you project in your .projenrc.ts file. For example, to add all the recommended components, add Recommended

import { Recommended } from "@mountainpass/cool-bits-for-projen";

//...

const project = new TypeScriptProject({
    ...Recommended.defaultProjectOptions,
    //...
});

new Recommended(project);

//...

project.synth();

or you can add individual components

import { Husky, EslintUnicorn } from "@mountainpass/cool-bits-for-projen";

//...

const project = new TypeScriptProject({
    ...EslintUnicorn.defaultProjectOptions,
    //...
});

new Husky(project);
new EslintUnicorn(project);

//...

project.synth();
  1. Run npx projen to generate the project files

Components

Component Functionality Uses Base Project Type Required Included in Recommended
CodeOfConduct Add a Contributor Covenant v2.1 CODE_OF_CONDUCT.md to your project.
*NOTE: CodeOfConduct is not automatically included in the Recommended component because we believe adopting the Contributor Covenant should be a conscious deliberate decision and not something done inadvertently. We actively recommend its adoption*
| Project
Commitlint Checks if your commit messages meet the conventional commit format. commitlint NodeProject
Contributors Adds github authors to the project's contributors list shelljs-plugin-authors NodeProject
CSpell Provides spell checking for your code and your commit messages cspell NodeProject
EslintIgnore Creates an ESLint ignore file containing the projen generated files | TypeScriptProject
EslintJsdoc Provides JSDoc specific linting rules for ESLint eslint-plugin-jsdoc TypeScriptProject
EslintJsonC Provides linting of JSON files eslint-plugin-jsonc TypeScriptProject
EslintNoSecrets Adds an eslint plugin to find strings that might be secrets/credentials eslint-plugin-no-secrets TypeScriptProject
EslintPrettierFixer Ensures prettier is the last entry in your eslint extends section, which is needed for prettier to work correctly with eslint | TypeScriptProject
EslintUnicorn Provides more than 100 powerful ESLint rules eslint-plugin-unicorn TypeScriptProject
Husky Git hooks made easy 🐶 woof! husky NodeProject
Recommended Includes all the "included in recommended" components in this table | TypeScriptProject
VscodeExtensionRecommendations Manages vscode extension recommendations for your project | Project

Pseudo-Components

Pseudo-Components behave like components but are created before the project. This is needed in situations where the project options are being generated.

Pseudo-Component Functionality Base Project Type Required
GitHubber The GitHubber pseudo-component add github repo, issues and homepage URLs to your project NodeProject
NpmReleaser The NpmReleaser pseudo-component add npm release data to the project NodeProject
Organisational The Organisational pseudo-component add organisation based author data to the project NodeProject

Pseudo-Component Usage

Pseudo-Components are constructed and then added to the project using the addToProject() method

import { Organisational } from "@mountainpass/cool-bits-for-projen";
const organisational = new Organisational({
  organisation: {
    name: "Mountain Pass",
    email: "info@mountain-pass.com.au",
    url: "https://mountain-pass.com.au",
  }
});
const project = new TypeScriptProject(
    ...organisational.nodeProjectOptions(),
    //...
)
// NOTE: The follow step is needed for Pseudo-Components, otherwise 
// their `preSynthesize()`, `synthesize()`, and `postSynthesize()` 
// methods will not be called
organisational.addToProject(project);

changelog

1.0.0 - 2016-01-07

  • Removed: unused speed test
  • Added: Automatic routing between previously unsupported conversions (#27)
  • Removed: xxx2xxx() and xxx2xxxRaw() functions (#27)
  • Removed: convert() class (#27)
  • Changed: all functions to lookup dictionary (#27)
  • Changed: ansi to ansi256 (#27)
  • Fixed: argument grouping for functions requiring only one argument (#27)

0.6.0 - 2015-07-23

  • Added: methods to handle ANSI 16/256 colors:
    • rgb2ansi16
    • rgb2ansi
    • hsl2ansi16
    • hsl2ansi
    • hsv2ansi16
    • hsv2ansi
    • hwb2ansi16
    • hwb2ansi
    • cmyk2ansi16
    • cmyk2ansi
    • keyword2ansi16
    • keyword2ansi
    • ansi162rgb
    • ansi162hsl
    • ansi162hsv
    • ansi162hwb
    • ansi162cmyk
    • ansi162keyword
    • ansi2rgb
    • ansi2hsl
    • ansi2hsv
    • ansi2hwb
    • ansi2cmyk
    • ansi2keyword (#18)

0.5.3 - 2015-06-02

  • Fixed: hsl2hsv does not return NaN anymore when using [0,0,0] (#15)

Check out commit logs for older releases