0.2.0 • Published 20 days ago

@aegenet/yawt v0.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
20 days ago

npm version Build Status codecov

Yawt

Yet Another Workspace Toolkit - The purpose of this package is to provide a set of tools to help you manage your workspace.

💾 Installation

npm i @aegenet/yawt -D
# or
yarn add @aegenet/yawt -D

📝 Config files (./)

  • ./.build/yawt.config.json
[{
  "name": "lib",
  "links": [],
  "dependencies": [],
  "publish": false
}, {
  "name": "app",
  "links": ["lib"],
  "dependencies": ["lib"],
  "publish": true
}]
  • eslint.config.cjs
const { eslintConfigurator } = require('@aegenet/yawt');
module.exports = eslintConfigurator();
  • prettier.config.cjs
const { prettierConfigurator } = require('@aegenet/yawt');
module.exports = prettierConfigurator();
  • vite.config.mjs
import { viteConfigurator } from '@aegenet/yawt';
import { dirname } from 'node:path';
import { fileURLToPath } from 'node:url';

export default viteConfigurator({
  cwd: dirname(fileURLToPath(import.meta.url)),
  libName: '@sample/lib',
  entryPoint: './src/index.ts',
  nodeExternal: true,
});
  • rollup.config.dts.cjs
const { rollupDTSConfigurator } = require('@aegenet/yawt');
const { cwd } = require('node:process');
export default rollupDTSConfigurator({
  cwd: cwd(),
  libName: '@sample/lib',
  entryPoint: './src/index.ts',
  nodeExternal: true,
});
  • tsconfig.json
{
  "extends": "./node_modules/@aegenet/yawt/tsconfig.base.json",
  "exclude": [
    "./node_modules",
  ],
  "include": [
    "src"
  ]
}

🖹 Exports

NameDescription
eslintConfiguratorConfiguration for eslint
prettierConfiguratorConfiguration for prettier
viteConfiguratorConfiguration for vite (and vitest)
rollupDTSConfiguratorConfiguration for generate typings
yawtYawt API

CLI

# With workspace
yawt --task=build
# or without workspace
yawt --task=build --single

The selected task will be executed on all projects in the workspace.

TaskDescription
versionApply version to all projects.
buildnpm run build
testcheck package exports && npm run test
lintnpm run lint
dependenciesnpm i & npm link all links
upgraderemove ./node_modules, package-lock.json & npm i
publishremove devDependencies, scripts & npm publish
TaskDescription
upgradeForceremove ./node_modules, package-lock.json & npm upgrade --latest
cleannpm run clean
deleteNodeModulesRemove ./node_modules
testLocalnpm run test:local

Coverage

codecov

Coverage sunburst

Coverage tree

📝 License

The MIT License - Copyright © 2024 Alexandre Genet.