Skip to content
This repository has been archived by the owner on Nov 3, 2023. It is now read-only.

Opinionated Strapi template with enhanced typing, linters & releases process

License

Notifications You must be signed in to change notification settings

digisquad-io/strapi-supercharged-template

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


Strapi Supercharged

Strapi Supercharged

Opinionated strapi configuration with enhanced typing, linters & releases process
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents

  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgements

About The Project

“Javascript as Typescript” code

Use all power of Typescript directly into your Javascript

VSCode auto-completion preview

VSCode auto-completion preview

Advanced linter configuration

Advanced linter configuration

Default services & controllers typing

Default services & controllers typing

🎯 Goals

  • Cover API, Plugins and all Internal Strapi typing
  • Ahead-Of-Time compilation errors with Typescript
  • Highly extensible definitions
  • Linters with all recommendation enabled (eslint+prettier)
  • React linters for admin customization
  • Follows standard conventional-commits and releases process

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

@todo

Installation

  1. Clone the repo
    git clone https://github.com/digisquad-io/strapi-supercharged-template.git

    🚀 Or use this repository as template

  2. Install NPM packages
    npm install # yarn
  3. Run the tests
    npm test # yarn test

Usage

💡 Declare your Models

@todo

For complete examples, please refer to the Article API model typing or the Product model typing from sample plugin

💡 Register API typing

@todo

For a complete example, please refer to the ArticleAPI typing

💡 Register Plugins typing

@todo

For a complete example, please refer to the SamplePlugin typing

🌠 Use your Supercharged Strapi

In controllers

@todo

For a complete example, please refer to the Article controller

In services

@todo

For a complete example, please refer to the Article service

In middlewares

@todo

For a complete example, please refer to the Sample middleware (from sample plugin)

In scripts

@todo

For a complete example, please refer to the scripts/initData.js demo script

💲 package.json scrips

command description
Linters
yarn lint Run all linter in sequence
yarn lint:eslint Try to fix eslint errors
yarn lint:prettier Try to fix prettier errors
Tests
yarn test Run all tests in parallel
yarn test:tsc Run Typescript compiler (only output errors)
yarn test:eslint Run eslint in check mode
yarn test:prettier Run prettier in check mode
Git & Releases utils
yarn commit Git commit with prompt
yarn release Run release creation if test pass
yarn release:standard-version Create release from git commit history
Others
./scripts/empty-script.js Demo script

📦 docker utils

@todo

For a complete example, please refer to the Dockerfile and .docker folder

📅 Roadmap

See the roadmap project board for a list of proposed features (and known issues). Feel free to open a new discussion, this project aims to be collaborative!

🙋‍♂️ Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/amazing-feature)
  3. Commit your Changes (git commit -m 'feat(amazing-feature): add something amazing')
  4. Push to the Branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

:octocat: tip: try to use . keyboard shortcut on this repository (or shift+;)

License

Distributed under the MIT License. See LICENSE.md for more information.

Contact

digisquad.io - contact@digisquad.io

Acknowledgements