GitHub

jsrepo-build-config.json

Configuration for your registry.

jsrepo-build-config.json holds the configuration for your registry.

You can create a jsrepo-build-config.json by running the init command with the --registry flag:

npx jsrepo init --registry

$schema

$schema is tracked with the cli so you can use a specific version using unpkg:

{ "$schema": "https://unpkg.com/jsrepo@1.35.1/schemas/registry-config.json" }

meta

meta allows you to provide optional information about the registry that can be displayed to users for better documentation.

{ "meta": { "authors": ["Aidan Bleser"], "bugs": "https://github.com/ieedan/std/issues", "description": "Fully tested and documented TypeScript utilities brokered by jsrepo.", "homepage": "https://ieedan.github.io/std/", "repository": "https://github.com/ieedan/std", "tags": ["typescript", "std"] } }
authors

The names of the authors of this registry.

bugs

Where users should report bugs.

description

A description of the registry.

homepage

The URL to the registry homepage.

repository

The source repository for the registry. (Omit this if you are distributing from a git repository)

tags

Keywords that describe your registry.

dirs

dirs is a list of the directories that contain your block categories.

{ "dirs": [ "./src", "./blocks" ] }

configFiles

configFiles allows you to specify files that the user may need in their project for the registry to function properly.

{ "configFiles": [ { "name": "app.css", "path": "./src/app.css", "expectedPath": "./src/app.css", "optional": false } ] }
name

The name as it will be displayed in prompts to the user.

path

The path of the file in your registry.

expectedPath

The path where you expect users to have this file (used as a default in prompts).

optional

When true users will be prompted to ask whether or not they want to add the config file.

outputDir

outputDir is an optional key that allows you to copy the resulting jsrepo-manifest.json and any required files to a custom directory.

This is useful if you want to host the registry in a different location from where the code actually lives. (This should NOT be used when hosting your registry from a git repository)

{ "outputDir": "./static/new-york" }

listBlocks

listBlocks is a list of block names that should be listed when the user runs the add command.

{ "listBlocks": [ "utils" ] }

listCategories

listCategories is a list of category names that should be listed when the user runs the add command.

{ "listCategories": [ "utils" ] }

doNotListBlocks

doNotListBlocks is a list of block names that shouldn't be listed when the user runs the add command.

{ "doNotListBlocks": [ "utils" ] }

doNotListCategories

doNotListCategories is a list of category names that shouldn't be listed when the user runs the add command.

{ "doNotListCategories": [ "utils" ] }

excludeDeps

excludeDeps allows you to prevent specified remote dependencies from being installed when the user adds/updates blocks. This is useful for framework specific API's like React or Svelte.

{ "excludeDeps": [ "svelte", "react", "vue" ] }

includeBlocks

includeBlocks allows you to only include specified blocks in the final manifest file. Keep in mind that if these blocks are referenced by other blocks that are included then your build will break.

{ "includeBlocks": [ "ui", "hooks" ] }

includeCategories

includeCategories allows you to only include specified categories in the final manifest file. Keep in mind that if these categories are referenced by other categories that are included then your build will break.

{ "includeCategories": [ "components", "utils" ] }

excludeBlocks

excludeBlocks allows you to prevent the specified blocks from being included in the manifest.

{ "excludeBlocks": [ "domain" ] }

excludeCategories

excludeCategories allows you to prevent the specified categories from being included in the manifest.

{ "excludeCategories": [ "INTERNAL" ] }

allowSubdirectories

allowSubdirectories allows subdirectories to be built.

{ "allowSubdirectories": false }

preview

preview displays a preview of the blocks list.

{ "preview": false }

rules

rules allows you to configure the rules when checking the manifest file after build.

Below are the default settings for each rule.

{ "rules": { "no-category-index-file-dependency": "warn", "no-unpinned-dependency": "warn", "require-local-dependency-exists": "error", "max-local-dependencies": ["warn", 10], "no-circular-dependency": "error", "no-unused-block": "warn", "no-framework-dependency": "warn", } }
no-category-index-file-dependency

Disallow depending on the index file of a category.

no-unpinned-dependency

Require all dependencies to have a pinned version.

require-local-dependency-exists

Require all local dependencies to exist.

max-local-dependencies

Enforces a limit on the amount of local dependencies a block can have.

no-circular-dependency

Disallow circular dependencies.

no-unused-block

Disallow unused blocks. (Not listed and not a dependency of another block)

no-framework-dependency

Disallow frameworks (Svelte, Vue, React) as dependencies.