diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..2ae628f4d --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,36 @@ +name: lint & test + +on: [push, pull_request] + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: checkout + uses: actions/checkout@v2 + + - uses: actions/setup-node@v2 + with: + node-version: '14' + + - name: install + run: npm i && npm run setup:skip-build + + - name: lint + run: npm run lint + + test-designer: + runs-on: ubuntu-latest + steps: + - name: checkout + uses: actions/checkout@v2 + + - uses: actions/setup-node@v2 + with: + node-version: '14' + + - name: install + run: npm i && npm run setup:skip-build + + - name: lint + run: cd packages/designer && npm test \ No newline at end of file diff --git a/modules/code-generator/src/utils/resultHelper.ts b/modules/code-generator/src/utils/resultHelper.ts index 6539f5167..627004656 100644 --- a/modules/code-generator/src/utils/resultHelper.ts +++ b/modules/code-generator/src/utils/resultHelper.ts @@ -53,7 +53,6 @@ export function flattenResult(dir: ResultDir, cwd = ''): FlattenFile[] { ), ].concat( ...dir.dirs.map((subDir) => - flattenResult(subDir, [cwd, subDir.name].filter((x) => x !== '' && x !== '.').join('/')), - ), + flattenResult(subDir, [cwd, subDir.name].filter((x) => x !== '' && x !== '.').join('/'))), ); } diff --git a/modules/material-parser/src/parse/js/resolver/resolveImport.ts b/modules/material-parser/src/parse/js/resolver/resolveImport.ts index 2acefff6f..501b7c009 100644 --- a/modules/material-parser/src/parse/js/resolver/resolveImport.ts +++ b/modules/material-parser/src/parse/js/resolver/resolveImport.ts @@ -50,6 +50,7 @@ export function resolveToImport(initialPath) { } pathBuffer.unshift(...paths); } + // eslint-disable-next-line no-fallthrough case 'Identifier': case 'JSXIdentifier': { const valuePath = resolveToValue(path); diff --git a/modules/material-parser/src/parse/js/utils/getComposedPath.ts b/modules/material-parser/src/parse/js/utils/getComposedPath.ts index 471af46a4..106aa42e1 100644 --- a/modules/material-parser/src/parse/js/utils/getComposedPath.ts +++ b/modules/material-parser/src/parse/js/utils/getComposedPath.ts @@ -25,6 +25,7 @@ export default function getComposedPropTypesPath(documentation, propName, p) { const ast = parser.parse(fileContent); visit(ast, { + // eslint-disable-next-line no-loop-func visitAssignmentExpression(path: any) { // Ignore anything that is not `exports.X = ...;` or // `module.exports = ...;` diff --git a/modules/material-parser/src/parse/ts/index.ts b/modules/material-parser/src/parse/ts/index.ts index 059d9fb90..10bd6f66c 100644 --- a/modules/material-parser/src/parse/ts/index.ts +++ b/modules/material-parser/src/parse/ts/index.ts @@ -299,8 +299,7 @@ function getDocgenTypeHelper( name: 'union', // @ts-ignore value: type.types.map((t) => - getDocgenTypeHelper(checker, t, true, getNextParentIds(parentIds, type)), - ), + getDocgenTypeHelper(checker, t, true, getNextParentIds(parentIds, type))), }); } else if (isComplexType(type)) { return makeResult({ @@ -494,8 +493,7 @@ export default function parseTS(filePath: string, args: IParseArgs): ComponentDo log('ts config path is', tsConfigPath); const { config, error } = ts.readConfigFile(tsConfigPath, (filename) => - readFileSync(filename, 'utf8'), - ); + readFileSync(filename, 'utf8')); if (error !== undefined) { const errorText = `Cannot load custom tsconfig.json from provided path: ${tsConfigPath}, with error code: ${error.code}, message: ${error.messageText}`; diff --git a/package.json b/package.json index 7f8e3bcb8..1f05922cd 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,6 @@ "setup:test": "./scripts/setup-for-test.sh", "setup:skip-build": "./scripts/setup-skip-build.sh", "start": "./scripts/start.sh", - "start:demo": "./scripts/start.sh @ali/lowcode-demo", "test": "lerna run test --stream", "test:snapshot": "lerna run test:snapshot", "watchdog:build": "node ./scripts/watchdog.js", diff --git a/packages/editor-core/src/editor.ts b/packages/editor-core/src/editor.ts index a71ce31d5..7e9101d96 100644 --- a/packages/editor-core/src/editor.ts +++ b/packages/editor-core/src/editor.ts @@ -37,6 +37,7 @@ export declare interface Editor extends StrictEventEmitter any) => { }; // 关闭浏览器前提醒,只有产生过交互才会生效 -window.onbeforeunload = function (e: Event): string | void { +window.onbeforeunload = function (e: Event): string { const ev = e || window.event; // 本地调试不生效 if (location.href.indexOf('localhost') > 0) { - return; + return ''; } const msg = '您确定要离开此页面吗?'; ev.cancelBubble = true; diff --git a/packages/editor-core/src/utils/logger.ts b/packages/editor-core/src/utils/logger.ts index 21ff230a6..47ec22c6f 100644 --- a/packages/editor-core/src/utils/logger.ts +++ b/packages/editor-core/src/utils/logger.ts @@ -2,6 +2,6 @@ import Logger, { Level } from 'zen-logger'; export { Logger }; -export function getLogger(config: { level: Level, bizName: string }): Logger { +export function getLogger(config: { level: Level; bizName: string }): Logger { return new Logger(config); } diff --git a/packages/editor-core/src/utils/preference.ts b/packages/editor-core/src/utils/preference.ts index e26f92e80..cc23092ae 100644 --- a/packages/editor-core/src/utils/preference.ts +++ b/packages/editor-core/src/utils/preference.ts @@ -16,7 +16,7 @@ export default class Preference { return `${STORAGE_KEY_PREFIX}_${moduleKey}.${key}`; } - set(key: string, value:any, module?: string) { + set(key: string, value: any, module?: string) { if (!key || typeof key !== 'string' || key.length === 0) { logger.error('Invalid key when setting preference', key); return; @@ -26,7 +26,7 @@ export default class Preference { store.set(storageKey, value); } - get(key: string, module: string) : any { + get(key: string, module: string): any { if (!key || typeof key !== 'string' || key.length === 0) { logger.error('Invalid key when getting from preference', key); return; @@ -44,7 +44,7 @@ export default class Preference { * @returns {boolean} * @memberof Preference */ - contains(key: string, module: string) : boolean { + contains(key: string, module: string): boolean { if (!key || typeof key !== 'string' || key.length === 0) { logger.error('Invalid key when getting from preference', key); return false; diff --git a/packages/react-simulator-renderer/src/utils/misc.ts b/packages/react-simulator-renderer/src/utils/misc.ts index e121420a1..e53ac6ec1 100644 --- a/packages/react-simulator-renderer/src/utils/misc.ts +++ b/packages/react-simulator-renderer/src/utils/misc.ts @@ -7,7 +7,7 @@ interface UtilsMetadata { subName?: string; destructuring?: boolean; main?: string; - } + }; } interface LibrayMap { diff --git a/packages/utils/src/css-helper.ts b/packages/utils/src/css-helper.ts index 690149d58..9858d0d54 100644 --- a/packages/utils/src/css-helper.ts +++ b/packages/utils/src/css-helper.ts @@ -126,7 +126,8 @@ function toCss(runtime) { css.push( `:root${pseudo === 'default' ? '' : `${prefix}${pseudo}`} { ${runtimeToCss(normalizeStyle(runtime[pseudo]))} -}\n`); +}\n`, +); }); return css.join('\n'); } diff --git a/packages/utils/src/set-prototype-of.ts b/packages/utils/src/set-prototype-of.ts index 5759f88c5..484ea7819 100644 --- a/packages/utils/src/set-prototype-of.ts +++ b/packages/utils/src/set-prototype-of.ts @@ -1,7 +1,6 @@ export function setPrototypeOf(target: any, proto: any) { - // tslint:disable-next-line if (typeof Object.setPrototypeOf !== 'undefined') { - Object.setPrototypeOf(target, proto); // tslint:disable-line + Object.setPrototypeOf(target, proto); } else { // eslint-disable-next-line no-proto target.__proto__ = proto;