The Speckle Server, Frontend, 3D Viewer, & other JS utilities.
Перейти к файлу
Matteo Cominetti 64279a867d feat(gql): limits set to max=100 and default=25 for streams, users, branches & commits. Additional changes as per PR #14. 2020-07-29 13:10:24 +01:00
.circleci
bin
db
frontend
modules feat(gql): limits set to max=100 and default=25 for streams, users, branches & commits. Additional changes as per PR #14. 2020-07-29 13:10:24 +01:00
test-queries
.editorconfig
.env-example
.eslintrc.json
.gitignore
.mocharc.js
app.js
knexfile.js
package-lock.json
package.json
readme.md
setupcheck.js

readme.md

Speckle Server

The next iteration of the Speckle Server.

Speckle-Next codecov

Contributing

Local debugging & testing

To debug, simply run npm run dev:server. To test, run npm run test:server. To run tests in interactive mode, run npm run test:server:watch.

Requirements

  1. Duplicate and rename .env-example to .env.

  2. You will need to have a postgres instance running on the default settings, with two databases present, named speckle2_dev and speckle2_test.

For getting postgres running on osx, check out postgres.app, and the classic pgadmin.

  1. You will also need Redis installed.

For which you can use the redis.app.

How to commit to this repo

When pushing commits to this repo, please follow the following guidelines:

  • Install commitizen globally (npm i -g commitizen).
  • When ready to commit, type in the commandline git cz & follow the prompts.
  • Install eslint globally npm i -g eslint
    • if using VS code install the eslint extension
    • we also recommend setting it to run on save by adding the following VS Code setting
    "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true
    }
    

Modules

The server dynamically loads individual 'modules' from each top level folder in ./modules. It first loads the core modules, and thereafter others.

Modules can create new and alter old database tables, if the knex migration files are present in a migrations subfolder (e.g., ./modules/your-module/migrations/my-new-table.js). Make sure to add a date in front of your migration file.

Structure

A module should contain in its root folder an index.js file that exposes an init function:

exports.init = ( app ) => {
    // Your module's initialisation code
}

Any database migration files should be stored and named accordingly in a migrations folder. Moreover, modules should include test files. These should be located in tests. Here's a sample structure:


|-- index.js // entry file
|-- migrations
    `-- myTable.js
`-- tests
    `-- example.spec.js

// TODO

API

GraphQl

// TODO ### REST

Depecrated.