From 9a0fe54c3772a50e97b3b3b3ba38ac1bc6bf43e0 Mon Sep 17 00:00:00 2001 From: Rafael Horvat Date: Tue, 29 Mar 2022 14:08:12 +0200 Subject: [PATCH] Conventions & best practices update --- .github/workflows/js.yml | 25 ++++++++++++++++++++ js/package.json | 35 ++++++++++++++------------- js/src/admin/index.js | 22 ++++++++++------- js/src/common/index.js | 11 +++++++++ js/yarn.lock | 51 ++++++++++++++++++++++------------------ 5 files changed, 96 insertions(+), 48 deletions(-) create mode 100644 js/src/common/index.js diff --git a/.github/workflows/js.yml b/.github/workflows/js.yml index 29a7a2e..35cd5af 100644 --- a/.github/workflows/js.yml +++ b/.github/workflows/js.yml @@ -6,9 +6,33 @@ env: NODE_VERSION: 16 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: name: Build and commit runs-on: ubuntu-latest + needs: [prettier] # Only commit JS on push to master branch # Remember to change in `build-test` job too @@ -38,6 +62,7 @@ jobs: build-test: name: Test build runs-on: ubuntu-latest + needs: [prettier] # Inverse check of `build-prod` # Remember to change in `build-prod` job too diff --git a/js/package.json b/js/package.json index de5451d..50b4a22 100644 --- a/js/package.json +++ b/js/package.json @@ -1,18 +1,21 @@ { - "name": "@glowingblue/redis-setup", - "version": "0.0.0", - "private": true, - "dependencies": { - "flarum-webpack-config": "^1.0.0", - "webpack": "^4.26.0", - "webpack-cli": "^4.9.1" - }, - "scripts": { - "dev": "webpack --mode development --watch", - "build": "webpack --mode production", - "lint": "prettier --single-quote --jsx-single-quote --trailing-comma es5 --print-width 100 --use-tabs --tab-width 4 --write src" - }, - "devDependencies": { - "prettier": "^2.3.0" - } + "name": "@glowingblue/redis-setup", + "version": "0.0.0", + "private": true, + "prettier": "@glowingblue-dev/prettier-config", + "dependencies": { + "flarum-webpack-config": "^1.0.0", + "webpack": "^4.26.0", + "webpack-cli": "^4.9.2" + }, + "devDependencies": { + "@glowingblue-dev/prettier-config": "^1.0.0", + "prettier": "^2.6.1" + }, + "scripts": { + "dev": "webpack --mode development --watch", + "build": "webpack --mode production", + "format": "prettier --write src", + "format-check": "prettier --check src" + } } diff --git a/js/src/admin/index.js b/js/src/admin/index.js index 93b511e..18504bc 100644 --- a/js/src/admin/index.js +++ b/js/src/admin/index.js @@ -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 * file that was distributed with this source code. @@ -10,26 +11,29 @@ import app from 'flarum/admin/app'; import { extend } from 'flarum/common/extend'; 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 - .for('glowingblue-redis-setup') + .for(slug) .registerSetting({ setting: 'glowingblue-redis.enableCache', type: 'boolean', - label: app.translator.trans('glowingblue-redis-setup.admin.settings.enable_cache'), + label: t(`${prfx}.enable_cache`), }) .registerSetting({ setting: 'glowingblue-redis.redisSessions', type: 'boolean', - label: app.translator.trans( - 'glowingblue-redis-setup.admin.settings.enable_redis_sessions', - ), + label: t(`${prfx}.enable_redis_sessions`), }) .registerSetting({ setting: 'glowingblue-redis.enableQueue', type: 'boolean', - label: app.translator.trans('glowingblue-redis-setup.admin.settings.enable_queue'), + label: t(`${prfx}.enable_queue`), }); extend(StatusWidget.prototype, 'items', (items) => { diff --git a/js/src/common/index.js b/js/src/common/index.js new file mode 100644 index 0000000..779a951 --- /dev/null +++ b/js/src/common/index.js @@ -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'; diff --git a/js/yarn.lock b/js/yarn.lock index 0163f04..df7b460 100644 --- a/js/yarn.lock +++ b/js/yarn.lock @@ -988,6 +988,11 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz#d5e0706cf8c6acd8c6032f8d54070af261bbbb2f" 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": version "1.0.0-next.21" 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" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.1.0.tgz#8342bef0badfb7dfd3b576f2574ab80c725be043" - integrity sha512-ttOkEkoalEHa7RaFYpM0ErK1xc4twg3Am9hfHhL7MVqlHebnkYd2wuI/ZqTDj0cVzZho6PdinY0phFZV3O0Mzg== +"@webpack-cli/configtest@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.1.1.tgz#9f53b1b7946a6efc2a749095a4f450e2932e8356" + integrity sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg== -"@webpack-cli/info@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.4.0.tgz#b9179c3227ab09cbbb149aa733475fcf99430223" - integrity sha512-F6b+Man0rwE4n0409FyAJHStYA5OIZERxmnUfLVwv0mc0V1wLad3V7jqRlMkgKBeAq07jUvglacNaa6g9lOpuw== +"@webpack-cli/info@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.4.1.tgz#2360ea1710cbbb97ff156a3f0f24556e0fc1ebea" + integrity sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA== dependencies: envinfo "^7.7.3" -"@webpack-cli/serve@^1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.6.0.tgz#2c275aa05c895eccebbfc34cfb223c6e8bd591a2" - integrity sha512-ZkVeqEmRpBV2GHvjjUZqEai2PpUbuq8Bqd//vEYsp63J8WyexI8ppCqVS3Zs0QADf6aWuPdU+0XsPI647PVlQA== +"@webpack-cli/serve@^1.6.1": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.6.1.tgz#0de2875ac31b46b6c5bb1ae0a7d7f0ba5678dffe" + integrity sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw== "@xtuc/ieee754@^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" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -prettier@^2.3.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" - integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== +prettier@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.1.tgz#d472797e0d7461605c1609808e27b80c0f9cfe17" + integrity sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A== process-nextick-args@~2.0.0: version "2.0.1" @@ -3970,15 +3975,15 @@ webpack-bundle-analyzer@^4.4.2: sirv "^1.0.7" ws "^7.3.1" -webpack-cli@^4.9.1: - version "4.9.1" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.9.1.tgz#b64be825e2d1b130f285c314caa3b1ba9a4632b3" - integrity sha512-JYRFVuyFpzDxMDB+v/nanUdQYcZtqFPGzmlW4s+UkPMFhSpfRNmf1z4AwYcHJVdvEFAM7FFCQdNTpsBYhDLusQ== +webpack-cli@^4.9.2: + version "4.9.2" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.9.2.tgz#77c1adaea020c3f9e2db8aad8ea78d235c83659d" + integrity sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ== dependencies: "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^1.1.0" - "@webpack-cli/info" "^1.4.0" - "@webpack-cli/serve" "^1.6.0" + "@webpack-cli/configtest" "^1.1.1" + "@webpack-cli/info" "^1.4.1" + "@webpack-cli/serve" "^1.6.1" colorette "^2.0.14" commander "^7.0.0" execa "^5.0.0"