refactor: Validate formatting in nodes-base (no-changelog) (#4685)

* 🔥 Remove Prettier exceptions

* 👕 Start linting on formatting

*  Update `format` command

* 🎨 Apply formatting
This commit is contained in:
Iván Ovejero 2022-11-22 12:44:35 +01:00 committed by GitHub
parent 4f64e26a83
commit 60d66426ff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
21 changed files with 62 additions and 136 deletions

View file

@ -1,9 +1,3 @@
dist dist
packages/editor-ui packages/editor-ui
package.json package.json
!packages/nodes-base/src
!packages/nodes-base/test
!packages/nodes-base/nodes
packages/nodes-base/nodes/UProc/Json/Tools.ts

View file

@ -2,9 +2,10 @@
* @type {import('@types/eslint').ESLint.ConfigData} * @type {import('@types/eslint').ESLint.ConfigData}
*/ */
module.exports = { module.exports = {
extends: ['@n8n_io/eslint-config/base'], extends: ['@n8n_io/eslint-config/node'],
parserOptions: { parserOptions: {
project: ['./tsconfig.json'], project: ['./tsconfig.json'],
tsconfigRootDir: __dirname,
}, },
rules: { rules: {
@ -15,7 +16,6 @@ module.exports = {
'import/order': 'off', 'import/order': 'off',
'prefer-const': 'off', 'prefer-const': 'off',
'prefer-spread': 'off', 'prefer-spread': 'off',
'prettier/prettier': 'off',
'import/no-extraneous-dependencies': 'off', 'import/no-extraneous-dependencies': 'off',
'@typescript-eslint/array-type': 'off', '@typescript-eslint/array-type': 'off',

View file

@ -8,7 +8,6 @@ The nodes which are included by default in n8n
npm install n8n-nodes-base -g npm install n8n-nodes-base -g
``` ```
## License ## License
n8n is [fair-code](http://faircode.io) distributed under the [**Sustainable Use License**](https://github.com/n8n-io/n8n/blob/master/packages/cli/LICENSE.md). n8n is [fair-code](http://faircode.io) distributed under the [**Sustainable Use License**](https://github.com/n8n-io/n8n/blob/master/packages/cli/LICENSE.md).

View file

@ -22,7 +22,7 @@ export class CloudflareApi implements ICredentialType {
type: 'generic', type: 'generic',
properties: { properties: {
headers: { headers: {
'Authorization': '=Bearer {{$credentials.apiToken}}', Authorization: '=Bearer {{$credentials.apiToken}}',
}, },
}, },
}; };

View file

@ -1,4 +1,9 @@
import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow'; import {
IAuthenticateGeneric,
ICredentialTestRequest,
ICredentialType,
INodeProperties,
} from 'n8n-workflow';
export class HubspotAppToken implements ICredentialType { export class HubspotAppToken implements ICredentialType {
name = 'hubspotAppToken'; name = 'hubspotAppToken';

View file

@ -91,7 +91,8 @@ export class MicrosoftSql implements ICredentialType {
}, },
], ],
default: '7_4', default: '7_4',
description: 'The version of TDS to use. If server doesn\'t support specified version, negotiated version is used instead.', description:
"The version of TDS to use. If server doesn't support specified version, negotiated version is used instead.",
}, },
]; ];
} }

View file

@ -78,7 +78,9 @@ export class VenafiTlsProtectDatacenterApi implements ICredentialType {
}, },
}; };
const { access_token } = await this.helpers.httpRequest(requestOptions) as { access_token: string }; const { access_token } = (await this.helpers.httpRequest(requestOptions)) as {
access_token: string;
};
return { token: access_token }; return { token: access_token };
} }

View file

@ -1,4 +1,7 @@
const { existsSync, promises: { writeFile } } = require('fs'); const {
existsSync,
promises: { writeFile },
} = require('fs');
const path = require('path'); const path = require('path');
const { task, src, dest } = require('gulp'); const { task, src, dest } = require('gulp');
@ -8,7 +11,7 @@ const PURPLE_ANSI_COLOR_CODE = 35;
task('build:icons', copyIcons); task('build:icons', copyIcons);
function copyIcons() { function copyIcons() {
src('nodes/**/*.{png,svg}').pipe(dest('dist/nodes')) src('nodes/**/*.{png,svg}').pipe(dest('dist/nodes'));
return src('credentials/**/*.{png,svg}').pipe(dest('dist/credentials')); return src('credentials/**/*.{png,svg}').pipe(dest('dist/credentials'));
} }
@ -55,7 +58,7 @@ function getNodeTranslationPaths() {
if (existsSync(nodeTranslationPath)) { if (existsSync(nodeTranslationPath)) {
acc.push(nodeTranslationPath); acc.push(nodeTranslationPath);
}; }
return acc; return acc;
}, []); }, []);
@ -74,7 +77,6 @@ function getHeaders(nodeTranslationPaths) {
}, {}); }, {});
} }
// ---------------------------------- // ----------------------------------
// helpers // helpers
// ---------------------------------- // ----------------------------------
@ -89,24 +91,18 @@ function isValidHeader(header, allowedHeaderKeys) {
const headerKeys = Object.keys(header); const headerKeys = Object.keys(header);
return headerKeys.length > 0 && return headerKeys.length > 0 && headerKeys.every((key) => allowedHeaderKeys.includes(key));
headerKeys.every(key => allowedHeaderKeys.includes(key));
} }
function writeDistFile(data, distPath) { function writeDistFile(data, distPath) {
writeFile( writeFile(distPath, `module.exports = ${JSON.stringify(data, null, 2)}`);
distPath,
`module.exports = ${JSON.stringify(data, null, 2)}`,
);
} }
const log = (string, { bulletpoint } = { bulletpoint: false }) => { const log = (string, { bulletpoint } = { bulletpoint: false }) => {
if (bulletpoint) { if (bulletpoint) {
process.stdout.write( process.stdout.write(colorize(PURPLE_ANSI_COLOR_CODE, `- ${string}\n`));
colorize(PURPLE_ANSI_COLOR_CODE, `- ${string}\n`),
);
return; return;
}; }
process.stdout.write(`${string}\n`); process.stdout.write(`${string}\n`);
}; };

View file

@ -23,9 +23,6 @@
] ]
}, },
"subcategories": { "subcategories": {
"Core Nodes": [ "Core Nodes": ["Helpers", "Other Trigger Nodes"]
"Helpers",
"Other Trigger Nodes"
]
} }
} }

View file

@ -19,9 +19,6 @@
] ]
}, },
"subcategories": { "subcategories": {
"Core Nodes": [ "Core Nodes": ["Helpers", "Other Trigger Nodes"]
"Helpers",
"Other Trigger Nodes"
]
} }
} }

View file

@ -2,9 +2,7 @@
"node": "n8n-nodes-base.executeWorkflowTrigger", "node": "n8n-nodes-base.executeWorkflowTrigger",
"nodeVersion": "1.0", "nodeVersion": "1.0",
"codexVersion": "1.0", "codexVersion": "1.0",
"categories": [ "categories": ["Core Nodes"],
"Core Nodes"
],
"resources": { "resources": {
"primaryDocumentation": [ "primaryDocumentation": [
{ {
@ -14,8 +12,6 @@
"generic": [] "generic": []
}, },
"subcategories": { "subcategories": {
"Core Nodes": [ "Core Nodes": ["Helpers"]
"Helpers"
]
} }
} }

View file

@ -24,9 +24,6 @@
}, },
"alias": ["Time", "Scheduler", "Polling"], "alias": ["Time", "Scheduler", "Polling"],
"subcategories": { "subcategories": {
"Core Nodes": [ "Core Nodes": ["Flow", "Other Trigger Nodes"]
"Flow",
"Other Trigger Nodes"
]
} }
} }

View file

@ -12,9 +12,6 @@
}, },
"alias": ["Watch", "Monitor"], "alias": ["Watch", "Monitor"],
"subcategories": { "subcategories": {
"Core Nodes":[ "Core Nodes": ["Files", "Other Trigger Nodes"]
"Files",
"Other Trigger Nodes"
]
} }
} }

View file

@ -2,9 +2,7 @@
"node": "n8n-nodes-base.manualTrigger", "node": "n8n-nodes-base.manualTrigger",
"nodeVersion": "1.0", "nodeVersion": "1.0",
"codexVersion": "1.0", "codexVersion": "1.0",
"categories": [ "categories": ["Core Nodes"],
"Core Nodes"
],
"resources": { "resources": {
"primaryDocumentation": [ "primaryDocumentation": [
{ {

View file

@ -11,9 +11,6 @@
] ]
}, },
"subcategories": { "subcategories": {
"Core Nodes": [ "Core Nodes": ["Flow", "Other Trigger Nodes"]
"Flow",
"Other Trigger Nodes"
]
} }
} }

View file

@ -18,9 +18,6 @@
] ]
}, },
"subcategories": { "subcategories": {
"Core Nodes": [ "Core Nodes": ["Flow", "Other Trigger Nodes"]
"Flow",
"Other Trigger Nodes"
]
} }
} }

View file

@ -9,9 +9,9 @@ To get the entire list of events as a JS array, scrape the website:
4. paste the prepared array in StripeTrigger.node.ts 4. paste the prepared array in StripeTrigger.node.ts
```js ```js
types = [] types = [];
$$('ul#event-types li').forEach(el => { $$('ul#event-types li').forEach((el) => {
const value = el.querySelector('.method-list-item-label-name').innerText const value = el.querySelector('.method-list-item-label-name').innerText;
types.push({ types.push({
name: value name: value
@ -20,8 +20,8 @@ $$('ul#event-types li').forEach(el => {
.map((s) => s.charAt(0).toUpperCase() + s.substring(1)) .map((s) => s.charAt(0).toUpperCase() + s.substring(1))
.join(' '), .join(' '),
value, value,
description: el.querySelector('.method-list-item-description').innerText description: el.querySelector('.method-list-item-description').innerText,
}) });
}) });
copy(types) copy(types);
``` ```

View file

@ -11,9 +11,6 @@
] ]
}, },
"subcategories": { "subcategories": {
"Core Nodes": [ "Core Nodes": ["Flow", "Other Trigger Nodes"]
"Flow",
"Other Trigger Nodes"
]
} }
} }

View file

@ -17,7 +17,7 @@
"dev": "pnpm watch", "dev": "pnpm watch",
"build": "tsc && gulp build:icons && gulp build:translations", "build": "tsc && gulp build:icons && gulp build:translations",
"build:translations": "gulp build:translations", "build:translations": "gulp build:translations",
"format": "prettier --write **/*.{ts,json}", "format": "prettier --write **/*.{ts,js,json,md} --ignore-path ../../.prettierignore",
"lint": "tslint -p tsconfig.json -c tslint.json && eslint nodes credentials", "lint": "tslint -p tsconfig.json -c tslint.json && eslint nodes credentials",
"lintfix": "tslint --fix -p tsconfig.json -c tslint.json && eslint nodes credentials --fix", "lintfix": "tslint --fix -p tsconfig.json -c tslint.json && eslint nodes credentials --fix",
"watch": "tsc --watch", "watch": "tsc --watch",

View file

@ -1,16 +1,11 @@
{ {
"linterOptions": { "linterOptions": {
"exclude": [ "exclude": ["node_modules/**/*"]
"node_modules/**/*"
]
}, },
"defaultSeverity": "error", "defaultSeverity": "error",
"jsRules": {}, "jsRules": {},
"rules": { "rules": {
"array-type": [ "array-type": [true, "array-simple"],
true,
"array-simple"
],
"arrow-return-shorthand": true, "arrow-return-shorthand": true,
"ban": [ "ban": [
true, true,
@ -21,40 +16,18 @@
], ],
"ban-types": [ "ban-types": [
true, true,
[ ["Object", "Use {} instead."],
"Object", ["String", "Use 'string' instead."],
"Use {} instead." ["Number", "Use 'number' instead."],
], ["Boolean", "Use 'boolean' instead."]
[
"String",
"Use 'string' instead."
],
[
"Number",
"Use 'number' instead."
],
[
"Boolean",
"Use 'boolean' instead."
]
], ],
"class-name": true, "class-name": true,
"curly": [ "curly": [true, "ignore-same-line"],
true,
"ignore-same-line"
],
"forin": true, "forin": true,
"jsdoc-format": true, "jsdoc-format": true,
"label-position": true, "label-position": true,
"indent": [ "indent": [true, "tabs", 2],
true, "member-access": [true, "no-public"],
"tabs",
2
],
"member-access": [
true,
"no-public"
],
"new-parens": true, "new-parens": true,
"no-angle-bracket-type-assertion": true, "no-angle-bracket-type-assertion": true,
"no-any": true, "no-any": true,
@ -72,27 +45,16 @@
"named-imports-order": "case-insensitive" "named-imports-order": "case-insensitive"
} }
], ],
"no-namespace": [ "no-namespace": [false, "allow-declarations"],
false,
"allow-declarations"
],
"no-reference": true, "no-reference": true,
"no-string-throw": true, "no-string-throw": true,
"no-unused-expression": true, "no-unused-expression": true,
"no-var-keyword": true, "no-var-keyword": true,
"object-literal-shorthand": true, "object-literal-shorthand": true,
"only-arrow-functions": [ "only-arrow-functions": [true, "allow-declarations", "allow-named-functions"],
true,
"allow-declarations",
"allow-named-functions"
],
"prefer-const": true, "prefer-const": true,
"radix": true, "radix": true,
"semicolon": [ "semicolon": [true, "always", "ignore-bound-class-methods"],
true,
"always",
"ignore-bound-class-methods"
],
"switch-default": true, "switch-default": true,
"trailing-comma": [ "trailing-comma": [
true, true,
@ -106,15 +68,9 @@
"esSpecCompliant": true "esSpecCompliant": true
} }
], ],
"triple-equals": [ "triple-equals": [true, "allow-null-check"],
true,
"allow-null-check"
],
"use-isnan": true, "use-isnan": true,
"quotes": [ "quotes": ["error", "single"],
"error",
"single"
],
"variable-name": [ "variable-name": [
true, true,
"check-format", "check-format",