This commit is contained in:
pelikhan 2021-11-12 13:49:31 -08:00
Родитель 2b21abfc12
Коммит 9754adbaef
5 изменённых файлов: 322 добавлений и 2 удалений

5
.prettierrc Normal file
Просмотреть файл

@ -0,0 +1,5 @@
{
"arrowParens": "avoid",
"semi": false,
"tabWidth": 4
}

57
.releaserc.json Normal file
Просмотреть файл

@ -0,0 +1,57 @@
{
"branch": "main",
"branches": ["main"],
"plugins": [
[
"@semantic-release/commit-analyzer",
{
"preset": "angular",
"releaseRules": [
{
"type": "doc",
"release": "patch"
},
{
"type": "fix",
"release": "patch"
},
{
"type": "patch",
"release": "patch"
},
{
"type": "minor",
"release": "minor"
},
{
"type": "feat",
"release": "minor"
},
{
"type": "feature",
"release": "minor"
},
{
"scope": "no-release",
"release": false
}
]
}
],
["@semantic-release/release-notes-generator"],
[
"@semantic-release/github",
{
"successComment": false,
"failComment": false
}
],
["@semantic-release/npm"],
[
"@semantic-release/git",
{
"assets": ["package.json", "src/**/*.ts"]
}
]
]
}

Просмотреть файл

@ -30,10 +30,11 @@
"jacdac-ts": "^1.22.4"
},
"devDependencies": {
"microbundle": "^0.14.1",
"@semantic-release/exec": "^6.0.2",
"@semantic-release/git": "^10.0.1",
"semantic-release": "^18.0.0"
"microbundle": "^0.14.1",
"semantic-release": "^18.0.0",
"tslint-microsoft-contrib": "^6.2.0"
},
"optionalDependencies": {
"serialport": "^9.2.5",

238
tslint.json Normal file
Просмотреть файл

@ -0,0 +1,238 @@
{
"rulesDirectory": [
"node_modules/tslint-microsoft-contrib"
],
"rules": {
"indent": [
true,
"spaces"
],
"no-internal-module": true,
"no-trailing-whitespace": [
true,
"ignore-comments"
],
"one-line": [
true,
"check-open-brace",
"check-whitespace"
],
"quotemark": [
false,
"double"
],
"semicolon": [
false,
"always"
],
"typedef-whitespace": [
true,
{
"call-signature": "nospace",
"index-signature": "nospace",
"parameter": "nospace",
"property-declaration": "nospace",
"variable-declaration": "nospace"
}
],
"variable-name": [
true,
"ban-keywords"
],
"whitespace": [
true,
"check-branch",
"check-decl",
"check-operator",
"check-type"
],
/**
* Security Rules. The following rules should be turned on because they find security issues
* or are recommended in the Microsoft Secure Development Lifecycle (SDL)
*/
"insecure-random": false, // pxt-override from true
"no-banned-terms": true,
"no-cookies": false, // pxt-override from true
"no-delete-expression": true,
"no-disable-auto-sanitization": true,
"no-document-domain": true,
"no-document-write": true,
"no-eval": true,
"no-exec-script": true,
"no-http-string": [
true,
"http://www.w3.org/?.*"
],
"no-inner-html": true,
"no-octal-literal": true,
"no-string-based-set-immediate": true,
"no-string-based-set-interval": true,
"no-string-based-set-timeout": true,
"non-literal-require": true,
"possible-timing-attack": true,
"react-anchor-blank-noopener": true,
"react-iframe-missing-sandbox": true,
"react-no-dangerous-html": true,
/**
* Common Bugs and Correctness. The following rules should be turned on because they find
* common bug patterns in the code or enforce type safety.
*/
"await-promise": true,
// pxt:override (TODO) "forin": true,
"jquery-deferred-must-complete": true,
"label-position": true,
"match-default-export-name": true,
"mocha-avoid-only": true,
"mocha-no-side-effect-code": true,
// pxt:override "no-any": true,
"no-arg": true,
// pxt:override "no-backbone-get-set-outside-model": true,
// pxt:override "no-bitwise": true,
"no-conditional-assignment": true,
// pxt:override "no-console": [false, "debug", "info", "log", "time", "timeEnd", "trace"],
// pxt:override (more work to be done here) "no-constant-condition": true,
"no-control-regex": true,
// pxt:override "no-debugger": true,
"no-duplicate-super": true,
"no-duplicate-switch-case": true,
"no-duplicate-variable": true,
// pxt:override (TODO) "no-empty": true,
// pxt:override "no-floating-promises": true,
"no-for-in-array": true,
// pxt:override "no-implicit-dependencies": true,
"no-import-side-effect": true,
// pxt:override "no-increment-decrement": true,
"no-invalid-regexp": true,
"no-invalid-template-strings": true,
// pxt:override "no-invalid-this": true,
"no-jquery-raw-elements": true,
"no-misused-new": true,
"no-non-null-assertion": false, // sometimes we're smarter than the typechecker
// pxt:override (TODO) "no-object-literal-type-assertion": true,
// pxt:override "no-parameter-reassignment": true,
"no-reference-import": true,
"no-regex-spaces": true,
"no-sparse-arrays": true,
// pxt:override "no-string-literal": true,
"no-string-throw": true,
"no-submodule-imports": true,
// pxt:override "no-unnecessary-callback-wrapper": true,
// pxt:override "no-unnecessary-initializer": true,
"no-unnecessary-override": true,
// pxt:override "no-unsafe-any": true,
"no-unsafe-finally": true,
"no-unused-expression": true,
// pxt:override (TODO) "no-use-before-declare": true,
"no-with-statement": true,
// pxt:override "promise-function-async": true,
// pxt:override (TODO 1) "promise-must-complete": true,
// pxt:override "radix": true,
"react-this-binding-issue": true,
"react-unused-props-and-state": true,
// pxt:override (TODO) "restrict-plus-operands": true, // the plus operand should really only be used for strings and numbers
// pxt:override "strict-boolean-expressions": true,
// pxt:override "switch-default": true,
// pxt:override "switch-final-break": true,
"triple-equals": [
false,
"allow-null-check"
], // pxt-override
"use-isnan": true,
// pxt:override (TODO) "use-named-parameter": true,
/**
* Code Clarity. The following rules should be turned on because they make the code
* generally more clear to the reader.
*/
// "adjacent-overload-signatures": true,
// "array-type": [true, "array"],
// "arrow-parens": false, // for simple functions the parens on arrow functions are not needed
// "ban-comma-operator": true, // possibly controversial
// "binary-expression-operand-order": true,
// "callable-types": true,
// "chai-prefer-contains-to-index-of": true,
// "chai-vague-errors": true,
"class-name": true,
"comment-format": [
false,
"check-space"
], // pxt-override
// "completed-docs": [true, "classes"],
// "export-name": true,
// "function-name": true,
// "import-name": true,
// "interface-name": true,
// "jsdoc-format": true,
// "max-classes-per-file": [true, 3], // we generally recommend making one public class per file
// "max-file-line-count": true,
// "max-func-body-length": [true, 100, {"ignore-parameters-to-function-regex": "describe"}],
// "max-line-length": [true, 140],
// "member-access": true,
// "member-ordering": [true, { "order": "fields-first" }],
// "missing-jsdoc": true,
// "mocha-unneeded-done": true,
// "new-parens": true,
// "no-construct": true,
// "no-default-export": true,
// "no-duplicate-imports": true,
// "no-empty-interface": true,
// "no-for-in": true,
// "no-function-expression": true,
// "no-inferrable-types": false, // turn no-inferrable-types off in order to make the code consistent in its use of type decorations
// "no-multiline-string": true, // multiline-strings often introduce unnecessary whitespace into the string literals
// "no-null-keyword": false, // turn no-null-keyword off and use undefined to mean not initialized and null to mean without a value
// "no-parameter-properties": true,
// "no-redundant-jsdoc": true,
// "no-relative-imports": true,
// "no-require-imports": true,
// "no-return-await": true,
// "no-shadowed-variable": true,
// "no-suspicious-comment": true,
// "no-this-assignment": true,
// "no-typeof-undefined": true,
// "no-unnecessary-class": true,
// "no-unnecessary-field-initialization": true,
// "no-unnecessary-local-variable": true,
// "no-unnecessary-qualifier": true,
// "no-unnecessary-type-assertion": true,
"no-unsupported-browser-code": true,
// "no-useless-files": true,
"no-var-keyword": true,
// "no-var-requires": true,
// "no-void-expression": true,
// "number-literal-format": true,
// "object-literal-sort-keys": false, // turn object-literal-sort-keys off and sort keys in a meaningful manner
// "one-variable-per-declaration": true,
// "only-arrow-functions": false, // there are many valid reasons to declare a function
// "ordered-imports": true,
// "prefer-array-literal": true,
// "prefer-const": true,
// "prefer-for-of": true,
// "prefer-method-signature": true,
// "prefer-object-spread": true,
// "prefer-template": true,
// "type-literal-delimiter": true,
// "typedef": [true, "call-signature", "arrow-call-signature", "parameter", "arrow-parameter", "property-declaration", "variable-declaration", "member-variable-declaration"],
// "underscore-consistent-invocation": true,
// "unified-signatures": true,
// "use-default-type-parameter": true,
//pxt: declared-above "variable-name": true,
/**
* Accessibility. The following rules should be turned on to guarantee the best user
* experience for keyboard and screen reader users.
*/
"react-a11y-anchors": true,
"react-a11y-aria-unsupported-elements": true,
"react-a11y-event-has-role": true,
"react-a11y-image-button-has-alt": true,
"react-a11y-img-has-alt": true,
"react-a11y-lang": true,
"react-a11y-meta": true,
"react-a11y-props": true,
"react-a11y-proptypes": true,
"react-a11y-role": true,
"react-a11y-role-has-required-aria-props": true,
"react-a11y-role-supports-aria-props": true,
"react-a11y-tabindex-no-positive": true,
"react-a11y-titles": true
}
}

Просмотреть файл

@ -6312,11 +6312,30 @@ tslib@2.0.1:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.1.tgz#410eb0d113e5b6356490eec749603725b021b43e"
integrity sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==
tslib@^1.8.1:
version "1.14.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
tslib@^2.0.3:
version "2.3.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
tslint-microsoft-contrib@^6.2.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/tslint-microsoft-contrib/-/tslint-microsoft-contrib-6.2.0.tgz#8aa0f40584d066d05e6a5e7988da5163b85f2ad4"
integrity sha512-6tfi/2tHqV/3CL77pULBcK+foty11Rr0idRDxKnteTaKm6gWF9qmaCNU17HVssOuwlYNyOmd9Jsmjd+1t3a3qw==
dependencies:
tsutils "^2.27.2 <2.29.0"
"tsutils@^2.27.2 <2.29.0":
version "2.28.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.28.0.tgz#6bd71e160828f9d019b6f4e844742228f85169a1"
integrity sha512-bh5nAtW0tuhvOJnx1GLRn5ScraRLICGyJV5wJhtRWOLsxW70Kk5tZtpK3O/hW6LDnqKS9mlUMPZj9fEMJ0gxqA==
dependencies:
tslib "^1.8.1"
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"