0.10.0 • Published 11 months ago

@aegenet/yawt v0.10.0

Weekly downloads
-
License
MIT
Repository
github
Last release
11 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

11 months ago

0.9.1

11 months ago

0.8.4

12 months ago

0.5.7

1 year ago

0.9.0

12 months ago

0.8.1

1 year ago

0.7.2

1 year ago

0.5.4

1 year ago

0.8.0

1 year ago

0.7.1

1 year ago

0.6.2

1 year ago

0.5.3

1 year ago

0.8.3

12 months ago

0.5.6

1 year ago

0.8.2

12 months ago

0.5.5

1 year ago

0.5.0

1 year ago

0.7.0

1 year ago

0.6.1

1 year ago

0.5.2

1 year ago

0.6.0

1 year ago

0.5.1

1 year 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