@jamtastic/directus-standardish
v0.9.0
Published
Shareable code standards for Directus extensions
Downloads
7
Maintainers
Readme
Directus Code Standard ish
Shareable linting configuration for Directus extension projects. Designed to follow standards used in the official project with some potentially controversial caveats (ergo, "-ish"):
No semi-colons 🫰[^dyslexic]
Tabs Spaces 😄[^dyslexic]
The following
@typescript/*rules are re-enabled or changed[^typescript]:no-explicit-anyno-var-requireno-non-null-assertionis set to"warn"(planned to set to error)ban-ts-comment
Prettier print width is set to
100since eslint will handle the absolute max width (lines of code really should not go past 100 characters, and especially not 120)Vue files have their
<script>and<style>tags indented to match the<template>tags[^dyslexic]Markdown prose no longer forcibly wraps (uses default value of
"preserve") - use your editors wrap features as forced wrapping is error proneAddition of more rules that are currently
undefined. They will be changed if the Directus project sets any of these rules.
[^typescript]: The Directus project already has these marked as for review and may eventually be the same as in this project anyway. Hopefully this is just getting ahead. [^dyslexic]: The primary contributor to this project is slightly dyslexic and these settings help them greatly.

Installation
Install the package in your Directus project:
$ npm install -D @jamtastic/directus-standardishConfigure your editor
Note: These instructions are VSCode specific.
Install the following extensions:
Add the following to your .vscode/settings.json file in your project:
{
"stylelint.validate": ["css", "less", "postcss", "vue"],
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[vue]": {
"editor.defaultFormatter": "octref.vetur"
},
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features"
}
}
Usage
Note: This process is done automatically for new extensions in @jamtastic/directus when using the
bunny newCLI command.
Add the following to your projects package.json file:
{
"scripts": {
"fix": "npm run fix:code && npm run fix:code && npm run fix:style",
"fix:code": "eslint",
"fix:format": "prettier",
"fix:style": "stylelint **/*.{vue,css,scss,sass}",
"lint": "npm run lint:code && npm run lint:code && npm run lint:style",
"lint:code": "eslint",
"lint:format": "prettier",
"lint:style": "stylelint **/*.{vue,css,scss,sass}"
},
// ...
"eslintConfig": {
"extends": "@jamtastic/eslint-config-directus"
},
"prettier": "@jamtastic/directus-standardish/prettier",
"stylelint": {
"extends": "@jamtastic/directus-standardish/stylelint"
}
}Other options
Using package.json is the recommended way to use these config files however you may also extend the configuration by following the docs for each linting tool.
Stylelint (in a .stylelintrc file):
extends:
- 'jamtastic/directus-standardish/stylelint'
rules: // your overrides here