Skip to content

Commit 21e6dfe

Browse files
authored
Chores nov 19 (#89)
* fix broken builds on some linux machines * add depcheck to optimize dependencies (missing, unused, etc.) * fix #88
1 parent 49fc2fa commit 21e6dfe

File tree

5 files changed

+141
-4
lines changed

5 files changed

+141
-4
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"i18n:scan": "cross-env NODE_ENV=i18n yarn-or-npm transpile && yarn-or-npm i18next-scanner './build/transpiled/**/*.js' && yarn clean:transpiled",
1919
"link-react": "yarn-or-npm link react react-dom",
2020
"lint": "concurrently \"yarn-or-npm lint:js\" \"yarn-or-npm lint:css\"",
21-
"lint:js": "eslint src/**/*.{js,jsx,ts,tsx}",
21+
"lint:js": "eslint --ext .js,.jsx,.ts,.tsx src/",
2222
"lint:css": "stylelint src/**/*.css",
2323
"lint:deps": "depcruise -c .dependency-cruiser.js src/",
2424
"plop": "plop",
@@ -120,6 +120,7 @@
120120
"cross-spawn": "^7.0.1",
121121
"css-hot-loader": "^1.4.4",
122122
"css-loader": "^3.2.0",
123+
"depcheck": "^0.9.0",
123124
"dependency-cruiser": "^5.2.2",
124125
"eslint": "^6.6.0",
125126
"eslint-config-prettier": "^6.5.0",

scripts/build-ssr.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ const generateStaticHTML = async () => {
2727
try {
2828
// TODO: add try/wait/retry here instead of just generally waiting for 2000 ms
2929
await sleep(2000);
30-
const browser = await puppeteer.launch();
30+
const browser = await puppeteer.launch({
31+
args: ['--no-sandbox', '--disable-setuid-sandbox'],
32+
});
3133
const page = await browser.newPage();
3234
await page.goto(`${HOST}:${PORT}`);
3335
const pageContent = await page.content();

scripts/depcheck.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// TODO: this file is still WIP and is not properly configured yet
2+
import depcheck from 'depcheck';
3+
4+
const options = {
5+
ignoreBinPackage: false,
6+
skipMissing: false,
7+
ignoreDirs: ['dist', 'build'],
8+
ignoreMatches: [
9+
// a lot of false positives for dev tooling related packages
10+
'eslint-*',
11+
'stylelint-*',
12+
'@babel/*',
13+
'babel-*',
14+
'@types/*',
15+
'@typescript-eslint/*',
16+
// more false positives
17+
'husky',
18+
'lint-staged',
19+
'install-deps-postmerge',
20+
'style-loader',
21+
'@svgr/webpack',
22+
],
23+
parsers: {
24+
'*.js': depcheck.parser.es6,
25+
'*.jsx': depcheck.parser.jsx,
26+
'*.ts': depcheck.parser.typescript,
27+
'*.tsx': depcheck.parser.typescript,
28+
},
29+
detectors: [depcheck.detector.requireCallExpression, depcheck.detector.importDeclaration],
30+
specials: [depcheck.special.eslint, depcheck.special.webpack],
31+
};
32+
33+
depcheck(`${__dirname}/..`, options, (unused) => {
34+
// console.log(unused.dependencies); // an array containing the unused dependencies
35+
// console.log(unused.devDependencies); // an array containing the unused devDependencies
36+
// console.log(unused.missing); // a lookup containing the dependencies missing in `package.json` and where they are used
37+
// console.log(unused.using); // a lookup indicating each dependency is used by which files
38+
// console.log(unused.invalidFiles); // files that cannot access or parse
39+
// console.log(unused.invalidDirs); // directories that cannot access
40+
console.log(unused);
41+
});

src/server/lib/i18n/lokalise.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ export const writeFiles = async (data: string, targetFolder: string) => {
8282
const translationsBundle = path.join(getTempDir(), 'locales.zip');
8383

8484
// Extract translation files from zipfile to temp folder
85+
// eslint-disable-next-line security/detect-non-literal-fs-filename
8586
fs.writeFileSync(translationsBundle, data);
8687

8788
// Decompress downloaded translations into temp dir to extract translations into
@@ -92,13 +93,15 @@ export const writeFiles = async (data: string, targetFolder: string) => {
9293
const files = glob.sync(path.join(getTempDir(), '**/*.json'));
9394

9495
files.forEach((file) => {
96+
// eslint-disable-next-line security/detect-non-literal-fs-filename
9597
const fileContent = JSON.parse(fs.readFileSync(file, { encoding: 'utf-8' }));
9698
const locale = path.basename(file, '.json');
9799

98100
Object.entries(fileContent).forEach(([namespace, values]) => {
99101
mkdirp.sync(`${targetFolder}/${locale}`);
100102

101103
// write namespaced translations to locale/namespace.json in target folder
104+
// eslint-disable-next-line security/detect-non-literal-fs-filename
102105
fs.writeFileSync(
103106
`${targetFolder}/${locale}/${namespace}.json`,
104107
JSON.stringify(values),

yarn.lock

Lines changed: 92 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3348,6 +3348,11 @@ buffer@^5.2.1:
33483348
base64-js "^1.0.2"
33493349
ieee754 "^1.1.4"
33503350

3351+
builtin-modules@^3.0.0:
3352+
version "3.1.0"
3353+
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484"
3354+
integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==
3355+
33513356
builtin-status-codes@^3.0.0:
33523357
version "3.0.0"
33533358
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
@@ -4455,6 +4460,11 @@ dateformat@^2.0.0:
44554460
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062"
44564461
integrity sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=
44574462

4463+
de-indent@^1.0.2:
4464+
version "1.0.2"
4465+
resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
4466+
integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=
4467+
44584468
[email protected], debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9:
44594469
version "2.6.9"
44604470
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
@@ -4672,6 +4682,26 @@ delegates@^1.0.0:
46724682
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
46734683
integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
46744684

4685+
depcheck@^0.9.0:
4686+
version "0.9.0"
4687+
resolved "https://registry.yarnpkg.com/depcheck/-/depcheck-0.9.0.tgz#fab778e91908b5196d38a0fde45291495fc13c3b"
4688+
integrity sha512-YdFTkVXUsW7z+b72iQFWjXEs4+7mtGp40WsX6FW5W33WajkDh/peXqYTp7ds6+NlosSLpo1mOMOBj3Xd8csbzQ==
4689+
dependencies:
4690+
"@babel/parser" "^7.6.4"
4691+
"@babel/traverse" "^7.6.3"
4692+
builtin-modules "^3.0.0"
4693+
deps-regex "^0.1.4"
4694+
js-yaml "^3.4.2"
4695+
lodash "^4.17.15"
4696+
minimatch "^3.0.2"
4697+
node-sass-tilde-importer "^1.0.2"
4698+
please-upgrade-node "^3.2.0"
4699+
require-package-name "^2.0.1"
4700+
resolve "^1.12.0"
4701+
vue-template-compiler "^2.6.10"
4702+
walkdir "^0.4.1"
4703+
yargs "^14.2.0"
4704+
46754705
depd@~1.1.2:
46764706
version "1.1.2"
46774707
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
@@ -4705,6 +4735,11 @@ dependency-cruiser@^5.2.2:
47054735
tsconfig-paths-webpack-plugin "3.2.0"
47064736
wrap-ansi "6.1.0"
47074737

4738+
deps-regex@^0.1.4:
4739+
version "0.1.4"
4740+
resolved "https://registry.yarnpkg.com/deps-regex/-/deps-regex-0.1.4.tgz#518667b7691460a5e7e0a341be76eb7ce8090184"
4741+
integrity sha1-UYZnt2kUYKXn4KNBvnbrfOgJAYQ=
4742+
47084743
des.js@^1.0.0:
47094744
version "1.0.0"
47104745
resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"
@@ -5986,6 +6021,11 @@ find-cache-dir@^3.0.0:
59866021
make-dir "^3.0.0"
59876022
pkg-dir "^4.1.0"
59886023

6024+
find-parent-dir@^0.3.0:
6025+
version "0.3.0"
6026+
resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54"
6027+
integrity sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=
6028+
59896029
[email protected], find-up@^3.0.0:
59906030
version "3.0.0"
59916031
resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
@@ -6749,7 +6789,7 @@ [email protected]:
67496789
resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
67506790
integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0=
67516791

6752-
6792+
[email protected], he@^1.1.0:
67536793
version "1.2.0"
67546794
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
67556795
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
@@ -8212,7 +8252,7 @@ js-tokens@^3.0.2:
82128252
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
82138253
integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
82148254

8215-
js-yaml@^3.13.0, js-yaml@^3.13.1:
8255+
js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.4.2:
82168256
version "3.13.1"
82178257
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
82188258
integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
@@ -9506,6 +9546,13 @@ node-releases@^1.1.38:
95069546
dependencies:
95079547
semver "^6.3.0"
95089548

9549+
node-sass-tilde-importer@^1.0.2:
9550+
version "1.0.2"
9551+
resolved "https://registry.yarnpkg.com/node-sass-tilde-importer/-/node-sass-tilde-importer-1.0.2.tgz#1a15105c153f648323b4347693fdb0f331bad1ce"
9552+
integrity sha512-Swcmr38Y7uB78itQeBm3mThjxBy9/Ah/ykPIaURY/L6Nec9AyRoL/jJ7ECfMR+oZeCTVQNxVMu/aHU+TLRVbdg==
9553+
dependencies:
9554+
find-parent-dir "^0.3.0"
9555+
95099556
nodemon@^1.19.4:
95109557
version "1.19.4"
95119558
resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.19.4.tgz#56db5c607408e0fdf8920d2b444819af1aae0971"
@@ -11526,6 +11573,11 @@ require-main-filename@^2.0.0:
1152611573
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
1152711574
integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
1152811575

11576+
require-package-name@^2.0.1:
11577+
version "2.0.1"
11578+
resolved "https://registry.yarnpkg.com/require-package-name/-/require-package-name-2.0.1.tgz#c11e97276b65b8e2923f75dabf5fb2ef0c3841b9"
11579+
integrity sha1-wR6XJ2tluOKSP3Xav1+y7ww4Qbk=
11580+
1152911581
requires-port@^1.0.0:
1153011582
version "1.0.0"
1153111583
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
@@ -13627,6 +13679,14 @@ void-elements@^2.0.1:
1362713679
resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"
1362813680
integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=
1362913681

13682+
vue-template-compiler@^2.6.10:
13683+
version "2.6.10"
13684+
resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.10.tgz#323b4f3495f04faa3503337a82f5d6507799c9cc"
13685+
integrity sha512-jVZkw4/I/HT5ZMvRnhv78okGusqe0+qH2A0Em0Cp8aq78+NK9TII263CDVz2QXZsIT+yyV/gZc/j/vlwa+Epyg==
13686+
dependencies:
13687+
de-indent "^1.0.2"
13688+
he "^1.1.0"
13689+
1363013690
w3c-hr-time@^1.0.1:
1363113691
version "1.0.1"
1363213692
resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045"
@@ -13639,6 +13699,11 @@ wait-for-expect@^1.3.0:
1363913699
resolved "https://registry.yarnpkg.com/wait-for-expect/-/wait-for-expect-1.3.0.tgz#65241ce355425f907f5d127bdb5e72c412ff830c"
1364013700
integrity sha512-8fJU7jiA96HfGPt+P/UilelSAZfhMBJ52YhKzlmZQvKEZU2EcD1GQ0yqGB6liLdHjYtYAoGVigYwdxr5rktvzA==
1364113701

13702+
walkdir@^0.4.1:
13703+
version "0.4.1"
13704+
resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.4.1.tgz#dc119f83f4421df52e3061e514228a2db20afa39"
13705+
integrity sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==
13706+
1364213707
walker@^1.0.7, walker@~1.0.5:
1364313708
version "1.0.7"
1364413709
resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb"
@@ -14085,6 +14150,14 @@ yargs-parser@^13.1.0, yargs-parser@^13.1.1:
1408514150
camelcase "^5.0.0"
1408614151
decamelize "^1.2.0"
1408714152

14153+
yargs-parser@^15.0.0:
14154+
version "15.0.0"
14155+
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.0.tgz#cdd7a97490ec836195f59f3f4dbe5ea9e8f75f08"
14156+
integrity sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==
14157+
dependencies:
14158+
camelcase "^5.0.0"
14159+
decamelize "^1.2.0"
14160+
1408814161
[email protected], yargs@^12.0.5:
1408914162
version "12.0.5"
1409014163
resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"
@@ -14136,6 +14209,23 @@ yargs@^13.3.0:
1413614209
y18n "^4.0.0"
1413714210
yargs-parser "^13.1.1"
1413814211

14212+
yargs@^14.2.0:
14213+
version "14.2.0"
14214+
resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.0.tgz#f116a9242c4ed8668790b40759b4906c276e76c3"
14215+
integrity sha512-/is78VKbKs70bVZH7w4YaZea6xcJWOAwkhbR0CFuZBmYtfTYF0xjGJF43AYd8g2Uii1yJwmS5GR2vBmrc32sbg==
14216+
dependencies:
14217+
cliui "^5.0.0"
14218+
decamelize "^1.2.0"
14219+
find-up "^3.0.0"
14220+
get-caller-file "^2.0.1"
14221+
require-directory "^2.1.1"
14222+
require-main-filename "^2.0.0"
14223+
set-blocking "^2.0.0"
14224+
string-width "^3.0.0"
14225+
which-module "^2.0.0"
14226+
y18n "^4.0.0"
14227+
yargs-parser "^15.0.0"
14228+
1413914229
yarn-or-npm@^2.0.4:
1414014230
version "2.0.4"
1414114231
resolved "https://registry.yarnpkg.com/yarn-or-npm/-/yarn-or-npm-2.0.4.tgz#46e38aafce74c350e6c0cca72712fca7410fad98"

0 commit comments

Comments
 (0)