Latest Threat ResearchGlassWorm Loader Hits Open VSX via Developer Account Compromise.Details
Socket
Book a DemoInstallSign in
Socket

@storm-software/workspace-tools

Package Overview
Dependencies
Maintainers
1
Versions
1279
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@storm-software/workspace-tools

Tools for managing a Storm workspace, including various Nx generators and executors for common development tasks.

Source
npmnpm
Version
1.294.26
Version published
Weekly downloads
1.7K
-6.77%
Maintainers
1
Weekly downloads
 
Created
Source
Storm Software

WebsiteGitHubDiscordDocsContactReport a Bug

This package is part of the ⚡Storm-Ops monorepo. The Storm-Ops packages include CLI utility applications, tools, and various libraries used to create modern, scalable web applications.

💻 Visit stormsoftware.com to stay up to date with this developer


Version Nx NextJs Commitizen friendly Semantic-Release documented with Fumadocs GitHub Workflow Status (with event)

[!IMPORTANT] This repository, and the apps, libraries, and tools contained within, is still in it's initial development phase. As a result, bugs and issues are expected with it's usage. When the main development phase completes, a proper release will be performed, the packages will be available through NPM (and other distributions), and this message will be removed. However, in the meantime, please feel free to report any issues you may come across.

Be sure to ⭐ this repository on GitHub so you can keep up to date on any daily progress!

Table of Contents


Storm Workspace Tools

A package containing tools for managing a Storm workspace. It includes various Nx generators and executors for common development tasks.

Installing

Using pnpm:

pnpm add -D @storm-software/workspace-tools
Using npm
npm install -D @storm-software/workspace-tools
Using yarn
yarn add -D @storm-software/workspace-tools

Executors

The following executors are available in this package to invoke common tasks for the workspace's projects:

Typia Executor

A type definition for a Typia executor schema

Example

This executor can be used by executing the following in a command line utility:

nx run my-project:typia

Please note: The typia executor should be included in the desired projects's project.json file.All required options must be included in the options property of the json.

Options

The following executor options are available:

OptionTypeDescriptionDefault
outputPath *stringThe output path for the build"{sourceRoot}/generated/typia"
entry *string[]The entry file or files to build[]
tsconfig *stringThe path to the tsconfig file"{projectRoot}/tsconfig.json"
cleanbooleanClean the output directory before buildingtrue

Please note: Option names followed by * above are required, and must be provided to run the executor.

ESBuild Executor

A type definition for an ESBuild executor schema

Example

This executor can be used by executing the following in a command line utility:

nx run my-project:esbuild

Please note: The esbuild executor should be included in the desired projects's project.json file.

Options

The following executor options are available:

OptionTypeDescriptionDefault
outputPathstringThe output path for the build"dist/{projectRoot}"
entrystring[]The entry file or files to build[]
tsconfigstringThe path to the tsconfig file"{projectRoot}/tsconfig.json"
bundlebooleanBundle the output
minifybooleanMinify the output
debugbooleanDebug the output
sourcemapbooleanGenerate a sourcemap
silentbooleanShould the build run silently - only report errors back to the user
target"es3" | "es5" | "es6" | "es2015" | "es2016" | "es2017" | "es2018" | "es2019" | "es2020" | "es2021" | "es2022" | "es2023" | "es2024" | "esnext" | "node12" | "node14" | "node16" | "node18" | "node20" | "node22" | "browser" | "chrome58" | "chrome59" | "chrome60"The target to build"esnext"
format"cjs" | "esm" | "iife"The format to build"esm"
platform"neutral" | "node" | "browser"The platform to build"neutral"
externalany[]The external dependencies[]
defineobjectThe define values[object Object]
envobjectThe environment variable values[object Object]

Unbuild Executor

A type definition for a unbuild executor schema

Example

This executor can be used by executing the following in a command line utility:

nx run my-project:unbuild

Please note: The unbuild executor should be included in the desired projects's project.json file.All required options must be included in the options property of the json.

Options

The following executor options are available:

OptionTypeDescriptionDefault
outputPathstringThe output path for the build
entry *string[]The directory to use as input for the build[]
tsconfigstringThe path to the tsconfig file"{projectRoot}/tsconfig.json"
bundlebooleanBundle the output
minifybooleanMinify the output
debugbooleanDebug the output
sourcemapbooleanGenerate a sourcemap
silentbooleanShould the build run silently - only report errors back to the user
target"es3" | "es5" | "es6" | "es2015" | "es2016" | "es2017" | "es2018" | "es2019" | "es2020" | "es2021" | "es2022" | "es2023" | "es2024" | "esnext" | "node12" | "node14" | "node16" | "node18" | "node20" | "node22" | "browser" | "chrome58" | "chrome59" | "chrome60"The target to build"esnext"
formatstring[]The format to build[]
platform"neutral" | "node" | "browser"The platform to build"neutral"
externalany[]The external dependencies[]
defineobjectThe define values[object Object]
envobjectThe environment variable values[object Object]
name *stringThe name of the project/build"{projectName}"
treeShakingbooleanEnable tree shakingtrue
watchbooleanWatch for changes
cleanbooleanClean the output directory before buildingtrue
stubbooleanStub the output
buildOnlybooleanShould the build process skip generating a package.json and copying assets
watchOptionsobjectWatch options[object Object]
stubOptionsobjectStub options[object Object]
dependenciesstring[]The dependencies to install
peerDependenciesstring[]The peer dependencies to install
devDependenciesstring[]The dev dependencies to install
aliasobjectThe alias to use[object Object]
replaceobjectThe replace to use[object Object]
rollupobjectThe rollup options[object Object]

Please note: Option names followed by * above are required, and must be provided to run the executor.

Clean Package Executor

The clean package executor is responsible for removing unnecessary files and fields from a distributable package to make it as light as possible (for scenarios like edge computing, limited memory environments, etc.)

Example

This executor can be used by executing the following in a command line utility:

nx run my-project:clean-package

Please note: The clean-package executor should be included in the desired projects's project.json file.

Options

The following executor options are available:

OptionTypeDescriptionDefault
outputPathstringThe path to the output"dist/{projectRoot}"
packageJsonPathstringThe path to the package.json that will be modified"{outputPath}/package.json"
ignoredFilesstringThe files to ignore
fieldsstringThe fields to include""
cleanReadMebooleanClean the read metrue
cleanCommentsbooleanClean the commentstrue

Size Limit Executor

A type definition for a Size Limit executor schema

Example

This executor can be used by executing the following in a command line utility:

nx run my-project:size-limit

Please note: The size-limit executor should be included in the desired projects's project.json file.

Options

The following executor options are available:

OptionTypeDescriptionDefault
outputPathstringThe output path for the build"dist/{projectRoot}"
entrystring[]The path to the entry file

Npm Publish Executor

A type definition for a Npm Publish executor schema

Example

This executor can be used by executing the following in a command line utility:

nx run my-project:npm-publish

Please note: The npm-publish executor should be included in the desired projects's project.json file.

Options

The following executor options are available:

OptionTypeDescriptionDefault
packageRootstringThe path to the package root
registrystringThe registry to publish to"https://registry.npmjs.org/"
tagstringThe tag to publish with"latest"
versionstringThe version to publish. If not provided, the version from package.json will be used
otpnumberThe one time password
dryRunbooleanPerform a dry run
firstReleasebooleanPublish the first release

Cargo Publish Executor

A type definition for a Cargo/rust Publish executor schema

Example

This executor can be used by executing the following in a command line utility:

nx run my-project:cargo-publish

Please note: The cargo-publish executor should be included in the desired projects's project.json file.

Options

The following executor options are available:

OptionTypeDescriptionDefault
outputPathstringThe output path for the build"dist/{projectRoot}"
packagestringThe path to the Cargo.toml file"{projectRoot}/Cargo.toml"
toolchain"stable" | "beta" | "nightly"The type of toolchain to use for the build"stable"
targetstringThe target to build
allTargetsbooleanBuild all targets
profilestringThe profile to build
releasebooleanBuild in release mode
featuresstringThe features to build
allFeaturesbooleanBuild all features
registrystringThe registry to publish to
packageRootstringThe path to the package root
dryRunbooleanPerform a dry run

Cargo Build Executor

A type definition for a Cargo/rust build executor schema

Example

This executor can be used by executing the following in a command line utility:

nx run my-project:cargo-build

Please note: The cargo-build executor should be included in the desired projects's project.json file.

Options

The following executor options are available:

OptionTypeDescriptionDefault
outputPathstringThe path to the output directory
packagestringThe path to the Cargo.toml file"{projectRoot}/Cargo.toml"
toolchain"stable" | "beta" | "nightly"The type of toolchain to use for the build"stable"
targetstringThe target to build
allTargetsbooleanBuild all targets
profilestringThe profile to build
releasebooleanBuild in release mode
featuresstringThe features to build
allFeaturesbooleanBuild all features

Cargo Check Executor

A type definition for a Cargo/rust check executor schema

Example

This executor can be used by executing the following in a command line utility:

nx run my-project:cargo-check

Please note: The cargo-check executor should be included in the desired projects's project.json file.

Options

The following executor options are available:

OptionTypeDescriptionDefault
outputPathstringThe output path for the build"dist/{projectRoot}"
packagestringThe path to the Cargo.toml file"{projectRoot}/Cargo.toml"
toolchain"stable" | "beta" | "nightly"The type of toolchain to use for the build"stable"
targetstringThe target to build
allTargetsbooleanBuild all targets
profilestringThe profile to build
releasebooleanBuild in release mode
featuresstringThe features to build
allFeaturesbooleanBuild all features

Cargo Format Executor

A type definition for a Cargo/rust format executor schema

Example

This executor can be used by executing the following in a command line utility:

nx run my-project:cargo-format

Please note: The cargo-format executor should be included in the desired projects's project.json file.

Options

The following executor options are available:

OptionTypeDescriptionDefault
outputPathstringThe output path for the build"dist/{projectRoot}"
packagestringThe path to the Cargo.toml file"{projectRoot}/Cargo.toml"
toolchain"stable" | "beta" | "nightly"The type of toolchain to use for the build"stable"
targetstringThe target to build
allTargetsbooleanBuild all targets
profilestringThe profile to build
releasebooleanBuild in release mode
featuresstringThe features to build
allFeaturesbooleanBuild all features

Cargo Clippy Executor

A type definition for a Cargo/rust clippy executor schema

Example

This executor can be used by executing the following in a command line utility:

nx run my-project:cargo-clippy

Please note: The cargo-clippy executor should be included in the desired projects's project.json file.

Options

The following executor options are available:

OptionTypeDescriptionDefault
outputPathstringThe output path for the build"dist/{projectRoot}"
packagestringThe path to the Cargo.toml file"{projectRoot}/Cargo.toml"
toolchain"stable" | "beta" | "nightly"The type of toolchain to use for the build"stable"
targetstringThe target to build
allTargetsbooleanBuild all targets
profilestringThe profile to build
releasebooleanBuild in release mode
featuresstringThe features to build
allFeaturesbooleanBuild all features
fixbooleanAutomatically fix issues

Cargo Doc Executor

A type definition for a Cargo/rust documentation executor schema

Example

This executor can be used by executing the following in a command line utility:

nx run my-project:cargo-doc

Please note: The cargo-doc executor should be included in the desired projects's project.json file.

Options

The following executor options are available:

OptionTypeDescriptionDefault
outputPathstringThe output path for the build"dist/{projectRoot}"
packagestringThe path to the Cargo.toml file"{projectRoot}/Cargo.toml"
toolchain"stable" | "beta" | "nightly"The type of toolchain to use for the build"stable"
targetstringThe target to build
allTargetsbooleanBuild all targets
profilestringThe profile to build
releasebooleanBuild in release mode
featuresstringThe features to build
allFeaturesbooleanBuild all features
libbooleanGenerate documentation for the library[object Object]
binsbooleanGenerate documentation for the bins[object Object]
examplesbooleanGenerate documentation for the examples[object Object]
noDepsbooleanDo not generate documentation for dependencies[object Object]

Napi Executor

A type definition for the Napi - Bindings Build executor schema

Example

This executor can be used by executing the following in a command line utility:

nx run my-project:napi

Please note: The napi executor should be included in the desired projects's project.json file.All required options must be included in the options property of the json.

Options

The following executor options are available:

OptionTypeDescriptionDefault
outputPath *stringThe path to the output directory"{sourceRoot}"
package *stringBuild the specified library or the one at cwd
toolchain"stable" | "beta" | "nightly"The type of toolchain to use for the build"stable"
targetstringBuild for the target triple, bypassed to `cargo build --target`
allTargetsbooleanBuild all targets
profilestringBuild artifacts with the specified profile
releasebooleanBuild in release mode
featuresstring[]List of features to activate
allFeaturesbooleanActivate all available features
jsBinding *stringThe path to the output JavaScript file"binding.js"
dts *stringThe path to the output TypeScript declaration file"binding.d.ts"
manifestPath *stringThe path to the Cargo.toml manifest file
cwdstringWorking directory where napi command will be executed; other paths are relative to this
configPathstringPath to napi config JSON file
packageJsonPathstringPath to package.json
targetDirstringDirectory for all crate generated artifacts (cargo build --target-dir)
platformbooleanAdd platform triple to generated Node.js binding file, e.g. [name].linux-x64-gnu.nodetrue
jsPackageNamestringPackage name in generated JS binding file. Works only with --platform
constEnumbooleanWhether to generate const enum for TypeScript bindings
noJsBindingbooleanDisable generation of JS binding file. Works only with --platform
dtsHeaderstringCustom file header for generated type def file (requires typedef feature)
noDtsHeaderbooleanDisable default file header for generated type def file (requires typedef feature)
dtsCachebooleanEnable the DTS cachetrue
esmbooleanEmit an ESM JS binding file instead of CJS (works only with --platform)
stripbooleanStrip the library to minimize file size
verbosebooleanVerbosely log build command trace
binstringBuild only the specified binary
crossCompileboolean[experimental] Cross-compile for the specified target with cargo-xwin on Windows and cargo-zigbuild on other platforms
useCrossboolean[experimental] Use cross (https://github.com/cross-rs/cross) instead of cargo
useNapiCrossboolean[experimental] Use @napi-rs/cross-toolchain to cross-compile Linux arm/arm64/x64 gnu targets
watchbooleanWatch crate changes and build continuously with cargo-watch
noDefaultFeaturesbooleanDo not activate the default feature

Please note: Option names followed by * above are required, and must be provided to run the executor.

Generators

The following generators are available with this package to assist in workspace management:

Init Generator

A type definition for an init generator schema

Options

The following executor options are available:

OptionTypeDescriptionDefault
skipFormatbooleanSkip formatting the generated files

Preset Generator

A type definition for a preset generator schema

Options

The following executor options are available:

OptionTypeDescriptionDefault
directory *stringThe directory to create the library in
name *stringThe name of the workspace
organizationstringThe organization of the workspace"storm-software"
includeAppsbooleanInclude apps in the workspacetrue
includeRustbooleanInclude Rust support in the workspace
namespacestringThe namespace of the workspace"storm-software"
descriptionstringThe description of the workspace
repositoryUrlstringThe URL of the repository
nxCloudstringNx Cloud configuration
modestringThe mode of the Nx client
packageManager"npm" | "pnpm" | "yarn" | "bun"The package manager to use"pnpm"

Please note: Option names followed by * above are required, and must be provided to run the executor.

Node Library Generator

A type definition for a NodeJs library generator schema

Options

The following executor options are available:

OptionTypeDescriptionDefault
directory *stringThe directory to create the library in
name *stringThe name of the library
descriptionstringThe description of the library
buildExecutorstringThe executor to use for building the library"@storm-software/workspace-tools:unbuild"
platform"node" | "neutral"The platform to target with the library"node"
importPathstringThe import path for the library
tagsstringThe tags for the library
unitTestRunner"jest" | "vitest" | "none"The unit test runner to use
testEnvironment"jsdom" | "node"The test environment to use
pascalCaseFilesbooleanUse PascalCase for file names
strictbooleanEnable strict modetrue
publishablebooleanMake the library publishable
buildablebooleanMake the library buildabletrue

Please note: Option names followed by * above are required, and must be provided to run the executor.

Config Schema Generator

A type definition for a config schema generator schema

Options

The following executor options are available:

OptionTypeDescriptionDefault
directorystringThe directory to create the library in
outputFilestringThe file to write the schema to"{workspaceRoot}/storm-workspace.schema.json"

Neutral Library Generator

A type definition for a neutral library generator schema

Options

The following executor options are available:

OptionTypeDescriptionDefault
directory *stringThe directory to create the library in
name *stringThe name of the library
descriptionstringThe description of the library
buildExecutorstringThe executor to use for building the library"@storm-software/workspace-tools:unbuild"
platform"neutral"The platform to target with the library"neutral"
importPathstringThe import path for the library
tagsstringThe tags for the library
unitTestRunner"jest" | "vitest" | "none"The unit test runner to use
testEnvironment"jsdom" | "node"The test environment to use
pascalCaseFilesbooleanUse PascalCase for file names
strictbooleanEnable strict modetrue
publishablebooleanMake the library publishable
buildablebooleanMake the library buildabletrue

Please note: Option names followed by * above are required, and must be provided to run the executor.

Browser Library Generator

A type definition for a browser library generator schema

Options

The following executor options are available:

OptionTypeDescriptionDefault
directory *stringThe directory to create the library in
name *stringThe name of the library
descriptionstringThe description of the library
buildExecutorstringThe executor to use for building the library"@storm-software/workspace-tools:unbuild"
platform"browser" | "neutral"The platform to target with the library"browser"
importPathstringThe import path for the library
tagsstringThe tags for the library
unitTestRunner"jest" | "vitest" | "none"The unit test runner to use
testEnvironment"jsdom" | "node"The test environment to use
pascalCaseFilesbooleanUse PascalCase for file names
strictbooleanEnable strict modetrue
publishablebooleanMake the library publishable
buildablebooleanMake the library buildabletrue

Please note: Option names followed by * above are required, and must be provided to run the executor.

release-version

The release version generator used in Storm Workspaces

Building

Run nx build workspace-tools to build the library.

Running unit tests

Run nx test workspace-tools to execute the unit tests via Jest.

Storm Workspaces

Storm workspaces are built using Nx, a set of extensible dev tools for monorepos, which helps you develop like Google, Facebook, and Microsoft. Building on top of Nx, the Open System provides a set of tools and patterns that help you scale your monorepo to many teams while keeping the codebase maintainable.


Roadmap

See the open issues for a list of proposed features (and known issues).


Support

Reach out to the maintainer at one of the following places:


License

This project is licensed under the Apache License 2.0. Feel free to edit and distribute this template as you like.

See LICENSE for more information.


Changelog

This project adheres to Semantic Versioning. Every release, along with the migration instructions, is documented in the CHANGELOG file


Contributing

First off, thanks for taking the time to contribute! Contributions are what makes the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are greatly appreciated.

Please try to create bug reports that are:

  • Reproducible. Include steps to reproduce the problem.
  • Specific. Include as much detail as possible: which version, what environment, etc.
  • Unique. Do not duplicate existing opened issues.
  • Scoped to a Single Bug. One bug per report.

Please adhere to this project's code of conduct.

You can use markdownlint-cli to check for common markdown style inconsistency.


Contributors

Thanks goes to these wonderful people (emoji key):

Patrick Sullivan
Patrick Sullivan

🎨 💻 🔧 📖 ⚠️
Tyler Benning
Tyler Benning

🎨
Stormie
Stormie

🚧
All Contributors Add your contributions

This project follows the all-contributors specification. Contributions of any kind welcome!



Storm Software

Fingerprint: F47F 1853 BCAD DE9B 42C8 6316 9FDE EC95 47FE D106

Storm Software is an open source software development organization and creator of Acidic, StormStack and StormCloud.

Our mission is to make software development more accessible. Our ideal future is one where anyone can create software without years of prior development experience serving as a barrier to entry. We hope to achieve this via LLMs, Generative AI, and intuitive, high-level data modeling/programming languages.

Join us on Discord to chat with the team, receive release notifications, ask questions, and get involved.

If this sounds interesting, and you would like to help us in creating the next generation of development tools, please reach out on our website or join our Slack channel!






Keywords

monorepo

FAQs

Package last updated on 14 Jan 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts