Skip to content

Commit

Permalink
Fix minor things and some potential bugs
Browse files Browse the repository at this point in the history
- Fix test that crashes with stable inkscape version
- Sort rules of eslint and convert string keys to keys
- Specify exact version of eslint that otherwise crashes the linter currently (typescript-eslint/typescript-eslint#2010)
- Add eslint rule to catch non awaited promises (very helpful rule)
  • Loading branch information
AnonymerNiklasistanonym committed May 11, 2020
1 parent 60ed49c commit 65ff913
Show file tree
Hide file tree
Showing 11 changed files with 164 additions and 161 deletions.
145 changes: 57 additions & 88 deletions .eslintrc.js
@@ -1,148 +1,117 @@
module.exports = {
"env": {
"browser": true,
"es6": true
env: {
browser: true,
es6: true
},
"extends": [
extends: [
"plugin:jsdoc/recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": [
parser: "@typescript-eslint/parser",
parserOptions: {
project: [
"tsconfig.json",
"tsconfig.internal.json"
],
"sourceType": "module"
sourceType: "module"
},
"plugins": [
plugins: [
"jsdoc",
"@typescript-eslint",
"prefer-arrow"
],
"settings": {
"jsdoc": {
"mode": "typescript",
"tagNamePreference": {
"arg": "param",
"return": "returns"
}
}
},
"rules": {
"no-duplicate-imports": "error",
"arrow-spacing": "error",
"sort-keys": "error",
"template-curly-spacing": ["error", "never"],
"rest-spread-spacing": ["error", "always"],
"sort-imports": ["error", { ignoreCase: true }],
"keyword-spacing": ["error", { before: true, after: true }],
"space-before-blocks": ["error", "always"],
"block-spacing": ["error", "always"],
"space-before-function-paren": ["error", "always"],
"array-bracket-spacing": ["error", "always", { "singleValue": false }],
"object-curly-spacing": ["error", "always"],
"computed-property-spacing": ["error", "never"],
"brace-style": ["error", "1tbs", { "allowSingleLine": true }],
"jsdoc/check-types": 0,
"jsdoc/require-returns-type": 0,
"jsdoc/require-param-type": 0,
"@typescript-eslint/no-misused-promises": ["error", { checksVoidReturn: false }],
rules: {
"@typescript-eslint/array-type": "error",
"@typescript-eslint/indent": "error",
"@typescript-eslint/member-delimiter-style": [
"error",
{
"multiline": {
"delimiter": "none",
"requireLast": true
multiline: {
delimiter: "none",
requireLast: true
},
"singleline": {
"delimiter": "semi",
"requireLast": false
singleline: {
delimiter: "semi",
requireLast: false
}
}
],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-floating-promises": "error",
"@typescript-eslint/no-misused-promises": [ "error", { checksVoidReturn: false } ],
"@typescript-eslint/no-parameter-properties": "off",
"@typescript-eslint/no-use-before-define": "error",
"@typescript-eslint/prefer-for-of": "error",
"@typescript-eslint/prefer-function-type": "error",
"@typescript-eslint/quotes": [
"error",
"double"
],
"semi": "off",
"@typescript-eslint/semi": [ "error" ],
"@typescript-eslint/quotes": [ "error", "double" ],
"@typescript-eslint/semi": "error",
"@typescript-eslint/unified-signatures": "error",
"array-bracket-spacing": [ "error", "always", { singleValue: false } ],
"arrow-spacing": "error",
"block-spacing": [ "error", "always" ],
"brace-style": [ "error", "1tbs", { allowSingleLine: true } ],
"camelcase": "error",
"comma-dangle": "error",
"complexity": ["error", { "max": 10 }],
"complexity": [ "error", { max: 10 } ],
"computed-property-spacing": [ "error", "never" ],
"constructor-super": "error",
"dot-notation": "error",
"eqeqeq": [
"error",
"smart"
],
"eqeqeq": [ "error", "smart" ],
"guard-for-in": "error",
"id-blacklist": [
"error",
"any",
"number",
"string",
"Boolean",
"boolean"
],
"id-blacklist": [ "error", "any", "number", "string", "Boolean", "boolean" ],
"id-match": "error",
"linebreak-style": [
"error",
"unix"
],
"max-classes-per-file": [
"error",
1
],
"max-len": [
"error",
{
"code": 120
}
],
"jsdoc/check-types": 0,
"jsdoc/require-param-type": 0,
"jsdoc/require-returns-type": 0,
"keyword-spacing": [ "error", { after: true, before: true } ],
"linebreak-style": [ "error", "unix" ],
"max-classes-per-file": [ "error", 1 ],
"max-len": [ "error", { code: 120 } ],
"new-parens": "error",
"no-bitwise": "error",
"no-caller": "error",
"no-cond-assign": "error",
"no-console": ["error", { "allow": ["warn", "error"] }],
"no-console": [ "error", { allow: [ "warn", "error" ] } ],
"no-debugger": "error",
"no-duplicate-imports": "error",
"no-empty": "error",
"no-eval": "error",
"no-fallthrough": "off",
"no-invalid-this": "off",
"no-irregular-whitespace": "error",
"no-new-wrappers": "error",
"no-shadow": [
"error",
{
"hoist": "all"
}
],
"no-shadow": [ "error", { hoist: "all" } ],
"no-throw-literal": "error",
"no-trailing-spaces": "error",
"no-undef-init": "error",
"no-underscore-dangle": "error",
"no-unsafe-finally": "error",
"no-unused-expressions": "error",
"no-unused-labels": "error",
"object-curly-spacing": [ "error", "always" ],
"object-shorthand": "error",
"one-var": [
"error",
"never"
],
"one-var": [ "error", "never" ],
"prefer-arrow/prefer-arrow-functions": "error",
"radix": "error",
"rest-spread-spacing": [ "error", "always" ],
"semi": "off",
"sort-imports": [ "error", { ignoreCase: true } ],
"sort-keys": "error",
"space-before-blocks": [ "error", "always" ],
"space-before-function-paren": [ "error", "always" ],
"spaced-comment": "error",
"template-curly-spacing": [ "error", "never" ],
"use-isnan": "error",
"valid-typeof": "off",
"valid-typeof": "off"
},
settings: {
jsdoc: {
mode: "typescript",
tagNamePreference: {
arg: "param",
return: "returns"
}
}
}
};
68 changes: 38 additions & 30 deletions docs/createDocs.ts
Expand Up @@ -8,35 +8,43 @@ import { ScriptTarget } from "typescript";
export const defaultDocsOutputDir = path.join(__dirname, "dist", "site");

// First create typedoc README
createTypedocReadme().then(() => {

const app = new Application();

// If you want TypeDoc to load tsconfig.json / typedoc.json files
app.options.addReader(new TSConfigReader());
app.options.addReader(new TypeDocReader());

app.bootstrap({
categorizeByGroup: true,
exclude: [
"node_modules/**/*",
"docs/**/*",
"dist/**/*",
"tests/**/*"
],
experimentalDecorators: true,
ignoreCompilerErrors: false,
mode: SourceFileMode.Modules,
name: "MarkTeX Modules",
readme: path.join(__dirname, "dist", "README.md"),
target: ScriptTarget.ESNext
});

const project = app.convert(app.expandInputFiles(["src"]));

if (project) {
app.generateDocs(project, defaultDocsOutputDir);
} else {
console.error("TypeDoc documentation was not successful");
(async (): Promise<void> => {
try {
await createTypedocReadme();

const app = new Application();

// If you want TypeDoc to load tsconfig.json / typedoc.json files
app.options.addReader(new TSConfigReader());
app.options.addReader(new TypeDocReader());

app.bootstrap({
categorizeByGroup: true,
exclude: [
"node_modules/**/*",
"docs/**/*",
"dist/**/*",
"tests/**/*"
],
experimentalDecorators: true,
ignoreCompilerErrors: false,
mode: SourceFileMode.Modules,
name: "MarkTeX Modules",
readme: path.join(__dirname, "dist", "README.md"),
target: ScriptTarget.ESNext
});

const project = app.convert(app.expandInputFiles(["src"]));

if (project) {
app.generateDocs(project, defaultDocsOutputDir);
} else {
throw Error("TypeDoc documentation generation was not successful");
}
} catch (error) {
throw error;
}
})().catch(error => {
console.error(error);
process.exit(1);
});
21 changes: 14 additions & 7 deletions docs/openDocs.ts
Expand Up @@ -21,13 +21,20 @@ const startStaticDocumentationServer = (port = 8081): Promise<string> => new Pro
await fs.access(defaultDocsOutputDir);
} catch (err) {
if (err.code === "ENOENT") {
console.error(`Error: Docs output directory was not found (${defaultDocsOutputDir}).`);
throw Error(`Docs output directory was not found (${defaultDocsOutputDir}).`);
} else {
console.error(err);
throw err;
}
return process.exit(1);
}
const url = await startStaticDocumentationServer();
// Opens the main page of the documentation
await open(url);
})();

try {
const url = await startStaticDocumentationServer();
// Opens the main page of the documentation
await open(url);
} catch (err) {
throw err;
}
})().catch(error => {
console.error(error);
process.exit(1);
});
24 changes: 12 additions & 12 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 6 additions & 6 deletions package.json
Expand Up @@ -107,26 +107,26 @@
"@types/spdy": "^3.4.4",
"@types/sqlite3": "^3.1.6",
"@types/webpack": "^4.41.12",
"@typescript-eslint/eslint-plugin": "^2.31.0",
"@typescript-eslint/eslint-plugin-tslint": "^2.31.0",
"@typescript-eslint/parser": "^2.31.0",
"@typescript-eslint/eslint-plugin": "2.31.0",
"@typescript-eslint/eslint-plugin-tslint": "2.31.0",
"@typescript-eslint/parser": "2.31.0",
"chai": "^4.2.0",
"chai-http": "^4.3.0",
"compression-webpack-plugin": "^3.1.0",
"cross-env": "^7.0.2",
"eslint": "^7.0.0",
"eslint-plugin-jsdoc": "^24.0.6",
"eslint-plugin-jsdoc": "^25.2.0",
"eslint-plugin-prefer-arrow": "^1.2.1",
"glob": "^7.1.6",
"leasot": "^10.3.0",
"leasot": "^10.4.0",
"mocha": "^7.1.2",
"nodemon": "^2.0.3",
"npm-run-all": "^4.1.5",
"nyc": "^15.0.1",
"open": "^7.0.3",
"raw-loader": "^4.0.1",
"shelljs": "^0.8.4",
"ts-loader": "^7.0.3",
"ts-loader": "^7.0.4",
"ts-node": "^8.10.1",
"tslint": "^5.0.0",
"typedoc": "^0.17.6",
Expand Down

0 comments on commit 65ff913

Please sign in to comment.