0.10.0 • Published 10 months ago

@aegenet/yawt v0.10.0

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months 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.mjs (ESM)
import { eslintConfigurator } from '@aegenet/yawt';
export default  eslintConfigurator();
  • Or with CommonJS eslint.config.cjs
const { eslintConfigurator } = require('@aegenet/yawt');
module.exports = eslintConfigurator();
  • prettier.config.mjs
import { prettierConfigurator } from '@aegenet/yawt';
export default prettierConfigurator();
  • Or with CommonJS 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.mjs
import { rollupDTSConfigurator } from '@aegenet/yawt';
import { dirname } from 'node:path';
import { fileURLToPath } from 'node:url';

export default rollupDTSConfigurator({
  cwd: dirname(fileURLToPath(import.meta.url)),
  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, ./dist/*/.map & npm publish (you can keep the .map with --param=keep-map or/and (re)generate the package-lock.json with --param=package-lock )
TaskDescription
upgradeForceremove ./node_modules, package-lock.json & npm upgrade --latest
cleannpm run clean
deleteNodeModulesRemove ./node_modules
regenPackageLock(Re)Generate the package-lock.json (even if it's a npm workspace)
forEachThe purpose of this task is to run a script for each project. Usage: yawt --task=forEach --param=cspell.
forEachRawThe purpose of this task is to run a command for each project. Usage: yawt --task=forEachRaw --param="echo hello".

Coverage

codecov

Coverage sunburst

Coverage tree

📝 License

The MIT License - Copyright © 2024 Alexandre Genet.

0.10.0

10 months ago

0.9.1

10 months ago

0.8.4

11 months ago

0.5.7

12 months ago

0.9.0

11 months ago

0.8.1

11 months ago

0.7.2

11 months ago

0.5.4

12 months ago

0.8.0

11 months ago

0.7.1

11 months ago

0.6.2

11 months ago

0.5.3

12 months ago

0.8.3

11 months ago

0.5.6

12 months ago

0.8.2

11 months ago

0.5.5

12 months ago

0.5.0

12 months ago

0.7.0

11 months ago

0.6.1

11 months ago

0.5.2

12 months ago

0.6.0

11 months ago

0.5.1

12 months ago

0.4.1

1 year ago

0.4.0

1 year ago

0.3.2

1 year ago

0.3.1

1 year ago

0.3.0

1 year ago

0.2.0

1 year ago

0.1.0

1 year ago