@feature-sliced/cli v1.0.0
@feature-sliced/cli
Utility to quickly generate layers, slices, and segments from Feature-Sliced Design.
Installation
npm add -g @feature-sliced/cliThis will create a global binary fsd. You can install this CLI locally as well, but then you will need to use npx to run it.
Usage
Generate the Entities layer with a client slice that contains an index file and two segments, ui and api:
fsd entities client --segments ui apiOr, for short:
fsd e client -s ui,apiIf you have at least one slice in your project already, the CLI will know where to generate. Otherwise, it will generate in the current folder, or you can specify the location yourself with the --root or -r option.
Generate the Widgets layer with a
bottom-barslice that has an index file and segmentsuiandapiin thesrc/folder:fsd w bottom-bar -s ui api -r src fsd widget bottom-bar -s ui,api -r src fsd widgets bottom-bar --segments ui,api -r srcProduces:
src/widgets/bottom-bar/index.(js|ts)(depending on your project)src/widgets/bottom-bar/ui/src/widgets/bottom-bar/api/
Generate the Features layer with a slice
employee/employee-recordinside a slice groupemployee:fsd f employee/employee-record fsd feat employee/employee-recordIn a detected FSD root^1 or current folder, produces:
features/employee/employee-record/index.(js|ts)(depending on your project)
Generate the Entities layer with a
userslice inside thesrc/libfolder, creating it if necessary:fsd e user -r ./src/lib fsd entity user --root ./src/libProduces:
src/lib/entities/user/index.(js|ts)(depending on your project)
Generate the Pages layer with slices
edit-noteandnote-list, each containing segmentsuiandapi:fsd p edit-note note-list -s ui, api fsd page edit-note, note-list -s ui apiIn a detected FSD root^1 or current folder, produces:
pages/edit-note/index.(js|ts)(depending on your project)pages/edit-note/ui/pages/edit-note/api/pages/note-list/index.(js|ts)pages/note-list/ui/pages/note-list/api/
Generate the Shared layer with segments
uiandapiand an index file for each segment:fsd s ui api fsd s -s ui api fsd shared ui -s apiIn a detected FSD root^1 or current folder, produces:
shared/ui/index.(js|ts)shared/api/index.(js|ts)
Credits
Big thanks to a community member Agent_RBY_ for implementing most of the generating and detecting logic.
License
The source code of this project is distributed under the terms of the ISC license. It's like MIT, but better. Click here to learn what that means.
^1: An FSD root is the folder that contains slices in Feature-Sliced Design. There can be several independent roots in one project.