From 9d12b715c7ab9f82f9188ac8fd1b273735322925 Mon Sep 17 00:00:00 2001 From: Alina Sireneva Date: Mon, 13 Nov 2023 13:24:42 +0300 Subject: [PATCH] chore: moved most configs to .config --- commitlint.config.js => .config/commitlint.js | 0 .eslintrc.ci.js => .config/eslint.ci.js | 2 +- .eslintrc.js => .config/eslint.cjs | 24 ++++++++++++- .config/husky/_/.gitignore | 1 + .config/husky/commit-msg | 4 +++ {.husky => .config/husky}/pre-commit | 2 +- .lintstagedrc.cjs => .config/lintstagedrc.cjs | 4 +-- .config/prettier.cjs | 35 +++++++++++++++++++ .config/tsconfig.build.json | 7 ++++ .../typedoc/config.base.cjs | 2 +- typedoc.cjs => .config/typedoc/config.cjs | 8 ++--- .../typedoc/plugin-external-links.cjs | 0 vite.config.mts => .config/vite.mts | 0 .eslintignore | 17 --------- .husky/commit-msg | 4 --- .prettierignore | 11 ------ .prettierrc | 19 ---------- package.json | 20 ++++++----- packages/client/typedoc.cjs | 2 +- packages/core/typedoc.cjs | 6 ++-- packages/crypto-node/typedoc.cjs | 2 +- packages/dispatcher/typedoc.cjs | 2 +- packages/file-id/typedoc.cjs | 2 +- packages/html-parser/typedoc.cjs | 2 +- packages/http-proxy/typedoc.cjs | 2 +- packages/i18n/typedoc.cjs | 2 +- packages/markdown-parser/typedoc.cjs | 2 +- packages/mtproxy/typedoc.cjs | 2 +- packages/node/typedoc.cjs | 2 +- packages/socks-proxy/typedoc.cjs | 2 +- packages/sqlite/typedoc.cjs | 2 +- packages/test/typedoc.cjs | 2 +- packages/tl-runtime/typedoc.cjs | 2 +- packages/tl-utils/typedoc.cjs | 2 +- packages/wasm/typedoc.cjs | 2 +- scripts/build-package.js | 2 +- scripts/find-updated-packages.js | 15 +++++--- tsconfig.build.json | 7 ---- 38 files changed, 122 insertions(+), 100 deletions(-) rename commitlint.config.js => .config/commitlint.js (100%) rename .eslintrc.ci.js => .config/eslint.ci.js (95%) rename .eslintrc.js => .config/eslint.cjs (95%) create mode 100644 .config/husky/_/.gitignore create mode 100755 .config/husky/commit-msg rename {.husky => .config/husky}/pre-commit (50%) rename .lintstagedrc.cjs => .config/lintstagedrc.cjs (84%) create mode 100644 .config/prettier.cjs create mode 100644 .config/tsconfig.build.json rename typedoc.base.cjs => .config/typedoc/config.base.cjs (89%) rename typedoc.cjs => .config/typedoc/config.cjs (59%) rename scripts/typedoc-external-links.cjs => .config/typedoc/plugin-external-links.cjs (100%) rename vite.config.mts => .config/vite.mts (100%) delete mode 100644 .eslintignore delete mode 100755 .husky/commit-msg delete mode 100644 .prettierignore delete mode 100644 .prettierrc delete mode 100644 tsconfig.build.json diff --git a/commitlint.config.js b/.config/commitlint.js similarity index 100% rename from commitlint.config.js rename to .config/commitlint.js diff --git a/.eslintrc.ci.js b/.config/eslint.ci.js similarity index 95% rename from .eslintrc.ci.js rename to .config/eslint.ci.js index ca76b17d..c7bbe2f9 100644 --- a/.eslintrc.ci.js +++ b/.config/eslint.ci.js @@ -1,4 +1,4 @@ -const baseConfig = require('./.eslintrc.js') +const baseConfig = require('./eslint.cjs') module.exports = { ...baseConfig, diff --git a/.eslintrc.js b/.config/eslint.cjs similarity index 95% rename from .eslintrc.js rename to .config/eslint.cjs index 29e199f6..f26e5229 100644 --- a/.eslintrc.js +++ b/.config/eslint.cjs @@ -169,7 +169,29 @@ module.exports = { 'import/no-default-export': 'error', 'no-console': ['error', { allow: ['warn', 'error'] }], }, - ignorePatterns: ['packages/client/utils.ts', 'packages/core/utils.ts'], + ignorePatterns: [ + 'node_modules/', + '.config/', + '.idea/', + '.vscode/', + + 'private/', + 'docs/', + 'dist/', + + '*.json', + + // codegen + 'packages/tl/binary/rsa-keys.js', + 'packages/tl/binary/reader.js', + 'packages/tl/binary/writer.js', + 'packages/tl/index.js', + 'packages/tl/index.d.ts', + 'packages/tl/*.json', + + 'packages/client/utils.ts', + 'packages/core/utils.ts' + ], overrides: [ { files: ['**/*.ts', '**/*.tsx'], diff --git a/.config/husky/_/.gitignore b/.config/husky/_/.gitignore new file mode 100644 index 00000000..2cebf5cc --- /dev/null +++ b/.config/husky/_/.gitignore @@ -0,0 +1 @@ +husky.sh diff --git a/.config/husky/commit-msg b/.config/husky/commit-msg new file mode 100755 index 00000000..468e4d59 --- /dev/null +++ b/.config/husky/commit-msg @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npx --no -- commitlint --edit ${1} --config .config/commitlint.js diff --git a/.husky/pre-commit b/.config/husky/pre-commit similarity index 50% rename from .husky/pre-commit rename to .config/husky/pre-commit index 58b1861c..07d28657 100755 --- a/.husky/pre-commit +++ b/.config/husky/pre-commit @@ -1,4 +1,4 @@ #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" -pnpm exec lint-staged +pnpm exec lint-staged -c .config/lint-stagedrc.cjs diff --git a/.lintstagedrc.cjs b/.config/lintstagedrc.cjs similarity index 84% rename from .lintstagedrc.cjs rename to .config/lintstagedrc.cjs index 027814cc..a2a4f7e7 100644 --- a/.lintstagedrc.cjs +++ b/.config/lintstagedrc.cjs @@ -1,7 +1,7 @@ const path = require('path') -const packagesDir = path.join(__dirname, 'packages') -const eslintCiConfig = path.join(__dirname, '.eslintrc.ci.js') +const packagesDir = path.join(__dirname, '../packages') +const eslintCiConfig = path.join(__dirname, 'eslintrc.ci.js') module.exports = { '*.{js,jsx,ts,tsx}': (filenames) => { diff --git a/.config/prettier.cjs b/.config/prettier.cjs new file mode 100644 index 00000000..616469ff --- /dev/null +++ b/.config/prettier.cjs @@ -0,0 +1,35 @@ +module.exports = { + arrowParens: 'always', + bracketSpacing: true, + embeddedLanguageFormatting: 'auto', + htmlWhitespaceSensitivity: 'css', + insertPragma: false, + jsxBracketSameLine: false, + jsxSingleQuote: false, + printWidth: 120, + proseWrap: 'preserve', + quoteProps: 'as-needed', + requirePragma: false, + semi: false, + singleQuote: true, + tabWidth: 4, + trailingComma: 'all', + useTabs: false, + vueIndentScriptAndStyle: false, + overrides: [ + { + files: [ + // codegen + 'packages/tl/binary/rsa-keys.js', + 'packages/tl/binary/reader.js', + 'packages/tl/binary/writer.js', + 'packages/tl/index.js', + 'packages/tl/*.json', + + '*.d.ts', + '**/dist' + ], + options: { requirePragma: true }, + } + ], +} diff --git a/.config/tsconfig.build.json b/.config/tsconfig.build.json new file mode 100644 index 00000000..9ad2904c --- /dev/null +++ b/.config/tsconfig.build.json @@ -0,0 +1,7 @@ +{ + "extends": "../tsconfig.json", + "exclude": [ + "**/*.test.ts", + "**/*.test-utils.ts" + ] +} diff --git a/typedoc.base.cjs b/.config/typedoc/config.base.cjs similarity index 89% rename from typedoc.base.cjs rename to .config/typedoc/config.base.cjs index 1c3ab6b9..44b6d6a4 100644 --- a/typedoc.base.cjs +++ b/.config/typedoc/config.base.cjs @@ -16,6 +16,6 @@ module.exports = { ], externalPattern: ['**/dist/**'], plugin: [ - './scripts/typedoc-external-links.cjs', + './plugin-external-links.cjs', ], } diff --git a/typedoc.cjs b/.config/typedoc/config.cjs similarity index 59% rename from typedoc.cjs rename to .config/typedoc/config.cjs index 0d51e4b4..c70df48b 100644 --- a/typedoc.cjs +++ b/.config/typedoc/config.cjs @@ -2,13 +2,13 @@ const fs = require('fs') const path = require('path') module.exports = { - ...require('./typedoc.base.cjs'), + ...require('./config.base.cjs'), name: 'mtcute', - out: './docs', + out: '../../docs', entryPoints: fs - .readdirSync(path.join(__dirname, 'packages')) + .readdirSync(path.join(__dirname, '../../packages')) .filter((it) => !['crypto', 'tl', 'create-bot'].includes(it)) - .map((it) => `packages/${it}`), + .map((it) => `../../packages/${it}`), entryPointStrategy: 'packages', // logLevel: 'Verbose', } diff --git a/scripts/typedoc-external-links.cjs b/.config/typedoc/plugin-external-links.cjs similarity index 100% rename from scripts/typedoc-external-links.cjs rename to .config/typedoc/plugin-external-links.cjs diff --git a/vite.config.mts b/.config/vite.mts similarity index 100% rename from vite.config.mts rename to .config/vite.mts diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index d1977361..00000000 --- a/.eslintignore +++ /dev/null @@ -1,17 +0,0 @@ -node_modules/ -.husky/ -.idea/ - -private/ -docs/ -dist/ - -*.json - -packages/tl/errors.js -packages/tl/errors.d.ts -packages/tl/index.js -packages/tl/index.d.ts -packages/tl/binary/reader.js -packages/tl/binary/writer.js -packages/tl/binary/rsa-keys.js diff --git a/.husky/commit-msg b/.husky/commit-msg deleted file mode 100755 index c160a771..00000000 --- a/.husky/commit-msg +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - -npx --no -- commitlint --edit ${1} diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index f10491ea..00000000 --- a/.prettierignore +++ /dev/null @@ -1,11 +0,0 @@ -# auto-generated files -src/tl/errors.d.ts -src/tl/errors.js -src/tl/keys.js -src/tl/types.d.ts -src/tl/types.js -src/tl/binary/reader.js -src/tl/binary/writer.js - -**/dist -*.d.ts diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 54a4d33d..00000000 --- a/.prettierrc +++ /dev/null @@ -1,19 +0,0 @@ -{ - "arrowParens": "always", - "bracketSpacing": true, - "embeddedLanguageFormatting": "auto", - "htmlWhitespaceSensitivity": "css", - "insertPragma": false, - "jsxBracketSameLine": false, - "jsxSingleQuote": false, - "printWidth": 120, - "proseWrap": "preserve", - "quoteProps": "as-needed", - "requirePragma": false, - "semi": false, - "singleQuote": true, - "tabWidth": 4, - "trailingComma": "all", - "useTabs": false, - "vueIndentScriptAndStyle": false -} diff --git a/package.json b/package.json index f4ea41e5..68bf4b90 100644 --- a/package.json +++ b/package.json @@ -6,22 +6,22 @@ "license": "MIT", "author": "Alina Sireneva ", "scripts": { - "prepare": "husky install", + "prepare": "husky install .config/husky", "postinstall": "node scripts/validate-deps-versions.mjs", - "test": "vitest run && pnpm run -r test", - "test:dev": "vitest watch", - "test:ui": "vitest --ui", - "test:coverage": "vitest run --coverage", - "test:ci": "vitest run --coverage.enabled --coverage.reporter=json", + "test": "vitest --config .config/vite.ts run && pnpm run -r test", + "test:dev": "vitest --config .config/vite.mts watch", + "test:ui": "vitest --config .config/vite.mts --ui", + "test:coverage": "vitest --config .config/vite.mts run --coverage", + "test:ci": "vitest --config .config/vite.mts run --coverage.enabled --coverage.reporter=json", "lint": "eslint .", - "lint:ci": "NODE_OPTIONS=\"--max_old_space_size=8192\" eslint --config .eslintrc.ci.js .", + "lint:ci": "NODE_OPTIONS=\\\"--max_old_space_size=8192\\\" eslint --config .config/eslint.ci.js .", "lint:tsc": "pnpm -r --parallel exec tsc --build", "lint:tsc:ci": "pnpm -r exec tsc --build", "lint:dpdm": "dpdm -T --no-warning --no-tree --exit-code circular:1 packages/*", "lint:fix": "eslint --fix .", "format": "prettier --write \"packages/**/*.ts\"", "publish-all": "node scripts/publish.js all", - "docs": "typedoc", + "docs": "typedoc --options .config/typedoc/config.cjs", "build-package": "node scripts/build-package.js" }, "dependencies": { @@ -57,5 +57,9 @@ "typescript": "5.0.4", "vite": "4.5.0", "vitest": "0.34.6" + }, + "prettier": "./.config/prettier.cjs", + "eslintConfig": { + "extends": "./.config/eslint.cjs" } } diff --git a/packages/client/typedoc.cjs b/packages/client/typedoc.cjs index 0e7446f0..8afba39c 100644 --- a/packages/client/typedoc.cjs +++ b/packages/client/typedoc.cjs @@ -1,5 +1,5 @@ module.exports = { - extends: ['../../typedoc.base.cjs'], + extends: ['../../.config/typedoc/config.base.cjs'], entryPoints: [ './src/index.ts', './src/utils/index.ts', diff --git a/packages/core/typedoc.cjs b/packages/core/typedoc.cjs index 29a85267..3431007a 100644 --- a/packages/core/typedoc.cjs +++ b/packages/core/typedoc.cjs @@ -1,10 +1,10 @@ module.exports = { - extends: ['../../typedoc.base.cjs'], + extends: ['../../.config/typedoc/config.base.cjs'], entryPoints: [ './src/index.ts', './src/utils/index.ts', - './src/utils/crypto/node-crypto.ts', - './src/utils/crypto/subtle.ts', + './src/utils/crypto/node.ts', + './src/utils/crypto/web.ts', './src/network/transports/tcp.ts', './src/network/transports/websocket.ts', ], diff --git a/packages/crypto-node/typedoc.cjs b/packages/crypto-node/typedoc.cjs index 84e0d8c2..c062faa9 100644 --- a/packages/crypto-node/typedoc.cjs +++ b/packages/crypto-node/typedoc.cjs @@ -1,4 +1,4 @@ module.exports = { - extends: ['../../typedoc.base.cjs'], + extends: ['../../.config/typedoc/config.base.cjs'], entryPoints: ['./src/index.ts'], } diff --git a/packages/dispatcher/typedoc.cjs b/packages/dispatcher/typedoc.cjs index 84e0d8c2..c062faa9 100644 --- a/packages/dispatcher/typedoc.cjs +++ b/packages/dispatcher/typedoc.cjs @@ -1,4 +1,4 @@ module.exports = { - extends: ['../../typedoc.base.cjs'], + extends: ['../../.config/typedoc/config.base.cjs'], entryPoints: ['./src/index.ts'], } diff --git a/packages/file-id/typedoc.cjs b/packages/file-id/typedoc.cjs index 84e0d8c2..c062faa9 100644 --- a/packages/file-id/typedoc.cjs +++ b/packages/file-id/typedoc.cjs @@ -1,4 +1,4 @@ module.exports = { - extends: ['../../typedoc.base.cjs'], + extends: ['../../.config/typedoc/config.base.cjs'], entryPoints: ['./src/index.ts'], } diff --git a/packages/html-parser/typedoc.cjs b/packages/html-parser/typedoc.cjs index 84e0d8c2..c062faa9 100644 --- a/packages/html-parser/typedoc.cjs +++ b/packages/html-parser/typedoc.cjs @@ -1,4 +1,4 @@ module.exports = { - extends: ['../../typedoc.base.cjs'], + extends: ['../../.config/typedoc/config.base.cjs'], entryPoints: ['./src/index.ts'], } diff --git a/packages/http-proxy/typedoc.cjs b/packages/http-proxy/typedoc.cjs index a276ab05..7082ca6f 100644 --- a/packages/http-proxy/typedoc.cjs +++ b/packages/http-proxy/typedoc.cjs @@ -1,4 +1,4 @@ module.exports = { - extends: ['../../typedoc.base.cjs'], + extends: ['../../.config/typedoc/config.base.cjs'], entryPoints: ['./index.ts'], } diff --git a/packages/i18n/typedoc.cjs b/packages/i18n/typedoc.cjs index 5acba841..f70dac58 100644 --- a/packages/i18n/typedoc.cjs +++ b/packages/i18n/typedoc.cjs @@ -1,5 +1,5 @@ module.exports = { - extends: ['../../typedoc.base.cjs'], + extends: ['../../.config/typedoc/config.base.cjs'], entryPoints: [ './src/index.ts', './src/plurals/*.ts', diff --git a/packages/markdown-parser/typedoc.cjs b/packages/markdown-parser/typedoc.cjs index 84e0d8c2..c062faa9 100644 --- a/packages/markdown-parser/typedoc.cjs +++ b/packages/markdown-parser/typedoc.cjs @@ -1,4 +1,4 @@ module.exports = { - extends: ['../../typedoc.base.cjs'], + extends: ['../../.config/typedoc/config.base.cjs'], entryPoints: ['./src/index.ts'], } diff --git a/packages/mtproxy/typedoc.cjs b/packages/mtproxy/typedoc.cjs index a276ab05..7082ca6f 100644 --- a/packages/mtproxy/typedoc.cjs +++ b/packages/mtproxy/typedoc.cjs @@ -1,4 +1,4 @@ module.exports = { - extends: ['../../typedoc.base.cjs'], + extends: ['../../.config/typedoc/config.base.cjs'], entryPoints: ['./index.ts'], } diff --git a/packages/node/typedoc.cjs b/packages/node/typedoc.cjs index 803aef46..1ba7965d 100644 --- a/packages/node/typedoc.cjs +++ b/packages/node/typedoc.cjs @@ -1,5 +1,5 @@ module.exports = { - extends: ['../../typedoc.base.cjs'], + extends: ['../../.config/typedoc/config.base.cjs'], entryPoints: ['./index.ts'], externalPattern: [ '../client/**', diff --git a/packages/socks-proxy/typedoc.cjs b/packages/socks-proxy/typedoc.cjs index a276ab05..7082ca6f 100644 --- a/packages/socks-proxy/typedoc.cjs +++ b/packages/socks-proxy/typedoc.cjs @@ -1,4 +1,4 @@ module.exports = { - extends: ['../../typedoc.base.cjs'], + extends: ['../../.config/typedoc/config.base.cjs'], entryPoints: ['./index.ts'], } diff --git a/packages/sqlite/typedoc.cjs b/packages/sqlite/typedoc.cjs index 84e0d8c2..c062faa9 100644 --- a/packages/sqlite/typedoc.cjs +++ b/packages/sqlite/typedoc.cjs @@ -1,4 +1,4 @@ module.exports = { - extends: ['../../typedoc.base.cjs'], + extends: ['../../.config/typedoc/config.base.cjs'], entryPoints: ['./src/index.ts'], } diff --git a/packages/test/typedoc.cjs b/packages/test/typedoc.cjs index 84e0d8c2..c062faa9 100644 --- a/packages/test/typedoc.cjs +++ b/packages/test/typedoc.cjs @@ -1,4 +1,4 @@ module.exports = { - extends: ['../../typedoc.base.cjs'], + extends: ['../../.config/typedoc/config.base.cjs'], entryPoints: ['./src/index.ts'], } diff --git a/packages/tl-runtime/typedoc.cjs b/packages/tl-runtime/typedoc.cjs index 52937666..6d4254e3 100644 --- a/packages/tl-runtime/typedoc.cjs +++ b/packages/tl-runtime/typedoc.cjs @@ -1,4 +1,4 @@ module.exports = { - extends: ['../../typedoc.base.cjs'], + extends: ['../../.config/typedoc/config.base.cjs'], entryPoints: ['./src'], } diff --git a/packages/tl-utils/typedoc.cjs b/packages/tl-utils/typedoc.cjs index 84e0d8c2..c062faa9 100644 --- a/packages/tl-utils/typedoc.cjs +++ b/packages/tl-utils/typedoc.cjs @@ -1,4 +1,4 @@ module.exports = { - extends: ['../../typedoc.base.cjs'], + extends: ['../../.config/typedoc/config.base.cjs'], entryPoints: ['./src/index.ts'], } diff --git a/packages/wasm/typedoc.cjs b/packages/wasm/typedoc.cjs index 84e0d8c2..c062faa9 100644 --- a/packages/wasm/typedoc.cjs +++ b/packages/wasm/typedoc.cjs @@ -1,4 +1,4 @@ module.exports = { - extends: ['../../typedoc.base.cjs'], + extends: ['../../.config/typedoc/config.base.cjs'], entryPoints: ['./src/index.ts'], } diff --git a/scripts/build-package.js b/scripts/build-package.js index 5d494d15..4909afeb 100644 --- a/scripts/build-package.js +++ b/scripts/build-package.js @@ -130,7 +130,7 @@ if (buildConfig.buildTs) { let tsconfig = fs.readFileSync(path.join(packageDir, 'tsconfig.backup.json'), 'utf-8') // what the fuck - tsconfig = tsconfig.replace(/(?<="extends": "\.\.\/\.\.\/)tsconfig\.json(?=",)/, 'tsconfig.build.json') + tsconfig = tsconfig.replace(/(?<="extends": "\.\.\/\.\.\/)tsconfig\.json(?=",)/, '.config/tsconfig.build.json') fs.writeFileSync(path.join(packageDir, 'tsconfig.json'), tsconfig) const restoreTsconfig = () => { diff --git a/scripts/find-updated-packages.js b/scripts/find-updated-packages.js index 424e930e..3355ade0 100644 --- a/scripts/find-updated-packages.js +++ b/scripts/find-updated-packages.js @@ -25,11 +25,18 @@ function getTsconfigFiles(pkg) { } function isMeaningfulChange(pkg, path) { - if (getTsconfigFiles(pkg).indexOf(path) > -1) return true - // some magic heuristics stuff - if (path.match(/\.(md|\.test\.ts)$/i)) return false - if (path.match(/^\/(scripts|dist|tests|private)/i)) return false + + if (path.match(/\.(md|test(?:-utils)?\.ts)$/i)) return false + + if (getTsconfigFiles(pkg).indexOf(path) > -1) { + console.log('[i] %s: %s is in tsconfig', pkg, path) + + return true + } + + if (path.match(/typedoc\.cjs$/i)) return false + if (path.match(/^(scripts|dist|tests|private)\//i)) return false console.log('[i] %s: %s is a meaningful change', pkg, path) diff --git a/tsconfig.build.json b/tsconfig.build.json deleted file mode 100644 index d9bff427..00000000 --- a/tsconfig.build.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "./tsconfig.json", - "exclude": [ - "**/*.test.ts", - "**/*.test-utils.ts", - ] -}