@colabo/cli

Tools necessary for building Colabo.Space ecosystem

Usage no npm install needed!

<script type="module">
  import colaboCli from 'https://cdn.skypack.dev/@colabo/cli';
</script>

README

Colabo Tools

These are the tools to manage the Colabo.Space ecosystem or other systems that follow Colabo principles of healthy development:

  • Code modularization
  • Separating modules into independent (as much as possible) components that are possible to install separatelly as npm packages

NOTE: Before installing Colabo.Space ecosystem you need to install Colabo tools as necessary for further installation phases. It is similar with other Colabo-enabled systems.

Install

Standard way of installing the tool is to run:

npm install -g @colabo/cli

After that the colabo tools are available simply by typing colabo in terminal.

Running

NOTE: Very often colabo tools will be embedded in the build process of the project (for example, in the scripts.prepare property of the project's package.json file) and you do not need to deal with them manually.

# Show info of the colabo aspect of the backend part of the project
colabo ../backend/colabo.config.js puzzles-info

# Offer colabo puzzles to the local system
# (basically `npm link` for all puzzles listed as offers in the `colabo.config.js`)
colabo colabo.config.js puzzles-offer

# Help about specific command
colabo puzzles-install -h

# Install inside the project all puzzles required for the project
# (basically `npm link <npm_package_main_id>` for all puzzles listed as dependencies in the `colabo.config.js`)
colabo puzzles-install

# Running current DEV version of the colabo tools
# help
ts-node -P  $COLABO/tsconfig.json $COLABO/index.ts puzzles-install -h
# build
ts-node -P  $COLABO/tsconfig.json $COLABO/index.ts puzzles-install

Help

To see all available commands, you can run:

colabo --help

To see details on a speciffic commands (for example puzzle-create), you can run:

colabo puzzle-create --help

Alternatives

Here we are exploring alternatives

Yeoman

# install yo
npm install --global yo

# install a generator
npm install --global generator-webapp

# run it
yo webapp
npm install --save yeoman-environment
var yeoman = require('yeoman-environment');
var env = yeoman.createEnv();

// The #lookup() method will search the user computer for installed generators.
// The search if done from the current working directory.
env.lookup(function () {
  env.run('webapp', {'skip-install': true}, function (err) {
    console.log('done');
  });
});

Other

TODO

Templating

  • Exclude files, folders, extensions

Frontend Puzzle creation

Frontend Puzzle creation

  • Ask:
    • add materialModule.ts?
      • add ALL components by default
      • ? do something smarter?
    • create component? (name)
    • create service? (name)
    • create module (module.ts)?
      • name
      • add created components and services? (or add automatically?)
  • Add
    • in index.ts add all created components, services and module

Integrating puzzle in an app

  • provide puzzle name/path and app name
  • integrate the puzzle
    • module.ts ino