@camera.ui/cli 0.0.1 → 0.0.2
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/utils/templates.js +11 -14
- 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/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);
|
|
@@ -123,14 +116,15 @@ export async function createTsConfig(targetDir) {
|
|
|
123
116
|
}
|
|
124
117
|
export async function createCodeQualityConfig(targetDir, options) {
|
|
125
118
|
const baseFiles = [];
|
|
119
|
+
const baseDotFiles = [];
|
|
126
120
|
const pythonFiles = [];
|
|
127
121
|
const typescriptFiles = [];
|
|
128
122
|
if (options.language === 'python') {
|
|
129
123
|
pythonFiles.push('ruff.toml');
|
|
130
124
|
}
|
|
131
125
|
else {
|
|
132
|
-
|
|
133
|
-
|
|
126
|
+
baseDotFiles.push('prettierrc.json');
|
|
127
|
+
baseDotFiles.push('prettierignore');
|
|
134
128
|
if (options.language === 'javascript') {
|
|
135
129
|
baseFiles.push('eslint.config.js');
|
|
136
130
|
}
|
|
@@ -141,6 +135,9 @@ export async function createCodeQualityConfig(targetDir, options) {
|
|
|
141
135
|
for (const file of baseFiles) {
|
|
142
136
|
await copyPath(__dirname, `../../templates/base/${file}`, targetDir, file);
|
|
143
137
|
}
|
|
138
|
+
for (const file of baseDotFiles) {
|
|
139
|
+
await copyPath(__dirname, `../../templates/base/${file}`, targetDir, `.${file}`);
|
|
140
|
+
}
|
|
144
141
|
for (const file of pythonFiles) {
|
|
145
142
|
await copyPath(__dirname, `../../templates/python/${file}`, targetDir, file);
|
|
146
143
|
}
|
|
@@ -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
|
+
}
|