Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

fabrique

Package Overview
Dependencies
Maintainers
0
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fabrique

CLI to build a library

  • 0.2.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
6
decreased by-95.24%
Maintainers
0
Weekly downloads
 
Created
Source

npm (scoped) npm NPM npm type definitions

Fabrique

fabrique is a cli to create and build libraries, letting the user focus on the functionalities of its library, instead of the build process.

With fabrique you'll be able to:

  • create rapidly a library with all the tools and scripts to:
    • build and publish your library
    • write tests for it
    • format your code
    • and debug it
  • upgrade any Fabrique project to get the last functionalities in one command line.

fabrique is not intended to provide ci scripts and pipelines to automate the processes. Instead, it gives a uniform and simple entry point for everyone, to publish rapidly our own libraries, on which we may add automation, scripts, and complexity.

fabrique is the French word for "made/factory"

Motivation

When we develop javascript/typescript libraries, we frequently create new repositories, and maintains the scripts to build, test, and debug them. This tends to become rapidly cumbersome, especially when their number grows. We may choose to opt in for a monorepo, and I'll tell you: yes, in many cases, this is the optimal solution. However, in many other cases, one library per-repo makes sense, and this is where fabrique comes in.

Another goal is to focus on simplicity: for new incomers in javascript, learning all the tools and build processes is complicated. You want to write your library, but you have to learn vite, jest, how to build and publish a lib, install prettier, etc. With fabrique all comes in pre-configured.

📝 Documentation

Requirements

The library requires Node.js 22+ and yarn 4+.

Installation

We recommend to use npx:

npx fabrique CMD

But, you may prefer to install globally fabrique:

npm install -g fabrique

And run a command with:

fabrique CMD

List of commands

create
npx fabrique upgrade lib [name]
example
npx fabrique create @my-company/my-library
action

This command creates a new library with the name [name] inside the folder ./[name] (in our example: ./@my-company/my-library). You'll be prompted for a description, author and git url.

INFO: run the command where you want to create your project.

options
  • [name]: the library name
upgrade
npx fabrique upgrade
action

This command updates an existing fabrique project: it updates the build files, the scripts, etc. It tries to be non-destructive.

INFO: run the command inside the fabrique project.

options
  • --force: forces an upgrade even if the lib is not a fabrique project or if the version is identical. Use with caution.
refactor
npx fabrique refactor [from] [to]
example
npx fabrique refactor my-component my-new-component

Refactors all files and directories containing my-component as name into my-new-component (recursively). And all text content my-component (or derived cases) into my-new-component (keeping the same case).

If we run it with the following files:

  • some-component
  • my-component
    • my-component.ts
  • my-component-abc
    • my-component-abc.ts

We get:

  • some-component
  • my-new-component
    • my-new-component.ts
  • my-new-component-abc
    • my-new-component-abc.ts

And with this file content:

class MyComponent {}

// my-component
const MY_COMPONENT = null;
function my_component(myComponent: MyComponent) {}

We get:

class MyNewComponent {}

// my-new-component
const MY_NEW_COMPONENT = null;
function my_new_component(myNewComponent: MyNewComponent) {}
action

This command refactors files and directories recursively from the cwd (by default, the current directory in which the script is executed). It preserves the case of the names (ex: dash-case, or cameCase).

INFO: run the command inside the folder that you want to refactor.

options
  • [from]: the "source" text to refactor. Must be dash-case.
  • [to]: the "destination" text to refactor. Must be dash-case.
  • --dry (default: false): runs without modifying the files. This is useful to check if your refactoring is safe or not.
  • --cwd (default: current folder): specifies the directory to start from.
verdaccio
npx fabrique verdaccio

Installs and lauches verdaccio. This is useful to debug interdependent libraries.

Let's say we have:

  • a library my-lib-a
  • a library my-lib-b with my-lib-a as dependency

If we're working on my-lib-a, and want to test if it works on my-lib-b, we'll publish a dev version of my-lib-a on a local verdaccio. And consume this dev version on my-lib-b.

We choose verdaccio instead of npm link because versions and dev packages are unique with a package registry.

Thus, we may have my-lib-b consuming my-lib-a-dev.0 and my-lib-c consuming my-lib-a-dev.1, which is not possible with npm link.

version
npx fabrique --version
# or
npx fabrique -v

Returns the current fabrique version.

help
npx fabrique --help
# or
npx fabrique -h

You may get help on individual commands:

npx fabrique create -h

FAQs

Package last updated on 10 Nov 2024

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc