0.2.0 • Published 11 months ago

@actions-kit/dev v0.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

Actions Kit - Dev

npm version build status

A development tool library for Actions Kit, an additional toolkit for developing GitHub Actions.

This package simplifies the development configuration of other packages in the Actions Kit and can also be used in other projects. It uses the following stacks for project development:

  • TypeScript: The primary language for project development.
  • Prettier: A code formatter for TypeScript, JavaScript, and JSON source files.
  • ESLint: A linter for TypeScript and JavaScript code.
  • Jest: A testing framework for TypeScript and JavaScript code.

This package offers two main features:

  • A dev tool that serves as the primary entry point for executing various commands.
  • A default configuration along with the flexibility to modify it according to the specific requirements of a project.

Installation

Run the following commmand to install the @actions-kit/dev package as a dev dependency:

npm install @actions-kit/dev --save-dev

Usage

Using the Dev Tool

Use the dev tool by running the following commands:

  • dev build: Compiles source files from TypeScript to JavaScript.
  • dev clean: Cleans the build output directory.
  • dev format: Formats the source files using Prettier.
  • dev lint: Lints the source files using ESLint.
  • dev test: Runs tests using Jest.

The dev tool can also be invoked as a script in the package.json file to simplify build commands during project development:

{
  ...
  "scripts": {
    "build": "dev build",
    "clean": "dev clean",
    "format": "dev format",
    "lint": "dev lint",
    "test": "dev test"
  },
  ...
}

Configuring TypeScript

Configure TypeScript by extending the tsconfig.json from @actions-kit/dev/tsconfig.json:

{
  "extends": "@actions-kit/dev/tsconfig.json",
  "compilerOptions": {
    "outDir": "lib"
  },
  "include": ["src"],
  ...
}

Make sure to set the compilerOptions.outDir and include properties correctly according to the project's requirements. For more information on further modifications to the tsconfig.json file, refer to the TSConfig reference.

Configuring ESLint

Set up a default ESLint configuration by importing createEslintConfig from @actions-kit/dev in the .eslintrc.js file:

const dev = require("@actions-kit/dev");

module.exports = dev.createEslintConfig();

To modify the default configuration, pass an object to the createEslintConfig function:

module.exports = dev.createEslintConfig({ env: { browser: true } });

Alternatively, pass a function to the createEslintConfig to further modify the default configuration:

module.exports = dev.createEslintConfig((config) => {
  config.rules["no-shadow"] = 2;
  return config;
});

For more information on configuring ESLint, refer to the ESLint configuration documentation.

Configuring Jest

Set up a default Jest configuration by importing createJestConfig from @actions-kit/dev in the jest.config.ts file:

import { createJestConfig } from "@actions-kit/dev";

export default createJestConfig();

To modify the default configuration, pass an object to the createJestConfig function:

export default createJestConfig({ verbose: false });

Alternatively, pass a function to the createJestConfig to further modify the default configuration:

export default createJestConfig((config) => {
  config.testMatch?.push("**/*.test.js");
  return config;
});

For more information on configuring Jest, refer to the Jest configuration documentation.

License

This project is licensed under the terms of the MIT License.

Copyright © 2023 Alfi Maulana