An open API service indexing awesome lists of open source software.

https://github.com/solidlabresearch/solid-sdx-cli


https://github.com/solidlabresearch/solid-sdx-cli

Last synced: 4 months ago
JSON representation

Awesome Lists containing this project

README

          

# Solid SDX CLI

The Solid Development eXperience CLI is meant to bootstrap Solid application development in JS/TS.

## Main Features

- Bootstrap your application work directory
- Search the [SolidLab Catalog](https://catalog.solidlab.be) for shapes via CLI
- Install shape packages from the [SolidLab Catalog](https://catalog.solidlab.be) via CLI
- Generate a (SDL) GraphQL Schema
- Generate TS type information for intellisense support in your favorite IDE
- Generate a client proxy to read/write to (remote) Pods

## Installation

Globally installing allows you to use `sdx` as a CLI binary.
_Requires at least node 18.0.0__

```bash
npm i -g @solidlab/solid-sdx-cli
```

## Usage

```bash
# Print out the options in CLI
sdx help
```

### Init workspace

Initializes a workspace for Solid Application Development.

```bash
sdx init [--force] [--noLibs] [name]
```

You can provide an optional name for your project. If omitted, it will be asked through the interactive shell prompt.

**Parameters**

- `--force`: If a `package.json`` already exists, use `--force` to merge setup into the existing `package.json`
- `--noLibs`: By default extra libraries that are needed will be installed, if for some reason you don't want this, you can use this trigger.

Initialisation will write three important files:

* `.solidmanifest`: manifest of your application
* `.sdxconfig`: config file for the sdx toolkit
* `package.json`: starting package.json for this project

### Search type packages

Search for a Solid type package.

```bash
sdx search [query]
```

Will search the central SolidLab Catalog for potential matches.

### Install shape package

Install a Solid shape package.

```bash
sdx install package [UriOrIndex]
// or
sdx package install [UriOrIndex]
```

Install a shape package into your local project. It will be added to the .solidmanifest file and will - by default - update the generated GraphQL Schema (and generated sdk if applicable).
A full URI can be used, or the index from the latest results table generated by the cli (eg. from `sdx search`).

### Uninstall shape package

Install a Solid shape package.

```bash
sdx uninstall package [UriOrIndex]
// or
sdx package uninstall [UriOrIndex]
```

Uninstall a shape package from your local project. It will be removed from the .solidmanifest file and will - by default - update the generated GraphQL Schema (and generated sdk if applicable).
A full URI can be used, or the index from the latest results table generated by the cli (eg. from `sdx list packages`).

### List shape packages

List all installed Solid shape packages.

```bash
sdx list packages
// or
sdx packages list
```

Lists all installed shape packages.

### Generate schema

Manually trigger GraphQL Schema generation, based on the installed shape packages.

```bash
sdx generate schema
```

The GraphQL Schema will be used to generate typings and a Sdk SolidClient class.

### Generate typings

Manually trigger generation of typings, based on the installed shape packages.

```bash
sdx generate typings
```

The generated typings can be used by an IDE for intellisense autocompletion and strong typing language support.

### Generate sdk client

Manually trigger a SolidClient sdk client, based on the generated GraphQL Schema and the user-created GraphQL Queries in the `src/gql/` folder.

```bash
sdx generate sdk
```

The generated Sdk Client can then be used with the @solidlab/solid-sdx-ts library to interface with accessible pods.