- Use of jsconfig instead of tsconfig - jsconfig deployed with tooling, no need for CLI - ecmascript bumped to version es2022 (static properties) - prettierrc merged inside the eslintrc - add a few globals - cleanup package.json scripts - add script to lint/format only the diff (opposed to staged files) - bump up node packages versions - use eslint as cli instead of prettier-eslint, as eslint does provide parsable output for runbot. - add the typescrit types of libs as dependencies + main.d.ts to improve autompletion. This upgrade makes it easier to deploy and use the js tooling, as it is expected more and more people will use it if a lint check is added to the runbot. About the runbot: The commit gets the code ready to enable the lint on the runbot. It will lint the code with the same rules and same ignore file. The only difference is the runbot will check only the diff and not the entire commited file. The goal will be to progressively (and aggressively) whitelist modules to converge to a nice formatted codebase. closes odoo/odoo#105165 Related: odoo/enterprise#34048 Signed-off-by: Michaël Mattiello <mcm@odoo.com>
39 lines
1.3 KiB
Bash
Executable File
39 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
community=$(cd -- "$(dirname "$0")" &> /dev/null && cd ../../.. && pwd)
|
|
tooling="$community/addons/web/tooling"
|
|
testRealPath="$(realpath --relative-to=. "$tooling/hooks")"
|
|
if [[ $testRealPath == "" ]]; then
|
|
echo "Please install realpath"
|
|
exit 1
|
|
fi
|
|
|
|
refreshInDir () {
|
|
cd $1
|
|
cp "$tooling/_eslintignore" .eslintignore
|
|
cp "$tooling/_eslintrc.json" .eslintrc.json
|
|
cp "$tooling/_jsconfig.json" jsconfig.json
|
|
cp "$tooling/_package.json" package.json
|
|
cd - &> /dev/null
|
|
}
|
|
|
|
read -p "Refresh tooling in enterprise ? [y, n]" doEnterprise
|
|
if [[ $doEnterprise != "n" ]]; then
|
|
read -p "What is the relative path from community to enterprise ? (../enterprise)" pathToEnterprise
|
|
pathToEnterprise=${pathToEnterprise:-../enterprise}
|
|
pathToEnterprise=$(realpath $community/$pathToEnterprise)
|
|
fi
|
|
|
|
refreshInDir "$community"
|
|
|
|
if [[ $doEnterprise != "n" ]]
|
|
then
|
|
refreshInDir "$pathToEnterprise" copy
|
|
fi
|
|
|
|
echo ""
|
|
echo "The JS tooling config files have been refreshed"
|
|
echo "Make sure to refresh the eslint and typescript service and configure your IDE so it uses the config files"
|
|
echo 'For VSCode, look inside your .vscode/settings.json file ("editor.defaultFormatter": "dbaeumer.vscode-eslint")'
|
|
echo "If you still have issues, try doing a full reload instead which will reinstall the node modules"
|
|
echo ""
|