@raisenow/tamaro-cli 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/README.md +1 -0
  2. package/dist/cli.js +31 -10
  3. package/package.json +1 -1
  4. package/.history/.eslintignore_20220609190420 +0 -4
  5. package/.history/.eslintignore_20230911190227 +0 -6
  6. package/.history/.eslintignore_20230911211247 +0 -7
  7. package/.history/.eslintignore_20230911211250 +0 -7
  8. package/.history/.eslintrc_20230911201601.js +0 -49
  9. package/.history/.eslintrc_20230911201643.js +0 -49
  10. package/.history/.eslintrc_20230911201735.js +0 -49
  11. package/.history/.eslintrc_20230911201913.js +0 -64
  12. package/.history/.eslintrc_20230911202002.js +0 -62
  13. package/.history/.eslintrc_20230911202138.js +0 -133
  14. package/.history/.eslintrc_20230911202140.js +0 -133
  15. package/.history/.eslintrc_20230911202145.js +0 -133
  16. package/.history/.eslintrc_20230911202147.js +0 -133
  17. package/.history/.eslintrc_20230911202406.js +0 -133
  18. package/.history/.eslintrc_20230911202447.js +0 -133
  19. package/.history/.eslintrc_20230911202453.js +0 -133
  20. package/.history/.eslintrc_20230911202511.js +0 -133
  21. package/.history/.eslintrc_20230911202527.js +0 -133
  22. package/.history/.eslintrc_20230911202639.js +0 -125
  23. package/.history/.eslintrc_20230911202721.js +0 -149
  24. package/.history/.eslintrc_20230911202746.js +0 -149
  25. package/.history/.eslintrc_20240423125702.cjs +0 -148
  26. package/.history/.gitignore_20220609190420 +0 -14
  27. package/.history/.gitignore_20230911185959 +0 -4
  28. package/.history/.gitignore_20230911190006 +0 -4
  29. package/.history/.gitignore_20230911190007 +0 -4
  30. package/.history/.nmprc_20241004144025 +0 -0
  31. package/.history/.nmprc_20241004144041 +0 -1
  32. package/.history/.npmrc_20241004144040 +0 -1
  33. package/.history/.npmrc_20241004144152 +0 -1
  34. package/.history/.npmrc_20241004145639 +0 -2
  35. package/.history/.npmrc_20241004145649 +0 -1
  36. package/.history/.nvmrc_20250729181039 +0 -1
  37. package/.history/.prettierignore_20220609190420 +0 -5
  38. package/.history/.prettierignore_20230911190242 +0 -7
  39. package/.history/.prettierignore_20230911190245 +0 -7
  40. package/.history/.prettierignore_20230911211301 +0 -8
  41. package/.history/CHANGELOG_20250729195139.md +0 -28
  42. package/.history/CHANGELOG_20250729195148.md +0 -29
  43. package/.history/CHANGELOG_20250729195156.md +0 -28
  44. package/.history/CHANGELOG_20250729195218.md +0 -29
  45. package/.history/CHANGELOG_20250729195223.md +0 -27
  46. package/.history/CHANGELOG_20250729195506.md +0 -29
  47. package/.history/CHANGELOG_20250729224404.md +0 -30
  48. package/.history/CHANGELOG_20250729224411.md +0 -30
  49. package/.history/CHANGELOG_20250730124538.md +0 -41
  50. package/.history/CHANGELOG_20250730124603.md +0 -38
  51. package/.history/CHANGELOG_20250730124627.md +0 -36
  52. package/.history/CHANGELOG_20250730124638.md +0 -36
  53. package/.history/CHANGELOG_20250730124640.md +0 -36
  54. package/.history/README_20230911145033.md +0 -245
  55. package/.history/README_20230911151749.md +0 -245
  56. package/.history/README_20230911151844.md +0 -245
  57. package/.history/README_20230911153040.md +0 -245
  58. package/.history/README_20230911202959.md +0 -245
  59. package/.history/bitbucket-pipelines_20250729111540.yml +0 -46
  60. package/.history/bitbucket-pipelines_20250729210338.yml +0 -46
  61. package/.history/bitbucket-pipelines_20250729210340.yml +0 -46
  62. package/.history/bitbucket-pipelines_20250729210342.yml +0 -46
  63. package/.history/bitbucket-pipelines_20250729222234.yml +0 -47
  64. package/.history/bitbucket-pipelines_20250729222554.yml +0 -47
  65. package/.history/bitbucket-pipelines_20250729222555.yml +0 -47
  66. package/.history/bitbucket-pipelines_20250729223022.yml +0 -46
  67. package/.history/bitbucket-pipelines_20250729223024.yml +0 -46
  68. package/.history/cli_20241005014539 +0 -3
  69. package/.history/cli_20241005014542 +0 -3
  70. package/.history/cli_20241005014848 +0 -3
  71. package/.history/dist/chunk-FICM3HUI_20230912183408.js +0 -302
  72. package/.history/dist/chunk-FICM3HUI_20230912201610.js +0 -302
  73. package/.history/package_20250729182417.json +0 -111
  74. package/.history/package_20250729182419.json +0 -111
  75. package/.history/package_20250729182618.json +0 -110
  76. package/.history/package_20250729182834.json +0 -110
  77. package/.history/package_20250729183032.json +0 -110
  78. package/.history/package_20250729183033.json +0 -110
  79. package/.history/package_20250729185750.json +0 -110
  80. package/.history/package_20250729185815.json +0 -110
  81. package/.history/package_20250729185846.json +0 -110
  82. package/.history/package_20250729185854.json +0 -110
  83. package/.history/package_20250729185943.json +0 -110
  84. package/.history/package_20250729190645.json +0 -110
  85. package/.history/package_20250729195934.json +0 -110
  86. package/.history/package_20250729200013.json +0 -110
  87. package/.history/package_20250729200056.json +0 -110
  88. package/.history/package_20250729200434.json +0 -110
  89. package/.history/package_20250729200808.json +0 -110
  90. package/.history/package_20250729200944.json +0 -110
  91. package/.history/package_20250729214420.json +0 -114
  92. package/.history/package_20250729223112.json +0 -110
  93. package/.history/package_20250729223127.json +0 -110
  94. package/.history/package_20250729223134.json +0 -110
  95. package/.history/package_20250730124647.json +0 -114
  96. package/.history/tsconfig_20241005001442.json +0 -34
  97. package/.history/tsconfig_20241005001500.json +0 -34
  98. package/.history/tsconfig_20241005001540.json +0 -34
  99. package/.history/tsconfig_20241005014429.json +0 -42
  100. package/.history/tsconfig_20241005014436.json +0 -42
  101. package/.history/tsconfig_20241005014439.json +0 -38
  102. package/.history/tsconfig_20241005014455.json +0 -38
  103. package/.history/tsconfig_20241005014521.json +0 -38
  104. package/.history/vitest.config_20250729214539.ts +0 -0
  105. package/.history/vitest.config_20250729214659.ts +0 -24
  106. package/.history/vitest.config_20250729214748.ts +0 -21
  107. package/.history/vitest.config_20250729214825.ts +0 -21
  108. package/.history/vitest.config_20250729214902.ts +0 -21
  109. package/.history/vitest.config_20250729222125.ts +0 -20
  110. package/.history/vitest.config_20250729222213.ts +0 -20
  111. package/.idea/codeStyles/Project.xml +0 -131
  112. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  113. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  114. package/.idea/misc.xml +0 -17
  115. package/.idea/modules.xml +0 -8
  116. package/.idea/prettier.xml +0 -6
  117. package/.idea/tamaro-cli.iml +0 -12
  118. package/.idea/vcs.xml +0 -6
package/README.md CHANGED
@@ -112,6 +112,7 @@ Build an optimised (minified) bundle of _Tamaro Core_ or a customer configuratio
112
112
  - `--env <env>` – Environment (dev, stage, prod)
113
113
  - `--deploy` – Deploy _Tamaro Core_ or a customer configuration bundle to AWS S3
114
114
  - `--tag <tag>` – Tag which should be used for the deployment of the bundle (default: "latest")
115
+ - `--dryrun` – Displays the operations that would be performed using the specified command without actually running them.
115
116
 
116
117
  ### Build and deploy a customer configuration
117
118
 
package/dist/cli.js CHANGED
@@ -353,16 +353,21 @@ var deploy = async (options) => {
353
353
  await validate();
354
354
  awsAuthenticate(options);
355
355
  const flags = prepareFlags(options);
356
- const { tag } = options;
356
+ const { tag, dryrun } = options;
357
+ const dryRunFlag = dryrun ? `--dryrun` : "";
357
358
  const configName = ifCore(CORE_CONFIG_NAME, getWidgetUuid());
358
359
  const deployUrl = `s3://${AWS_S3_BUCKET_TAMARO}/${configName}/${tag}`;
359
360
  const entryFilename = ifCore("index.js", "widget.js");
361
+ if (dryRunFlag) {
362
+ logTitle("\u{1F9EA} DRY RUN MODE - No actual changes will be made \u{1F9EA}");
363
+ }
360
364
  const cmdSyncAll = `
361
365
  aws s3 sync ${paths.appDist} ${deployUrl}
362
366
  --acl public-read
363
367
  --exclude ${paths.appDist}/${entryFilename}
364
368
  --cache-control max-age=31536000
365
369
  ${flags}
370
+ ${dryRunFlag}
366
371
  `;
367
372
  logTitle("Deploying to AWS S3 \u2026");
368
373
  logCommand(cmdSyncAll);
@@ -376,6 +381,7 @@ var deploy = async (options) => {
376
381
  --acl public-read
377
382
  --cache-control max-age=64800
378
383
  ${flags}
384
+ ${dryRunFlag}
379
385
  `;
380
386
  logCommand(cmdCpEntry);
381
387
  try {
@@ -383,18 +389,20 @@ var deploy = async (options) => {
383
389
  } catch (error) {
384
390
  halt(error.stderr);
385
391
  }
386
- const cmdInvalidateCache = `
392
+ if (!dryRunFlag) {
393
+ const cmdInvalidateCache = `
387
394
  aws cloudfront create-invalidation
388
395
  --distribution-id ${AWS_CLOUDFRONT_DISTRIBUTION_ID}
389
396
  --paths /${configName}/${tag}/*
390
397
  ${flags}
391
398
  `;
392
- logTitle("\nInvalidating edge cache \u2026");
393
- logCommand(cmdInvalidateCache);
394
- try {
395
- runCommandSync(cmdInvalidateCache);
396
- } catch (error) {
397
- halt(error.stderr);
399
+ logTitle("\nInvalidating edge cache \u2026");
400
+ logCommand(cmdInvalidateCache);
401
+ try {
402
+ runCommandSync(cmdInvalidateCache);
403
+ } catch (error) {
404
+ halt(error.stderr);
405
+ }
398
406
  }
399
407
  const demoPage = `https://${AWS_S3_BUCKET_TAMARO}/${configName}/${tag}/index.html`;
400
408
  const entryPoint = `https://${AWS_S3_BUCKET_TAMARO}/${configName}/${tag}/${entryFilename}`;
@@ -461,13 +469,18 @@ var deployEmailConfig = async (options) => {
461
469
  await validate();
462
470
  awsAuthenticate(options);
463
471
  const flags = prepareFlags(options);
472
+ const dryRunFlag = options.dryrun ? `--dryrun` : "";
464
473
  const configName = getWidgetUuid();
465
474
  const deployUrl = `s3://${options.bucket}/${configName}`;
475
+ if (dryRunFlag) {
476
+ logTitle("\u{1F9EA} DRY RUN MODE - No actual changes will be made \u{1F9EA}");
477
+ }
466
478
  const cmd = `
467
479
  aws s3 sync ${emailConfigPath} ${deployUrl}
468
480
  --delete
469
481
  --exact-timestamps
470
482
  ${flags}
483
+ ${dryRunFlag}
471
484
  `;
472
485
  logTitle(
473
486
  `Deploying email configuration for "${configName}" customer configuration to AWS S3 \u2026`
@@ -701,7 +714,7 @@ var prepareFlags4 = async (options) => {
701
714
  // package.json
702
715
  var package_default = {
703
716
  name: "@raisenow/tamaro-cli",
704
- version: "1.3.0",
717
+ version: "1.4.0",
705
718
  author: {
706
719
  name: "RaiseNow",
707
720
  email: "development@raisenow.com"
@@ -875,6 +888,10 @@ cli.command("deploy").description(
875
888
  "--tag <tag>",
876
889
  "Tag which should be used for the deployment of the bundle",
877
890
  DEFAULT_TAG
891
+ ).option(
892
+ "--dryrun",
893
+ "Displays the operations that would be performed without actually running them",
894
+ false
878
895
  ).action(async (options) => {
879
896
  await deploy(options);
880
897
  });
@@ -886,7 +903,11 @@ cli.command("list-deployed").description(
886
903
  ).action(async (options) => {
887
904
  await listDeployed(options);
888
905
  });
889
- cli.command("deploy-email-config").description("Deploy a widget's email configuration to AWS S3").option("--profile <profile>", "AWS profile").option("--ci", "CI environment", false).option("--bucket <bucket>", "AWS bucket for email configs").action(async (options) => {
906
+ cli.command("deploy-email-config").description("Deploy a widget's email configuration to AWS S3").option("--profile <profile>", "AWS profile").option("--ci", "CI environment", false).option("--bucket <bucket>", "AWS bucket for email configs").option(
907
+ "--dryrun",
908
+ "Displays the operations that would be performed without actually running them",
909
+ false
910
+ ).action(async (options) => {
890
911
  await deployEmailConfig(options);
891
912
  });
892
913
  cli.command("validate").description(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raisenow/tamaro-cli",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "author": {
5
5
  "name": "RaiseNow",
6
6
  "email": "development@raisenow.com"
@@ -1,4 +0,0 @@
1
- dist
2
- node_modules
3
- tsconfig.eslint.json
4
- tsconfig.json
@@ -1,6 +0,0 @@
1
- .history
2
- .idea
3
- dist
4
- node_modules
5
- tsconfig.eslint.json
6
- tsconfig.json
@@ -1,7 +0,0 @@
1
- .history
2
- .idea
3
- dist
4
- node_modules
5
- pnpm-lock.yaml
6
- tsconfig.eslint.json
7
- tsconfig.json
@@ -1,7 +0,0 @@
1
- .history
2
- .idea
3
- dist
4
- node_modules
5
- pnpm-lock.yaml
6
- tsconfig.eslint.json
7
- tsconfig.json
@@ -1,49 +0,0 @@
1
- module.exports = {
2
- root: true,
3
- overrides: [
4
- {
5
- files: ['*.{js,jsx,ts,tsx}'],
6
- env: {
7
- browser: true,
8
- node: true,
9
- es2021: true,
10
- },
11
- },
12
- ],
13
-
14
- parser: '@typescript-eslint/parser',
15
- parserOptions: {
16
- ecmaFeatures: {
17
- jsx: true,
18
- },
19
- ecmaVersion: 2021,
20
- sourceType: 'module',
21
- tsconfigRootDir: __dirname,
22
- // project: './tsconfig.eslint.json',
23
- project: './tsconfig.json',
24
- extraFileExtensions: ['.cjs'],
25
- },
26
- extends: [
27
- 'eslint:recommended',
28
- 'plugin:promise/recommended',
29
- 'plugin:@typescript-eslint/recommended',
30
- 'plugin:@typescript-eslint/recommended-requiring-type-checking',
31
- 'prettier',
32
- ],
33
- plugins: [],
34
- rules: {
35
- curly: 1,
36
- 'prefer-const': 2,
37
- 'require-await': 0,
38
- '@typescript-eslint/ban-ts-comment': 0,
39
- '@typescript-eslint/no-explicit-any': 0,
40
- '@typescript-eslint/no-non-null-assertion': 0,
41
- '@typescript-eslint/prefer-optional-chain': 1,
42
- '@typescript-eslint/require-await': 0,
43
- '@typescript-eslint/no-unsafe-assignment': 0,
44
- '@typescript-eslint/no-unsafe-member-access': 0,
45
- '@typescript-eslint/no-unsafe-call': 0,
46
- '@typescript-eslint/no-unsafe-return': 0,
47
- '@typescript-eslint/no-unsafe-argument': 0,
48
- },
49
- }
@@ -1,49 +0,0 @@
1
- module.exports = {
2
- root: true,
3
- overrides: [
4
- {
5
- files: ['*.{js,jsx,ts,tsx}'],
6
- env: {
7
- browser: true,
8
- node: true,
9
- es2021: true,
10
- },
11
- },
12
- ],
13
-
14
- parser: '@typescript-eslint/parser',
15
- parserOptions: {
16
- ecmaFeatures: {
17
- jsx: true,
18
- },
19
- ecmaVersion: 2021,
20
- sourceType: 'module',
21
- tsconfigRootDir: __dirname,
22
- // project: './tsconfig.eslint.json',
23
- project: './tsconfig.json',
24
- extraFileExtensions: ['.cjs'],
25
- },
26
- extends: [
27
- 'eslint:recommended',
28
- 'plugin:promise/recommended',
29
- 'plugin:@typescript-eslint/recommended',
30
- 'plugin:@typescript-eslint/recommended-requiring-type-checking',
31
- 'prettier',
32
- ],
33
- plugins: [],
34
- rules: {
35
- curly: 1,
36
- 'prefer-const': 2,
37
- 'require-await': 0,
38
- '@typescript-eslint/ban-ts-comment': 0,
39
- '@typescript-eslint/no-explicit-any': 0,
40
- '@typescript-eslint/no-non-null-assertion': 0,
41
- '@typescript-eslint/prefer-optional-chain': 1,
42
- '@typescript-eslint/require-await': 0,
43
- '@typescript-eslint/no-unsafe-assignment': 0,
44
- '@typescript-eslint/no-unsafe-member-access': 0,
45
- '@typescript-eslint/no-unsafe-call': 0,
46
- '@typescript-eslint/no-unsafe-return': 0,
47
- '@typescript-eslint/no-unsafe-argument': 0,
48
- },
49
- }
@@ -1,49 +0,0 @@
1
- module.exports = {
2
- root: true,
3
- overrides: [
4
- {
5
- files: ['*.{js,jsx,ts,tsx}'],
6
- env: {
7
- browser: true,
8
- node: true,
9
- es2021: true,
10
- },
11
- },
12
- ],
13
-
14
- // parser: '@typescript-eslint/parser',
15
- // parserOptions: {
16
- // ecmaFeatures: {
17
- // jsx: true,
18
- // },
19
- // ecmaVersion: 2021,
20
- // sourceType: 'module',
21
- // tsconfigRootDir: __dirname,
22
- // // project: './tsconfig.eslint.json',
23
- // project: './tsconfig.json',
24
- // extraFileExtensions: ['.cjs'],
25
- // },
26
- // extends: [
27
- // 'eslint:recommended',
28
- // 'plugin:promise/recommended',
29
- // 'plugin:@typescript-eslint/recommended',
30
- // 'plugin:@typescript-eslint/recommended-requiring-type-checking',
31
- // 'prettier',
32
- // ],
33
- // plugins: [],
34
- // rules: {
35
- // curly: 1,
36
- // 'prefer-const': 2,
37
- // 'require-await': 0,
38
- // '@typescript-eslint/ban-ts-comment': 0,
39
- // '@typescript-eslint/no-explicit-any': 0,
40
- // '@typescript-eslint/no-non-null-assertion': 0,
41
- // '@typescript-eslint/prefer-optional-chain': 1,
42
- // '@typescript-eslint/require-await': 0,
43
- // '@typescript-eslint/no-unsafe-assignment': 0,
44
- // '@typescript-eslint/no-unsafe-member-access': 0,
45
- // '@typescript-eslint/no-unsafe-call': 0,
46
- // '@typescript-eslint/no-unsafe-return': 0,
47
- // '@typescript-eslint/no-unsafe-argument': 0,
48
- // },
49
- }
@@ -1,64 +0,0 @@
1
- module.exports = {
2
- root: true,
3
- overrides: [
4
- {
5
- files: ['*.{js,ts}'],
6
- env: {
7
- node: true,
8
- es2021: true,
9
- },
10
- settings: {
11
- 'import/resolver': {
12
- typescript: {
13
- alwaysTryTypes: true,
14
- project: ['./tsconfig.json'],
15
- },
16
- },
17
- },
18
- parser: '@typescript-eslint/parser',
19
- parserOptions: {
20
- ecmaVersion: 2021,
21
- sourceType: 'module',
22
- tsconfigRootDir: __dirname,
23
- project: ['./tsconfig.json'],
24
- },
25
- },
26
-
27
- ],
28
-
29
-
30
- // parserOptions: {
31
- // ecmaFeatures: {
32
- // jsx: true,
33
- // },
34
- // ecmaVersion: 2021,
35
- // sourceType: 'module',
36
- // tsconfigRootDir: __dirname,
37
- // // project: './tsconfig.eslint.json',
38
- // project: './tsconfig.json',
39
- // extraFileExtensions: ['.cjs'],
40
- // },
41
- // extends: [
42
- // 'eslint:recommended',
43
- // 'plugin:promise/recommended',
44
- // 'plugin:@typescript-eslint/recommended',
45
- // 'plugin:@typescript-eslint/recommended-requiring-type-checking',
46
- // 'prettier',
47
- // ],
48
- // plugins: [],
49
- // rules: {
50
- // curly: 1,
51
- // 'prefer-const': 2,
52
- // 'require-await': 0,
53
- // '@typescript-eslint/ban-ts-comment': 0,
54
- // '@typescript-eslint/no-explicit-any': 0,
55
- // '@typescript-eslint/no-non-null-assertion': 0,
56
- // '@typescript-eslint/prefer-optional-chain': 1,
57
- // '@typescript-eslint/require-await': 0,
58
- // '@typescript-eslint/no-unsafe-assignment': 0,
59
- // '@typescript-eslint/no-unsafe-member-access': 0,
60
- // '@typescript-eslint/no-unsafe-call': 0,
61
- // '@typescript-eslint/no-unsafe-return': 0,
62
- // '@typescript-eslint/no-unsafe-argument': 0,
63
- // },
64
- }
@@ -1,62 +0,0 @@
1
- module.exports = {
2
- root: true,
3
- overrides: [
4
- {
5
- files: ['*.{js,cjs,ts}'],
6
- env: {
7
- node: true,
8
- es2021: true,
9
- },
10
- settings: {
11
- 'import/resolver': {
12
- typescript: {
13
- alwaysTryTypes: true,
14
- project: ['./tsconfig.json'],
15
- },
16
- },
17
- },
18
- parser: '@typescript-eslint/parser',
19
- parserOptions: {
20
- ecmaVersion: 2021,
21
- sourceType: 'module',
22
- tsconfigRootDir: __dirname,
23
- project: ['./tsconfig.json'],
24
- extraFileExtensions: ['.cjs'],
25
- },
26
- },
27
-
28
- ],
29
-
30
-
31
- // parserOptions: {
32
- // ecmaFeatures: {
33
- // jsx: true,
34
- // },
35
-
36
- // project: './tsconfig.json',
37
- // extraFileExtensions: ['.cjs'],
38
- // },
39
- // extends: [
40
- // 'eslint:recommended',
41
- // 'plugin:promise/recommended',
42
- // 'plugin:@typescript-eslint/recommended',
43
- // 'plugin:@typescript-eslint/recommended-requiring-type-checking',
44
- // 'prettier',
45
- // ],
46
- // plugins: [],
47
- // rules: {
48
- // curly: 1,
49
- // 'prefer-const': 2,
50
- // 'require-await': 0,
51
- // '@typescript-eslint/ban-ts-comment': 0,
52
- // '@typescript-eslint/no-explicit-any': 0,
53
- // '@typescript-eslint/no-non-null-assertion': 0,
54
- // '@typescript-eslint/prefer-optional-chain': 1,
55
- // '@typescript-eslint/require-await': 0,
56
- // '@typescript-eslint/no-unsafe-assignment': 0,
57
- // '@typescript-eslint/no-unsafe-member-access': 0,
58
- // '@typescript-eslint/no-unsafe-call': 0,
59
- // '@typescript-eslint/no-unsafe-return': 0,
60
- // '@typescript-eslint/no-unsafe-argument': 0,
61
- // },
62
- }
@@ -1,133 +0,0 @@
1
- module.exports = {
2
- root: true,
3
- overrides: [
4
- {
5
- files: ['*.{js,cjs,ts}'],
6
- env: {
7
- node: true,
8
- es2021: true,
9
- },
10
- settings: {
11
- 'import/resolver': {
12
- typescript: {
13
- alwaysTryTypes: true,
14
- project: ['./tsconfig.json'],
15
- },
16
- },
17
- },
18
- parser: '@typescript-eslint/parser',
19
- parserOptions: {
20
- ecmaVersion: 2021,
21
- sourceType: 'module',
22
- tsconfigRootDir: __dirname,
23
- project: ['./tsconfig.json'],
24
- extraFileExtensions: ['.cjs'],
25
- },
26
- extends: [
27
- 'eslint:recommended',
28
- 'plugin:@typescript-eslint/recommended-requiring-type-checking',
29
- // 'plugin:@typescript-eslint/strict-type-checked',
30
- // 'plugin:@typescript-eslint/stylistic-type-checked',
31
- 'plugin:promise/recommended',
32
- 'plugin:deprecation/recommended',
33
- 'plugin:react/recommended',
34
- 'plugin:react-hooks/recommended',
35
- 'plugin:import/recommended',
36
- 'plugin:import/typescript',
37
- 'prettier',
38
- ],
39
- plugins: ['unused-imports'],
40
- rules: {
41
- curly: 1,
42
- 'prefer-const': 1,
43
- 'no-console': 1,
44
- strict: 1,
45
- 'no-debugger': 1,
46
-
47
- 'no-extra-boolean-cast': 0,
48
- '@typescript-eslint/no-explicit-any': 0,
49
- '@typescript-eslint/no-non-null-assertion': 0,
50
- '@typescript-eslint/no-unsafe-assignment': 0,
51
- '@typescript-eslint/no-unsafe-argument': 0,
52
- '@typescript-eslint/no-unsafe-member-access': 0,
53
- '@typescript-eslint/no-unsafe-return': 0,
54
- '@typescript-eslint/no-unsafe-enum-comparison': 0,
55
- '@typescript-eslint/no-unsafe-call': 0, // todo: remove this rule later
56
- '@typescript-eslint/explicit-function-return-type': 0,
57
- '@typescript-eslint/consistent-type-definitions': 0,
58
- '@typescript-eslint/no-dynamic-delete': 0,
59
-
60
- '@typescript-eslint/ban-ts-comment': [2, {'ts-expect-error': false}],
61
- '@typescript-eslint/no-unused-vars': [1, {varsIgnorePattern: '^_'}],
62
- '@typescript-eslint/prefer-optional-chain': 1,
63
- '@typescript-eslint/member-delimiter-style': [
64
- 1,
65
- {multiline: {delimiter: 'none'}},
66
- ],
67
-
68
- '@typescript-eslint/no-confusing-void-expression': [
69
- 2,
70
- {ignoreArrowShorthand: true},
71
- ],
72
-
73
- 'import/newline-after-import': 2,
74
-
75
- 'unused-imports/no-unused-imports': 1,
76
-
77
- '@typescript-eslint/consistent-type-imports': [
78
- 2,
79
- {
80
- prefer: 'type-imports',
81
- fixStyle: 'inline-type-imports',
82
- },
83
- ],
84
-
85
- 'sort-imports': [2, {ignoreCase: true, ignoreDeclarationSort: true}],
86
- 'import/order': [
87
- 2,
88
- {
89
- groups: [
90
- 'builtin',
91
- 'external',
92
- 'internal',
93
- ['parent', 'sibling', 'index'],
94
- ],
95
- // Put "react*" on top
96
- pathGroups: [
97
- {
98
- pattern: 'react*',
99
- group: 'external',
100
- position: 'before',
101
- },
102
- {
103
- pattern: '**/*.json',
104
- group: 'unknown',
105
- position: 'after',
106
- },
107
- {
108
- pattern: '**/*.yml',
109
- group: 'unknown',
110
- position: 'after',
111
- },
112
- ],
113
- distinctGroup: false,
114
- alphabetize: {
115
- order: 'asc',
116
- orderImportKind: 'asc',
117
- caseInsensitive: true,
118
- },
119
- 'newlines-between': 'never',
120
-
121
- // Since docs for "pathGroupsExcludedImportTypes" option are confusing,
122
- // see more info about how to correctly use it here:
123
- // https://github.com/import-js/eslint-plugin-import/pull/2156#issuecomment-927559466
124
- pathGroupsExcludedImportTypes: [],
125
- },
126
- ],
127
- },
128
- },
129
- {
130
-
131
- },
132
- ],
133
- }