@camera.ui/cli 0.0.1 → 0.0.3
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.
- package/dist/commands/publish.js +3 -3
- package/dist/commands/publish.js.map +1 -1
- package/dist/utils/templates.js +13 -15
- package/dist/utils/templates.js.map +1 -1
- package/package.json +1 -1
- package/templates/base/cameraui.config.js +8 -0
- package/templates/base/editorconfig +15 -0
- package/templates/base/eslint.config.js +49 -0
- package/templates/base/gitignore +30 -0
- package/templates/base/npmignore +19 -0
- package/templates/base/prettierignore +10 -0
- package/templates/base/prettierrc.json +12 -0
- package/templates/base/src/index.js +40 -0
- package/templates/base/updates.config.js +3 -0
- package/templates/python/ruff.toml +90 -0
- package/templates/typescript/cameraui.config.ts +10 -0
- package/templates/typescript/eslint.config.js +89 -0
- package/templates/typescript/tsconfig.json +30 -0
package/dist/commands/publish.js
CHANGED
|
@@ -15,19 +15,19 @@ function validateBundle() {
|
|
|
15
15
|
try {
|
|
16
16
|
const packageJson = JSON.parse(readFileSync(packagePath, 'utf-8'));
|
|
17
17
|
if (!packageJson['camera.ui']?.bundled) {
|
|
18
|
-
logger.error('Bundle not found. Please run "
|
|
18
|
+
logger.error('Bundle not found. Please run "npm run bundle" first.');
|
|
19
19
|
return false;
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
catch {
|
|
23
|
-
logger.error('package.json not found. Please run "
|
|
23
|
+
logger.error('package.json not found. Please run "npm run bundle" first.');
|
|
24
24
|
return false;
|
|
25
25
|
}
|
|
26
26
|
try {
|
|
27
27
|
readFileSync(bundleZipPath);
|
|
28
28
|
}
|
|
29
29
|
catch {
|
|
30
|
-
logger.error('bundle.zip not found. Please run "
|
|
30
|
+
logger.error('bundle.zip not found. Please run "npm run bundle" first.');
|
|
31
31
|
return false;
|
|
32
32
|
}
|
|
33
33
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAI5C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACxD,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAExD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;gBACvC,MAAM,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/templates.js
CHANGED
|
@@ -7,24 +7,17 @@ import { copyPath } from './utils.js';
|
|
|
7
7
|
const __filename = fileURLToPath(import.meta.url);
|
|
8
8
|
const __dirname = dirname(__filename);
|
|
9
9
|
export async function createBaseFiles(targetDir, projectName, options) {
|
|
10
|
-
const baseFiles = [
|
|
11
|
-
|
|
12
|
-
'.npmignore',
|
|
13
|
-
'.editorconfig',
|
|
14
|
-
'README.md',
|
|
15
|
-
'LICENSE.md',
|
|
16
|
-
'CONTRIBUTING.md',
|
|
17
|
-
'CHANGELOG.md',
|
|
18
|
-
'SECURITY.md',
|
|
19
|
-
'config.schema.json',
|
|
20
|
-
'updates.config.js',
|
|
21
|
-
];
|
|
10
|
+
const baseFiles = ['README.md', 'LICENSE.md', 'CONTRIBUTING.md', 'CHANGELOG.md', 'SECURITY.md', 'config.schema.json', 'updates.config.js'];
|
|
11
|
+
const baseDotFiles = ['gitignore', 'npmignore', 'editorconfig'];
|
|
22
12
|
const javascriptFiles = ['cameraui.config.js'];
|
|
23
13
|
const typescriptFiles = ['cameraui.config.ts'];
|
|
24
14
|
const pythonFiles = [];
|
|
25
15
|
for (const file of baseFiles) {
|
|
26
16
|
await copyPath(__dirname, `../../templates/base/${file}`, targetDir, file);
|
|
27
17
|
}
|
|
18
|
+
for (const file of baseDotFiles) {
|
|
19
|
+
await copyPath(__dirname, `../../templates/base/${file}`, targetDir, `.${file}`);
|
|
20
|
+
}
|
|
28
21
|
if (options.language === 'javascript') {
|
|
29
22
|
for (const file of javascriptFiles) {
|
|
30
23
|
await copyPath(__dirname, `../../templates/base/${file}`, targetDir, file);
|
|
@@ -63,7 +56,8 @@ export function createPackageJson(projectName, options) {
|
|
|
63
56
|
};
|
|
64
57
|
if (options.quality) {
|
|
65
58
|
pJson.scripts.format = options.language === 'python' ? 'ruff format' : 'prettier --write "src/" --ignore-unknown --no-error-on-unmatched-pattern';
|
|
66
|
-
pJson.scripts.lint = options.language === 'python' ? 'ruff check
|
|
59
|
+
pJson.scripts.lint = options.language === 'python' ? 'ruff check' : 'eslint .';
|
|
60
|
+
pJson.scripts['lint:fix'] = options.language === 'python' ? 'ruff check --fix' : 'eslint --fix .';
|
|
67
61
|
pJson.scripts.bundle = 'npm run format && npm run lint';
|
|
68
62
|
}
|
|
69
63
|
if (options.language === 'typescript') {
|
|
@@ -123,14 +117,15 @@ export async function createTsConfig(targetDir) {
|
|
|
123
117
|
}
|
|
124
118
|
export async function createCodeQualityConfig(targetDir, options) {
|
|
125
119
|
const baseFiles = [];
|
|
120
|
+
const baseDotFiles = [];
|
|
126
121
|
const pythonFiles = [];
|
|
127
122
|
const typescriptFiles = [];
|
|
128
123
|
if (options.language === 'python') {
|
|
129
124
|
pythonFiles.push('ruff.toml');
|
|
130
125
|
}
|
|
131
126
|
else {
|
|
132
|
-
|
|
133
|
-
|
|
127
|
+
baseDotFiles.push('prettierrc.json');
|
|
128
|
+
baseDotFiles.push('prettierignore');
|
|
134
129
|
if (options.language === 'javascript') {
|
|
135
130
|
baseFiles.push('eslint.config.js');
|
|
136
131
|
}
|
|
@@ -141,6 +136,9 @@ export async function createCodeQualityConfig(targetDir, options) {
|
|
|
141
136
|
for (const file of baseFiles) {
|
|
142
137
|
await copyPath(__dirname, `../../templates/base/${file}`, targetDir, file);
|
|
143
138
|
}
|
|
139
|
+
for (const file of baseDotFiles) {
|
|
140
|
+
await copyPath(__dirname, `../../templates/base/${file}`, targetDir, `.${file}`);
|
|
141
|
+
}
|
|
144
142
|
for (const file of pythonFiles) {
|
|
145
143
|
await copyPath(__dirname, `../../templates/python/${file}`, targetDir, file);
|
|
146
144
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,SAAiB,EAAE,WAAmB,EAAE,OAAsB;IAClG,MAAM,SAAS,GAAG
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
root = true
|
|
2
|
+
|
|
3
|
+
[*]
|
|
4
|
+
# Change these settings to your own preference
|
|
5
|
+
indent_style = space
|
|
6
|
+
indent_size = 2
|
|
7
|
+
|
|
8
|
+
# I recommend you to keep these unchanged
|
|
9
|
+
end_of_line = lf
|
|
10
|
+
charset = utf-8
|
|
11
|
+
trim_trailing_whitespace = true
|
|
12
|
+
insert_final_newline = true
|
|
13
|
+
|
|
14
|
+
[*.md]
|
|
15
|
+
trim_trailing_whitespace = false
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import jsLint from '@eslint/js';
|
|
2
|
+
import stylistic from '@stylistic/eslint-plugin';
|
|
3
|
+
import globals from 'globals';
|
|
4
|
+
|
|
5
|
+
export default [
|
|
6
|
+
{
|
|
7
|
+
files: ['**/*.{js,mjs,cjs,ts,mts}'],
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
ignores: ['**/dist/**', '**/node_modules/**', '**/public/**', '**/build/**', '**/bundle/**', '**/test/**', '**/wasm/**', '**/example/**'],
|
|
11
|
+
},
|
|
12
|
+
jsLint.configs.recommended,
|
|
13
|
+
stylistic.configs['disable-legacy'],
|
|
14
|
+
stylistic.configs.customize({
|
|
15
|
+
indent: 2,
|
|
16
|
+
quotes: 'single',
|
|
17
|
+
semi: true,
|
|
18
|
+
commaDangle: 'always-multiline',
|
|
19
|
+
jsx: false,
|
|
20
|
+
arrowParens: true,
|
|
21
|
+
braceStyle: '1tbs',
|
|
22
|
+
blockSpacing: true,
|
|
23
|
+
quoteProps: 'as-needed',
|
|
24
|
+
}),
|
|
25
|
+
{
|
|
26
|
+
languageOptions: {
|
|
27
|
+
globals: { ...globals.node },
|
|
28
|
+
},
|
|
29
|
+
|
|
30
|
+
rules: {
|
|
31
|
+
// Stylistic specific rules
|
|
32
|
+
'@stylistic/max-len': ['error', { code: 170, tabWidth: 2 }],
|
|
33
|
+
'@stylistic/quotes': ['error', 'single', { avoidEscape: true }],
|
|
34
|
+
'@stylistic/operator-linebreak': 'off',
|
|
35
|
+
|
|
36
|
+
semi: [1, 'always'],
|
|
37
|
+
// quotes: ['error', 'single'],
|
|
38
|
+
'comma-dangle': ['error', 'only-multiline'],
|
|
39
|
+
'no-multiple-empty-lines': ['warn', { max: 1, maxEOF: 0 }],
|
|
40
|
+
'eol-last': ['error', 'always'],
|
|
41
|
+
'space-before-function-paren': ['error', { named: 'never' }],
|
|
42
|
+
|
|
43
|
+
'no-unused-vars': 'off',
|
|
44
|
+
'no-case-declarations': 'off',
|
|
45
|
+
'no-async-promise-executor': 'off',
|
|
46
|
+
'no-control-regex': 'off',
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
];
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Logs
|
|
2
|
+
logs
|
|
3
|
+
*.log
|
|
4
|
+
npm-debug.log*
|
|
5
|
+
yarn-debug.log*
|
|
6
|
+
yarn-error.log*
|
|
7
|
+
pnpm-debug.log*
|
|
8
|
+
lerna-debug.log*
|
|
9
|
+
|
|
10
|
+
node_modules
|
|
11
|
+
.DS_Store
|
|
12
|
+
dist
|
|
13
|
+
bundle
|
|
14
|
+
coverage
|
|
15
|
+
*.local
|
|
16
|
+
test
|
|
17
|
+
__pycache__
|
|
18
|
+
.dockerignore
|
|
19
|
+
python-*
|
|
20
|
+
requirements.dev.txt
|
|
21
|
+
requirements-lock.txt
|
|
22
|
+
|
|
23
|
+
.idea
|
|
24
|
+
*.suo
|
|
25
|
+
*.ntvs*
|
|
26
|
+
*.njsproj
|
|
27
|
+
*.sln
|
|
28
|
+
*.sw?
|
|
29
|
+
*.egg-info
|
|
30
|
+
.venv
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
.editorconfig
|
|
2
|
+
.eslintignore
|
|
3
|
+
.eslintrc.*
|
|
4
|
+
eslint.config.*
|
|
5
|
+
.gitignore
|
|
6
|
+
.npmignore
|
|
7
|
+
.prettierignore
|
|
8
|
+
.prettierrc.*
|
|
9
|
+
tsconfig.json
|
|
10
|
+
updates.config.*
|
|
11
|
+
cameraui.config.*
|
|
12
|
+
ruff.toml
|
|
13
|
+
|
|
14
|
+
node_modules
|
|
15
|
+
.github
|
|
16
|
+
.vscode
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
src
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json.schemastore.org/prettierrc",
|
|
3
|
+
"semi": true,
|
|
4
|
+
"tabWidth": 2,
|
|
5
|
+
"singleQuote": true,
|
|
6
|
+
"printWidth": 170,
|
|
7
|
+
"trailingComma": "all",
|
|
8
|
+
"arrowParens": "always",
|
|
9
|
+
"endOfLine": "auto",
|
|
10
|
+
"bracketSpacing": true,
|
|
11
|
+
"quoteProps": "as-needed"
|
|
12
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export default class SamplePlugin {
|
|
2
|
+
constructor(logger, api) {
|
|
3
|
+
this.logger = logger;
|
|
4
|
+
this.api = api;
|
|
5
|
+
|
|
6
|
+
this.camera = new Map();
|
|
7
|
+
|
|
8
|
+
this.api.on('finishLaunching', this.start.bind(this));
|
|
9
|
+
this.api.on('shutdown', this.stop.bind(this));
|
|
10
|
+
|
|
11
|
+
this.api.deviceManager.on('cameraSelected', (cameraDevice) => {
|
|
12
|
+
this.logger.log('Camera selected:', cameraDevice.name);
|
|
13
|
+
|
|
14
|
+
if (!this.cameras.has(cameraDevice.id)) {
|
|
15
|
+
this.cameras.set(cameraDevice.id, cameraDevice);
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
this.api.deviceManager.on('cameraDeselected', (cameraId) => {
|
|
20
|
+
const cameraDevice = this.cameras.get(cameraId);
|
|
21
|
+
if (cameraDevice) {
|
|
22
|
+
this.logger.log('Camera deselected:', cameraDevice.name);
|
|
23
|
+
this.cameras.delete(cameraId);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
configureCameras() {}
|
|
29
|
+
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
31
|
+
async onFormSubmit(actionId, payload) {}
|
|
32
|
+
|
|
33
|
+
async start() {
|
|
34
|
+
this.logger.log('Plugin started');
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
stop() {
|
|
38
|
+
this.logger.log('Plugin stopped');
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Exclude a variety of commonly ignored directories.
|
|
2
|
+
exclude = [
|
|
3
|
+
".bzr",
|
|
4
|
+
".direnv",
|
|
5
|
+
".eggs",
|
|
6
|
+
".git",
|
|
7
|
+
".git-rewrite",
|
|
8
|
+
".hg",
|
|
9
|
+
".ipynb_checkpoints",
|
|
10
|
+
".mypy_cache",
|
|
11
|
+
".nox",
|
|
12
|
+
".pants.d",
|
|
13
|
+
".pyenv",
|
|
14
|
+
".pytest_cache",
|
|
15
|
+
".pytype",
|
|
16
|
+
".ruff_cache",
|
|
17
|
+
".svn",
|
|
18
|
+
".tox",
|
|
19
|
+
".venv",
|
|
20
|
+
".vscode",
|
|
21
|
+
"__pypackages__",
|
|
22
|
+
"_build",
|
|
23
|
+
"buck-out",
|
|
24
|
+
"build",
|
|
25
|
+
"dist",
|
|
26
|
+
"node_modules",
|
|
27
|
+
"site-packages",
|
|
28
|
+
"venv",
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
# Same as Black.
|
|
32
|
+
line-length = 110
|
|
33
|
+
indent-width = 4
|
|
34
|
+
|
|
35
|
+
# Assume Python 3.8
|
|
36
|
+
target-version = "py39"
|
|
37
|
+
|
|
38
|
+
[lint]
|
|
39
|
+
# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default.
|
|
40
|
+
# Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or
|
|
41
|
+
# McCabe complexity (`C901`) by default.
|
|
42
|
+
select = [
|
|
43
|
+
# pycodestyle
|
|
44
|
+
"E",
|
|
45
|
+
# Pyflakes
|
|
46
|
+
"F",
|
|
47
|
+
# pyupgrade
|
|
48
|
+
"UP",
|
|
49
|
+
# flake8-bugbear
|
|
50
|
+
"B",
|
|
51
|
+
# flake8-simplify
|
|
52
|
+
"SIM",
|
|
53
|
+
# isort
|
|
54
|
+
"I",
|
|
55
|
+
]
|
|
56
|
+
ignore = ["E501", "B023", "B006"]
|
|
57
|
+
|
|
58
|
+
# Allow fix for all enabled rules (when `--fix`) is provided.
|
|
59
|
+
fixable = ["ALL"]
|
|
60
|
+
unfixable = []
|
|
61
|
+
|
|
62
|
+
# Allow unused variables when underscore-prefixed.
|
|
63
|
+
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
|
64
|
+
|
|
65
|
+
[format]
|
|
66
|
+
# Like Black, use double quotes for strings.
|
|
67
|
+
quote-style = "double"
|
|
68
|
+
|
|
69
|
+
# Like Black, indent with spaces, rather than tabs.
|
|
70
|
+
indent-style = "space"
|
|
71
|
+
|
|
72
|
+
# Like Black, respect magic trailing commas.
|
|
73
|
+
skip-magic-trailing-comma = false
|
|
74
|
+
|
|
75
|
+
# Like Black, automatically detect the appropriate line ending.
|
|
76
|
+
line-ending = "auto"
|
|
77
|
+
|
|
78
|
+
# Enable auto-formatting of code examples in docstrings. Markdown,
|
|
79
|
+
# reStructuredText code/literal blocks and doctests are all supported.
|
|
80
|
+
#
|
|
81
|
+
# This is currently disabled by default, but it is planned for this
|
|
82
|
+
# to be opt-out in the future.
|
|
83
|
+
docstring-code-format = true
|
|
84
|
+
|
|
85
|
+
# Set the line length limit used when formatting code snippets in
|
|
86
|
+
# docstrings.
|
|
87
|
+
#
|
|
88
|
+
# This only has an effect when the `docstring-code-format` setting is
|
|
89
|
+
# enabled.
|
|
90
|
+
docstring-code-line-length = "dynamic"
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import jsLint from '@eslint/js';
|
|
2
|
+
import stylistic from '@stylistic/eslint-plugin';
|
|
3
|
+
import tsParser from '@typescript-eslint/parser';
|
|
4
|
+
import globals from 'globals';
|
|
5
|
+
import tsLint from 'typescript-eslint';
|
|
6
|
+
|
|
7
|
+
export default [
|
|
8
|
+
{
|
|
9
|
+
files: ['**/*.{js,mjs,cjs,ts,mts}'],
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
ignores: ['**/dist/**', '**/node_modules/**', '**/public/**', '**/build/**', '**/bundle/**', '**/test/**', '**/wasm/**', '**/example/**'],
|
|
13
|
+
},
|
|
14
|
+
jsLint.configs.recommended,
|
|
15
|
+
// ...tsLint.configs.recommended,
|
|
16
|
+
...tsLint.configs.recommendedTypeChecked,
|
|
17
|
+
...tsLint.configs.stylisticTypeChecked,
|
|
18
|
+
stylistic.configs['disable-legacy'],
|
|
19
|
+
stylistic.configs.customize({
|
|
20
|
+
indent: 2,
|
|
21
|
+
quotes: 'single',
|
|
22
|
+
semi: true,
|
|
23
|
+
commaDangle: 'always-multiline',
|
|
24
|
+
jsx: false,
|
|
25
|
+
arrowParens: true,
|
|
26
|
+
braceStyle: '1tbs',
|
|
27
|
+
blockSpacing: true,
|
|
28
|
+
quoteProps: 'as-needed',
|
|
29
|
+
}),
|
|
30
|
+
{
|
|
31
|
+
languageOptions: {
|
|
32
|
+
globals: { ...globals.node },
|
|
33
|
+
parser: tsParser,
|
|
34
|
+
parserOptions: {
|
|
35
|
+
projectService: true,
|
|
36
|
+
tsconfigRootDir: import.meta.dirname,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
|
|
40
|
+
rules: {
|
|
41
|
+
// TypeScript specific rules
|
|
42
|
+
'@typescript-eslint/consistent-type-imports': 'error',
|
|
43
|
+
'@typescript-eslint/await-thenable': 'error',
|
|
44
|
+
'@typescript-eslint/no-explicit-any': 'off',
|
|
45
|
+
'@typescript-eslint/no-unused-vars': ['error'],
|
|
46
|
+
'@typescript-eslint/no-unsafe-assignment': 'off',
|
|
47
|
+
'@typescript-eslint/no-unsafe-member-access': 'off',
|
|
48
|
+
'@typescript-eslint/no-unsafe-argument': 'off',
|
|
49
|
+
'@typescript-eslint/no-unsafe-return': 'off',
|
|
50
|
+
'@typescript-eslint/require-await': 'off',
|
|
51
|
+
'@typescript-eslint/no-floating-promises': 'off',
|
|
52
|
+
'@typescript-eslint/prefer-promise-reject-errors': 'off',
|
|
53
|
+
'@typescript-eslint/no-misused-promises': 'off',
|
|
54
|
+
'@typescript-eslint/ban-ts-comment': 'off',
|
|
55
|
+
'@typescript-eslint/no-empty-function': 'off',
|
|
56
|
+
'@typescript-eslint/restrict-template-expressions': 'off',
|
|
57
|
+
'@typescript-eslint/no-unsafe-call': 'off',
|
|
58
|
+
'@typescript-eslint/no-empty-object-type': 'off',
|
|
59
|
+
'@typescript-eslint/no-unsafe-function-type': 'off',
|
|
60
|
+
'@typescript-eslint/no-unsafe-declaration-merging': 'off',
|
|
61
|
+
'@typescript-eslint/prefer-for-of': 'off',
|
|
62
|
+
'@typescript-eslint/prefer-find': 'off',
|
|
63
|
+
'@typescript-eslint/no-require-imports': 'off',
|
|
64
|
+
'@typescript-eslint/no-redundant-type-constituents': 'off',
|
|
65
|
+
'@typescript-eslint/no-namespace': 'off',
|
|
66
|
+
|
|
67
|
+
// Stylistic specific rules
|
|
68
|
+
'@stylistic/max-len': ['error', { code: 170, tabWidth: 2 }],
|
|
69
|
+
'@stylistic/quotes': ['error', 'single', { avoidEscape: true }],
|
|
70
|
+
'@stylistic/operator-linebreak': 'off',
|
|
71
|
+
|
|
72
|
+
semi: [1, 'always'],
|
|
73
|
+
// quotes: ['error', 'single'],
|
|
74
|
+
'comma-dangle': ['error', 'only-multiline'],
|
|
75
|
+
'no-multiple-empty-lines': ['warn', { max: 1, maxEOF: 0 }],
|
|
76
|
+
'eol-last': ['error', 'always'],
|
|
77
|
+
'space-before-function-paren': ['error', { named: 'never' }],
|
|
78
|
+
|
|
79
|
+
'no-unused-vars': 'off',
|
|
80
|
+
'no-case-declarations': 'off',
|
|
81
|
+
'no-async-promise-executor': 'off',
|
|
82
|
+
'no-control-regex': 'off',
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
files: ['**/*.js', '**/*.cjs', '**/*.mjs', '*.d.ts', '*.config.ts'],
|
|
87
|
+
...tsLint.configs.disableTypeChecked,
|
|
88
|
+
},
|
|
89
|
+
];
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"outDir": "./dist",
|
|
4
|
+
"target": "ES2022",
|
|
5
|
+
"moduleResolution": "NodeNext",
|
|
6
|
+
"module": "NodeNext",
|
|
7
|
+
"lib": [
|
|
8
|
+
"ES2022"
|
|
9
|
+
],
|
|
10
|
+
"declaration": true,
|
|
11
|
+
"sourceMap": true,
|
|
12
|
+
"strict": true,
|
|
13
|
+
"esModuleInterop": true,
|
|
14
|
+
"preserveConstEnums": true,
|
|
15
|
+
"skipLibCheck": true,
|
|
16
|
+
"useUnknownInCatchVariables": false,
|
|
17
|
+
"allowSyntheticDefaultImports": true,
|
|
18
|
+
"resolveJsonModule": true,
|
|
19
|
+
"experimentalDecorators": true,
|
|
20
|
+
"emitDecoratorMetadata": true,
|
|
21
|
+
"noImplicitAny": true,
|
|
22
|
+
},
|
|
23
|
+
"include": [
|
|
24
|
+
"src",
|
|
25
|
+
],
|
|
26
|
+
"exclude": [
|
|
27
|
+
"node_modules",
|
|
28
|
+
"dist"
|
|
29
|
+
]
|
|
30
|
+
}
|