skaffolder-cli
    TypeScript icon, indicating that this package has built-in type declarations

    2.0.16 • Public • Published

    npm download total npm version GitHub Workflow Status Build Status

    sk-cli animation

    Skaffolder-cli

    The Skaffolder CLI is a powerful command-line interface (CLI) tool to access and manage a Skaffolder project. You can easily generate, export and add models, APIs and pages to your project.

    Table of Contents


    Installation

    npm install -g skaffolder-cli

    Getting started

    To create your first Skaffolder project just run sk new, then:

    1. Give a name to your project.
    2. Pick your frontend.
    3. Pick your backend.

    And your project is ready!

    $ sk new
    ✔ Insert the name of your project … MyAwesomeProject
    Project name:           MyAwesomeProject
    ✔ Select your frontend language › React Native
    ✔ Select your backend language › Go
    ...
    ✔   Project created offline!

    That's it! Now to get the source code simply run sk generate and you are all set.


    Commands

    Every sk commands takes five global options:

    -h, --help                       Display help
    -V, --version                    Display version
    --no-color                       Disable colors
    --quiet                          Quiet mode - only displays warn and error messages
    -v, --verbose                    Verbose mode - will also output debug messages

    User Commands

    Commands to manage your Skaffolder account.

    login

    Login to your Skaffolder account, a browser window will open to Skaffolder login page. Be sure to be logged in when using project commands with the --online option and when exporting your project.

    Still don't have a Skaffolder account? Get yours here, it's free!.

    Example:

    $ sk login
    ...
    The Skaffolder login will open in your default browser...
     
    ✔  Login successful with user: admin@example.com
    ...

    logout

    Logout from your Skaffolder account.

    Example:

    $ sk logout
    ✔ Logout successfully

    Project Commands

    Used for manage and edit your Skaffolder project. Every project command takes one option:

    -o, --online                    Work online on the Skaffolder project, requires sk login

    When using the --online option the cli works with project saved on our servers instead of reading your project from the openapi.yaml file. Before using this option, make sure that your project has been exported to Skaffolder.

    Create Project

    new [project name]

    Create a new local Skaffolder project.

    Additional options:

    -i, --import <file>                Convert an OpenAPI 3.0 file in a Skaffolder project
    -f, --frontend <templateName>      Template frontend language
    -b, --backend <templateName>       Template backend language
    -o, --online                       Create the project locally and exports it to your Skaffolder web interface account

    Example:

    $ sk new "MyProject" --frontend "React" --backend "NodeJS"
    Project name:           MyProject
    Frontend template:      React
    Backend template:       NodeJS
     
    File created: openapi.yaml
    ...
    ✔   Project created offline!
     
    You can edit the project from the web interface running 'sk export'
    You can edit the project from the VSCode extension https://github.com/skaffolder/skaffolder-vscode-extension
    You can edit the project from the openapi.yaml file
    You can edit the project from the command line:
            Add a model running 'sk add model'
            Add a page running 'sk add page'
            Add an API running 'sk add api'
     
    Generate your code running 'sk generate'

    open [id project] [id generator]

    Open an already existent Skaffolder project. Requires sk login.

    $ sk open
    ✔ Select your project › My_Project
    ✔ Select your generator › Generator Angular 6 + NodeJS - Sequelize
    ✔  Generator files imported in ./.skaffolder/template
    You can edit your project structure at https://app.skaffolder.com/#!/projects/<project-id>/models or running 'sk web open'

    If a Skaffolder project is already present in the folder, the program will ask you if you want to overwrite it.

    generate

    Generate the source code of your project from the openapi.yaml file.

    Additional options:

    -o, --online                       Generate the source code of your project from your Skaffolder account datas, it ignores the openapi.yaml

    Example:

    $ sk generate
    File created: client/.dockerignore
    File created: client/Dockerfile
    File created: client/README.md
    ...
    ✔  Generation complete!

    Manage Project

    add page [page name]

    Create a new page in the Skaffolder project.

    Additional options:

    -o, --online                       Add the page in the Skaffolder account

    Example:

    $ sk add page MyNewPage
    Page name: MyNewPage
    File modified: client/src/app/app-routing.module.ts
    File created: client/src/app/pages/my-new-page/my-new-page-routing.module.ts
    File created: client/src/app/pages/my-new-page/my-new-page.component.css
    File created: client/src/app/pages/my-new-page/my-new-page.component.html
    File created: client/src/app/pages/my-new-page/my-new-page.component.ts
    File created: client/src/app/pages/my-new-page/my-new-page.module.ts
    File modified: openapi.yaml
    ✔  Generation complete!

    add model [model name]

    Create a new model in the Skaffolder project. After the model will be created the program will ask you if you want to generate CRUD interface for the newly created model.

    Additional options:

    -o, --online                       Add the model in the Skaffolder account

    Example:

    $ sk add model "MyNewModel"
    Model name: MyNewModel
    ✔ Do you want to add an attribute to MyNewModel model? … No / Yes
    ✔ Insert the name of the attribute … MyNewModel_Attribute
    ✔ Select type of MyNewModel_Attribute attribute › String
    ✔ Do you want to add another attribute to MyNewModel model? … No / Yes
    File created: client/src/api/generated/MyNewModelApiGenerated.js
    File created: client/src/api/MyNewModelApi.js
    ...
    ✔  Generation complete!
    You can edit your Model at https://app.skaffolder.com/#!/projects/undefined/models/undefined
    ✔ Do you want to generate CRUD interface for 'MyNewModel' model? … No / Yes
    File modified: client/src/api/generated/MyNewModelApiGenerated.js
    File modified: client/src/components/Navbar.js
    ...
    ✔  Generation complete!

    add api

    Create a new api. You can choose to create a CRUD or a custom API.

    Additional options:

    -o, --online                       Add the page in the Skaffolder account

    Example creating a CRUD delete API:

    $ sk add api
    ✔ Select the model on which you want to create the API › MyNewModel
    ✔ Select type of your API › delete
    You can edit your API at https://app.skaffolder.com/#!/projects/undefined/apis/undefined
    File modified: client/src/api/generated/MyNewModelApiGenerated.js
    File modified: client/src/redux/actionTypes.js
    ...
    ✔  Generation complete!

    Example creating a custom API:

    $ sk add api
    ✔ Select the model on which you want to create the API › MyNewModel
    ✔ Select type of your API › Custom API
    ✔ Insert the name of your API … myNewCustomApi
    API name: myNewCustomApi
    ✔ Insert the URL of your API. Example: /{id}/action … /{id}/customApi
    API name: /{id}/customApi
    ✔ Select the method of your API › POST
    File modified: client/src/api/generated/MyNewModelApiGenerated.js
    File modified: client/src/redux/actionTypes.js
    ...
    ✔  Generation complete!

    Generator Commands

    generator init

    Initializes a new generator in the .skaffolder/template folder. This command will overwrite your existing local generator.

    Example:

    $ sk generator init
    ✔ Select your frontend language › React
    ✔ Select your backend language › Go
    ✔  Generator files imported in ./.skaffolder/template
     
    Now you can generate your code running 'sk generate'

    generator pull

    Pulls the remote generator on Skaffolder in the local generator of your project. Any changes to your remote generator on Skaffolder will no be reflected into your local generator.

    Example:

    $ sk generator pull
    ✔  Generator files imported in ./.skaffolder/template
    You can edit your project structure at http://localhost:3001/#!/projects/<project-id>/models or running 'sk web open'

    generator push

    Pushes the local generator of your project to the remote generator on Skaffolder. In this way any changes to your generator will be saved.

    Pro tip: You can edit your generator directly on Skaffolder: Move to the generators tab, click on Edit Generator and then, on the bottom, click Customize generator template.

    generator create

    Copy the content of your project folder inside the .skaffolder/template folder. This may be useful when creating new generators.

    $ sk generator create
    ✔ Do you want to overwrite ./.skaffolder/template folder? … No / Yes
    ✔  Generator files imported in ./.skaffolder/template
    Now you can customize template files an generate code with 'sk generate'

    generator publish

    Share your local generator with Skaffolder community. If you want to learn more on how to become a contributor, click here.

    $ sk generator publish --verbose
    ✔ Do you want to share ./.skaffolder/template folder with the Skaffolder community? … No / Yes
    ✔  Generator files shared
    The Skaffolder team will check this generator and it will be published if quality standards are ok.
    We will contact you at your account email

    Utility Commands

    Useful commands to import/export project and get your configurations.

    web open

    Open your project on Skaffolder web interface. The project must be exported before calling this command.

    set endpoint [endpoint]

    Set Skaffolder endpoint for on-premise.

    get endpoint

    Get Skaffolder endpoint for on-premise.

    get user

    Get the currently logged Skaffolder user.

    Example:

    $ sk get user
    User: admin@example.com

    get project url

    Get your project url. The project must be exported before calling this command.

    Example:

    $ sk get project url
    To manage data models, APIs and pages of your project, visit this URL:
    https://app.skaffolder.com/#!/projects/<project-id>/models

    list frontend

    List all available frontend templates.

    list backend

    List all available backend templates.

    import db [schema.xml]

    Import your db schema in Skaffolder from a SchemaSpy XML file, here you can find an example. In order to successfully import your database, you need to call this commands from a project already exported on Skaffolder.

    Example:

    sk import db schema.xml
    ✔   Db import completed!
    You can edit your project structure at https://app.skaffolder.com/#!/projects/<project-id>/models or running 'sk web open'

    export

    Export your local project to Skaffolder. Requires sk login.

    Example:

    $ sk export
     
    File modified: openapi.yaml
    Create project
    [CREATE]: 'MyProject' project
    [CREATE]: 'MyProject_db' database
    ...
    [CREATE]: 'Home' page
    [UPDATE]: 'MyProject' project pages and dbs

    help [command]

    Display help for a specific command.


    Skaffolder documentation

    Additional Skaffolder documentation can be found here.

    Template location

    In your folder workspace, Skaffolder creates a .skaffolder folder. This folder is used by Skaffolder-cli to store the generator's files. Each template file (.hbs extension) follows Handlebar's syntax and is used by Skaffolder when generating the project's source code.


    Contributing

    Skaffolder-cli is an open-source project. Feel free to propose enhancements suggestions, report bugs and to submit pull requests.

    Install

    npm i skaffolder-cli

    DownloadsWeekly Downloads

    6

    Version

    2.0.16

    License

    GPLv3

    Unpacked Size

    378 kB

    Total Files

    49

    Last publish

    Collaborators

    • avatar