Conventions & best practices update

This commit is contained in:
Rafael Horvat
2022-03-29 14:08:12 +02:00
parent b308a07d8d
commit 9a0fe54c37
5 changed files with 96 additions and 48 deletions

View File

@@ -6,9 +6,33 @@ env:
NODE_VERSION: 16 NODE_VERSION: 16
jobs: jobs:
prettier:
name: Prettier
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Set up Node
uses: actions/setup-node@v2
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'yarn'
cache-dependency-path: js/yarn.lock
- name: Install JS dependencies
run: yarn install --immutable
working-directory: ./js
- name: Check JS formatting
run: yarn run format-check
working-directory: ./js
build-prod: build-prod:
name: Build and commit name: Build and commit
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [prettier]
# Only commit JS on push to master branch # Only commit JS on push to master branch
# Remember to change in `build-test` job too # Remember to change in `build-test` job too
@@ -38,6 +62,7 @@ jobs:
build-test: build-test:
name: Test build name: Test build
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [prettier]
# Inverse check of `build-prod` # Inverse check of `build-prod`
# Remember to change in `build-prod` job too # Remember to change in `build-prod` job too

View File

@@ -2,17 +2,20 @@
"name": "@glowingblue/redis-setup", "name": "@glowingblue/redis-setup",
"version": "0.0.0", "version": "0.0.0",
"private": true, "private": true,
"prettier": "@glowingblue-dev/prettier-config",
"dependencies": { "dependencies": {
"flarum-webpack-config": "^1.0.0", "flarum-webpack-config": "^1.0.0",
"webpack": "^4.26.0", "webpack": "^4.26.0",
"webpack-cli": "^4.9.1" "webpack-cli": "^4.9.2"
},
"devDependencies": {
"@glowingblue-dev/prettier-config": "^1.0.0",
"prettier": "^2.6.1"
}, },
"scripts": { "scripts": {
"dev": "webpack --mode development --watch", "dev": "webpack --mode development --watch",
"build": "webpack --mode production", "build": "webpack --mode production",
"lint": "prettier --single-quote --jsx-single-quote --trailing-comma es5 --print-width 100 --use-tabs --tab-width 4 --write src" "format": "prettier --write src",
}, "format-check": "prettier --check src"
"devDependencies": {
"prettier": "^2.3.0"
} }
} }

View File

@@ -1,7 +1,8 @@
/* /*
* This file is part of glowingblue/redis-setup. * This file is part of glowingblue/redis-setup-inactive.
* *
* Copyright (c) 2021 Ian Morland. * Copyright (c) 2022 Glowing Blue AG.
* Authors: Ian Morland, iPurpl3x, Rafael Horvat.
* *
* For the full copyright and license information, please view the LICENSE.md * For the full copyright and license information, please view the LICENSE.md
* file that was distributed with this source code. * file that was distributed with this source code.
@@ -10,26 +11,29 @@
import app from 'flarum/admin/app'; import app from 'flarum/admin/app';
import { extend } from 'flarum/common/extend'; import { extend } from 'flarum/common/extend';
import StatusWidget from 'flarum/admin/components/StatusWidget'; import StatusWidget from 'flarum/admin/components/StatusWidget';
import { slug } from '../common';
app.initializers.add('glowingblue-redis-setup', () => { // Make translation calls shorter
const t = app.translator.trans.bind(app.translator);
const prfx = `${slug}.admin.settings`;
app.initializers.add(slug, () => {
app.extensionData app.extensionData
.for('glowingblue-redis-setup') .for(slug)
.registerSetting({ .registerSetting({
setting: 'glowingblue-redis.enableCache', setting: 'glowingblue-redis.enableCache',
type: 'boolean', type: 'boolean',
label: app.translator.trans('glowingblue-redis-setup.admin.settings.enable_cache'), label: t(`${prfx}.enable_cache`),
}) })
.registerSetting({ .registerSetting({
setting: 'glowingblue-redis.redisSessions', setting: 'glowingblue-redis.redisSessions',
type: 'boolean', type: 'boolean',
label: app.translator.trans( label: t(`${prfx}.enable_redis_sessions`),
'glowingblue-redis-setup.admin.settings.enable_redis_sessions',
),
}) })
.registerSetting({ .registerSetting({
setting: 'glowingblue-redis.enableQueue', setting: 'glowingblue-redis.enableQueue',
type: 'boolean', type: 'boolean',
label: app.translator.trans('glowingblue-redis-setup.admin.settings.enable_queue'), label: t(`${prfx}.enable_queue`),
}); });
extend(StatusWidget.prototype, 'items', (items) => { extend(StatusWidget.prototype, 'items', (items) => {

11
js/src/common/index.js Normal file
View File

@@ -0,0 +1,11 @@
/*
* This file is part of glowingblue/redis-setup-inactive.
*
* Copyright (c) 2022 Glowing Blue AG.
* Authors: Rafael Horvat.
*
* For the full copyright and license information, please view the LICENSE.md
* file that was distributed with this source code.
*/
export const slug = 'glowingblue-redis-setup';

View File

@@ -988,6 +988,11 @@
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz#d5e0706cf8c6acd8c6032f8d54070af261bbbb2f" resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz#d5e0706cf8c6acd8c6032f8d54070af261bbbb2f"
integrity sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA== integrity sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==
"@glowingblue-dev/prettier-config@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@glowingblue-dev/prettier-config/-/prettier-config-1.0.0.tgz#fe2b56f2b901c1e7845fe0f8c4c498fba84981ba"
integrity sha512-HIy0ErL6Xs101nwpl/85NG0IfGNoDHTdasx4wYHKaeQU3C+b6AQEtBVI4dJtV7kdPpu1NzsXE91Dhgf9bR1R4Q==
"@polka/url@^1.0.0-next.20": "@polka/url@^1.0.0-next.20":
version "1.0.0-next.21" version "1.0.0-next.21"
resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1"
@@ -1143,22 +1148,22 @@
"@webassemblyjs/wast-parser" "1.9.0" "@webassemblyjs/wast-parser" "1.9.0"
"@xtuc/long" "4.2.2" "@xtuc/long" "4.2.2"
"@webpack-cli/configtest@^1.1.0": "@webpack-cli/configtest@^1.1.1":
version "1.1.0" version "1.1.1"
resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.1.0.tgz#8342bef0badfb7dfd3b576f2574ab80c725be043" resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.1.1.tgz#9f53b1b7946a6efc2a749095a4f450e2932e8356"
integrity sha512-ttOkEkoalEHa7RaFYpM0ErK1xc4twg3Am9hfHhL7MVqlHebnkYd2wuI/ZqTDj0cVzZho6PdinY0phFZV3O0Mzg== integrity sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==
"@webpack-cli/info@^1.4.0": "@webpack-cli/info@^1.4.1":
version "1.4.0" version "1.4.1"
resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.4.0.tgz#b9179c3227ab09cbbb149aa733475fcf99430223" resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.4.1.tgz#2360ea1710cbbb97ff156a3f0f24556e0fc1ebea"
integrity sha512-F6b+Man0rwE4n0409FyAJHStYA5OIZERxmnUfLVwv0mc0V1wLad3V7jqRlMkgKBeAq07jUvglacNaa6g9lOpuw== integrity sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==
dependencies: dependencies:
envinfo "^7.7.3" envinfo "^7.7.3"
"@webpack-cli/serve@^1.6.0": "@webpack-cli/serve@^1.6.1":
version "1.6.0" version "1.6.1"
resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.6.0.tgz#2c275aa05c895eccebbfc34cfb223c6e8bd591a2" resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.6.1.tgz#0de2875ac31b46b6c5bb1ae0a7d7f0ba5678dffe"
integrity sha512-ZkVeqEmRpBV2GHvjjUZqEai2PpUbuq8Bqd//vEYsp63J8WyexI8ppCqVS3Zs0QADf6aWuPdU+0XsPI647PVlQA== integrity sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==
"@xtuc/ieee754@^1.2.0": "@xtuc/ieee754@^1.2.0":
version "1.2.0" version "1.2.0"
@@ -3178,10 +3183,10 @@ posix-character-classes@^0.1.0:
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
prettier@^2.3.0: prettier@^2.6.1:
version "2.5.1" version "2.6.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.1.tgz#d472797e0d7461605c1609808e27b80c0f9cfe17"
integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== integrity sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A==
process-nextick-args@~2.0.0: process-nextick-args@~2.0.0:
version "2.0.1" version "2.0.1"
@@ -3970,15 +3975,15 @@ webpack-bundle-analyzer@^4.4.2:
sirv "^1.0.7" sirv "^1.0.7"
ws "^7.3.1" ws "^7.3.1"
webpack-cli@^4.9.1: webpack-cli@^4.9.2:
version "4.9.1" version "4.9.2"
resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.9.1.tgz#b64be825e2d1b130f285c314caa3b1ba9a4632b3" resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.9.2.tgz#77c1adaea020c3f9e2db8aad8ea78d235c83659d"
integrity sha512-JYRFVuyFpzDxMDB+v/nanUdQYcZtqFPGzmlW4s+UkPMFhSpfRNmf1z4AwYcHJVdvEFAM7FFCQdNTpsBYhDLusQ== integrity sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==
dependencies: dependencies:
"@discoveryjs/json-ext" "^0.5.0" "@discoveryjs/json-ext" "^0.5.0"
"@webpack-cli/configtest" "^1.1.0" "@webpack-cli/configtest" "^1.1.1"
"@webpack-cli/info" "^1.4.0" "@webpack-cli/info" "^1.4.1"
"@webpack-cli/serve" "^1.6.0" "@webpack-cli/serve" "^1.6.1"
colorette "^2.0.14" colorette "^2.0.14"
commander "^7.0.0" commander "^7.0.0"
execa "^5.0.0" execa "^5.0.0"