Match-id-7321885d37db6d97de01c5fd56d5acfeb795476f
This commit is contained in:
parent
90a8629dba
commit
5aa6ebe0c7
|
@ -0,0 +1,10 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
charset = utf-8
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
trim_trailing_whitespace = true
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
**/node_modules
|
||||
build/
|
|
@ -0,0 +1,186 @@
|
|||
const restrictedGlobals = require('confusing-browser-globals');
|
||||
|
||||
const OFF = 0;
|
||||
const ERROR = 2;
|
||||
|
||||
module.exports = {
|
||||
extends: ['fbjs', 'prettier'],
|
||||
|
||||
// Stop ESLint from looking for a configuration file in parent folders
|
||||
root: true,
|
||||
|
||||
plugins: [
|
||||
'jest',
|
||||
'no-for-of-loops',
|
||||
'no-function-declare-after-return',
|
||||
'react',
|
||||
],
|
||||
|
||||
parser: 'babel-eslint',
|
||||
parserOptions: {
|
||||
ecmaVersion: 8,
|
||||
sourceType: 'module',
|
||||
ecmaFeatures: {
|
||||
experimentalObjectRestSpread: true,
|
||||
},
|
||||
},
|
||||
env: {
|
||||
'mocha': true,
|
||||
'node': true,
|
||||
},
|
||||
|
||||
// We're stricter than the default config, mostly. We'll override a few rules
|
||||
// and then enable some React specific ones.
|
||||
rules: {
|
||||
'accessor-pairs': OFF,
|
||||
'brace-style': [ERROR, '1tbs'],
|
||||
'consistent-return': OFF,
|
||||
'dot-location': [ERROR, 'property'],
|
||||
// We use console['error']() as a signal to not transform it:
|
||||
'dot-notation': [ERROR, {allowPattern: '^(error|warn)$'}],
|
||||
'eol-last': ERROR,
|
||||
eqeqeq: [ERROR, 'allow-null'],
|
||||
indent: OFF,
|
||||
'jsx-quotes': [ERROR, 'prefer-double'],
|
||||
'keyword-spacing': [ERROR, {after: true, before: true}],
|
||||
'no-bitwise': OFF,
|
||||
'no-inner-declarations': [ERROR, 'functions'],
|
||||
'no-multi-spaces': ERROR,
|
||||
'no-restricted-globals': [ERROR].concat(restrictedGlobals),
|
||||
'no-restricted-syntax': [ERROR, 'WithStatement'],
|
||||
'no-shadow': ERROR,
|
||||
'no-unused-expressions': ERROR,
|
||||
'no-unused-vars': [ERROR, {args: 'none'}],
|
||||
'no-use-before-define': OFF,
|
||||
'no-useless-concat': OFF,
|
||||
quotes: [ERROR, 'single', {avoidEscape: true, allowTemplateLiterals: true}],
|
||||
'space-before-blocks': ERROR,
|
||||
'space-before-function-paren': OFF,
|
||||
'valid-typeof': [ERROR, {requireStringLiterals: true}],
|
||||
|
||||
// We apply these settings to files that should run on Node.
|
||||
// They can't use JSX or ES6 modules, and must be in strict mode.
|
||||
// They can, however, use other ES6 features.
|
||||
// (Note these rules are overridden later for source files.)
|
||||
'no-var': ERROR,
|
||||
strict: ERROR,
|
||||
|
||||
// Enforced by Prettier
|
||||
// TODO: Prettier doesn't handle long strings or long comments. Not a big
|
||||
// deal. But I turned it off because loading the plugin causes some obscure
|
||||
// syntax error and it didn't seem worth investigating.
|
||||
'max-len': OFF,
|
||||
|
||||
// React & JSX
|
||||
// Our transforms set this automatically
|
||||
'react/jsx-boolean-value': [ERROR, 'always'],
|
||||
'react/jsx-no-undef': ERROR,
|
||||
// We don't care to do this
|
||||
'react/jsx-sort-prop-types': OFF,
|
||||
'react/jsx-space-before-closing': ERROR,
|
||||
'react/jsx-uses-react': ERROR,
|
||||
'react/no-is-mounted': OFF,
|
||||
// This isn't useful in our test code
|
||||
'react/react-in-jsx-scope': ERROR,
|
||||
'react/self-closing-comp': ERROR,
|
||||
// We don't care to do this
|
||||
'react/jsx-wrap-multilines': [
|
||||
ERROR,
|
||||
{declaration: false, assignment: false},
|
||||
],
|
||||
|
||||
// Prevent for...of loops because they require a Symbol polyfill.
|
||||
// You can disable this rule for code that isn't shipped (e.g. build scripts and tests).
|
||||
'no-for-of-loops/no-for-of-loops': ERROR,
|
||||
|
||||
// Prevent function declarations after return statements
|
||||
'no-function-declare-after-return/no-function-declare-after-return': ERROR,
|
||||
},
|
||||
|
||||
overrides: [
|
||||
{
|
||||
// We apply these settings to the source files that get compiled.
|
||||
// They can use all features including JSX (but shouldn't use `var`).
|
||||
files: [
|
||||
// Internal forwarding modules
|
||||
'libs/*/*.js',
|
||||
// Source files
|
||||
'libs/*/src/**/*.js',
|
||||
],
|
||||
parser: 'babel-eslint',
|
||||
parserOptions: {
|
||||
ecmaVersion: 8,
|
||||
sourceType: 'module',
|
||||
},
|
||||
rules: {
|
||||
'no-var': ERROR,
|
||||
'prefer-const': ERROR,
|
||||
strict: OFF,
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['**/__tests__/*.js'],
|
||||
rules: {
|
||||
// https://github.com/jest-community/eslint-plugin-jest
|
||||
'jest/no-focused-tests': ERROR,
|
||||
'jest/valid-expect': ERROR,
|
||||
'jest/valid-expect-in-promise': ERROR,
|
||||
},
|
||||
},
|
||||
{
|
||||
files: [
|
||||
'**/__tests__/**/*.js',
|
||||
'scripts/**/*.js',
|
||||
'libs/*/npm/**/*.js',
|
||||
'libs/dom-event-testing-library/**/*.js',
|
||||
'libs/react-devtools*/**/*.js',
|
||||
],
|
||||
rules: {
|
||||
'react-internal/no-production-logging': OFF,
|
||||
'react-internal/warning-args': OFF,
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['libs/react-native-renderer/**/*.js'],
|
||||
globals: {
|
||||
nativeFabricUIManager: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['libs/react-transport-dom-webpack/**/*.js'],
|
||||
globals: {
|
||||
__webpack_chunk_load__: true,
|
||||
__webpack_require__: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['libs/scheduler/**/*.js'],
|
||||
globals: {
|
||||
TaskController: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
files: [
|
||||
'scripts/e2e-test/**/*.js',
|
||||
'scripts/e2e-test/**/*.jsx',
|
||||
],
|
||||
parserOptions: {
|
||||
sourceType: 'module',
|
||||
},
|
||||
}
|
||||
],
|
||||
|
||||
globals: {
|
||||
SharedArrayBuffer: true,
|
||||
|
||||
spyOnDev: true,
|
||||
spyOnDevAndProd: true,
|
||||
spyOnProd: true,
|
||||
__PROFILE__: true,
|
||||
__UMD__: true,
|
||||
__EXPERIMENTAL__: true,
|
||||
__VARIANT__: true,
|
||||
gate: true,
|
||||
trustedTypes: true,
|
||||
},
|
||||
};
|
|
@ -0,0 +1,5 @@
|
|||
node_modules
|
||||
build/
|
||||
.idea
|
||||
.vscode
|
||||
package-lock.json
|
|
@ -0,0 +1,17 @@
|
|||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
printWidth: 120, // 一行120字符数,如果超过会进行换行
|
||||
tabWidth: 2, // tab等2个空格
|
||||
useTabs: false, // 用空格缩进行
|
||||
semi: true, // 行尾使用分号
|
||||
singleQuote: true, // 字符串使用单引号
|
||||
quoteProps: 'as-needed', // 仅在需要时在对象属性添加引号
|
||||
jsxSingleQuote: false, // 在JSX中使用双引号
|
||||
trailingComma: 'es5', // 使用尾逗号(对象、数组等)
|
||||
bracketSpacing: true, // 对象的括号间增加空格
|
||||
jsxBracketSameLine: false, // 将多行JSX元素的>放在最后一行的末尾
|
||||
arrowParens: 'avoid', // 在唯一的arrow函数参数周围省略括号
|
||||
vueIndentScriptAndStyle: false, // 不缩进Vue文件中的<script>和<style>标记内的代码
|
||||
endOfLine: 'lf', // 仅限换行(\n)
|
||||
};
|
15
README.md
15
README.md
|
@ -1 +1,16 @@
|
|||
# horizon
|
||||
|
||||
## 工程编译:
|
||||
1、npm install
|
||||
2、npm run build
|
||||
|
||||
全局单元测试 npm run test
|
||||
|
||||
发布包:
|
||||
npm publish build/horizon --_auth=XXX
|
||||
|
||||
XXX是base64编码后的密码值,CMO保管。
|
||||
|
||||
## 不兼容:
|
||||
1. input中的defaultValue值不支持改变,即:只有开始设置的值生效。
|
||||
2. JSX里面不支持<!-- xxx -->注释。
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
{"fileVersion":"1","name":"Horizon","serviceId":"067e5bef6cd240ae9460229d107a99a6","description":"","version":"1.0.0","type":"microService","processes":{"Horizon":{"subscribes":[]}}}
|
|
@ -0,0 +1,32 @@
|
|||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
presets: [
|
||||
'@babel/preset-typescript',
|
||||
],
|
||||
plugins: [
|
||||
['@babel/plugin-proposal-class-properties', { loose: true }],
|
||||
'syntax-trailing-function-commas',
|
||||
[
|
||||
'@babel/plugin-proposal-object-rest-spread',
|
||||
{ loose: true, useBuiltIns: true },
|
||||
],
|
||||
['@babel/plugin-transform-template-literals', { loose: true }],
|
||||
'@babel/plugin-transform-literals',
|
||||
'@babel/plugin-transform-arrow-functions',
|
||||
'@babel/plugin-transform-block-scoped-functions',
|
||||
'@babel/plugin-transform-object-super',
|
||||
'@babel/plugin-transform-shorthand-properties',
|
||||
'@babel/plugin-transform-computed-properties',
|
||||
'@babel/plugin-transform-for-of',
|
||||
['@babel/plugin-transform-spread', { loose: true, useBuiltIns: true }],
|
||||
'@babel/plugin-transform-parameters',
|
||||
['@babel/plugin-transform-destructuring', { loose: true, useBuiltIns: true }],
|
||||
['@babel/plugin-transform-block-scoping', { throwIfClosureRequired: true }],
|
||||
'@babel/plugin-transform-classes',
|
||||
'@babel/plugin-transform-runtime',
|
||||
'@babel/plugin-proposal-nullish-coalescing-operator',
|
||||
'@babel/plugin-proposal-optional-chaining',
|
||||
['@babel/plugin-proposal-private-methods', { 'loose': true }]
|
||||
],
|
||||
};
|
|
@ -0,0 +1 @@
|
|||
# `horizon`
|
|
@ -0,0 +1 @@
|
|||
declare var isDev: any;
|
|
@ -0,0 +1,7 @@
|
|||
'use strict';
|
||||
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
module.exports = require('./cjs/horizon.production.js');
|
||||
} else {
|
||||
module.exports = require('./cjs/horizon.development.js');
|
||||
}
|
|
@ -0,0 +1,100 @@
|
|||
import {
|
||||
Children,
|
||||
createRef,
|
||||
Component,
|
||||
PureComponent,
|
||||
createContext,
|
||||
forwardRef,
|
||||
lazy,
|
||||
memo,
|
||||
useCallback,
|
||||
useContext,
|
||||
useEffect,
|
||||
useImperativeHandle,
|
||||
useLayoutEffect,
|
||||
useMemo,
|
||||
useReducer,
|
||||
useRef,
|
||||
useState,
|
||||
Fragment,
|
||||
Profiler,
|
||||
StrictMode,
|
||||
Suspense,
|
||||
createElement,
|
||||
cloneElement,
|
||||
isValidElement,
|
||||
} from './horizon/src/external/Horizon';
|
||||
|
||||
import {
|
||||
render,
|
||||
createPortal,
|
||||
unstable_batchedUpdates,
|
||||
findDOMNode,
|
||||
unmountComponentAtNode,
|
||||
} from './horizon/src/dom/DOMExternal';
|
||||
|
||||
const Horizon = {
|
||||
Children,
|
||||
createRef,
|
||||
Component,
|
||||
PureComponent,
|
||||
createContext,
|
||||
forwardRef,
|
||||
lazy,
|
||||
memo,
|
||||
useCallback,
|
||||
useContext,
|
||||
useEffect,
|
||||
useImperativeHandle,
|
||||
useLayoutEffect,
|
||||
useMemo,
|
||||
useReducer,
|
||||
useRef,
|
||||
useState,
|
||||
Fragment,
|
||||
Profiler,
|
||||
StrictMode,
|
||||
Suspense,
|
||||
createElement,
|
||||
cloneElement,
|
||||
isValidElement,
|
||||
render,
|
||||
createPortal,
|
||||
unstable_batchedUpdates,
|
||||
findDOMNode,
|
||||
unmountComponentAtNode,
|
||||
};
|
||||
|
||||
export {
|
||||
Children,
|
||||
createRef,
|
||||
Component,
|
||||
PureComponent,
|
||||
createContext,
|
||||
forwardRef,
|
||||
lazy,
|
||||
memo,
|
||||
useCallback,
|
||||
useContext,
|
||||
useEffect,
|
||||
useImperativeHandle,
|
||||
useLayoutEffect,
|
||||
useMemo,
|
||||
useReducer,
|
||||
useRef,
|
||||
useState,
|
||||
Fragment,
|
||||
Profiler,
|
||||
StrictMode,
|
||||
Suspense,
|
||||
createElement,
|
||||
cloneElement,
|
||||
isValidElement,
|
||||
render,
|
||||
createPortal,
|
||||
unstable_batchedUpdates,
|
||||
findDOMNode,
|
||||
unmountComponentAtNode,
|
||||
};
|
||||
|
||||
export default Horizon;
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"name": "@cloudsop/horizon",
|
||||
"description": "Horizon is a JavaScript framework library.",
|
||||
"keywords": [
|
||||
"horizon"
|
||||
],
|
||||
"version": "1.0.0",
|
||||
"homepage": "",
|
||||
"bugs": "",
|
||||
"main": "index.js",
|
||||
"repository": {},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
},
|
||||
"dependencies": {}
|
||||
}
|
|
@ -0,0 +1,143 @@
|
|||
{
|
||||
"private": true,
|
||||
"workspaces": [
|
||||
"libs/*"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.10.5",
|
||||
"@babel/code-frame": "^7.10.4",
|
||||
"@babel/core": "^7.11.1",
|
||||
"@babel/eslint-parser": "^7.11.4",
|
||||
"@babel/helper-module-imports": "^7.10.4",
|
||||
"@babel/parser": "^7.11.3",
|
||||
"@babel/plugin-external-helpers": "^7.10.4",
|
||||
"@babel/plugin-proposal-class-properties": "^7.14.5",
|
||||
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0",
|
||||
"@babel/plugin-proposal-object-rest-spread": "^7.11.0",
|
||||
"@babel/plugin-proposal-optional-chaining": "^7.16.0",
|
||||
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
||||
"@babel/plugin-syntax-jsx": "^7.10.4",
|
||||
"@babel/plugin-transform-arrow-functions": "^7.10.4",
|
||||
"@babel/plugin-transform-async-to-generator": "^7.10.4",
|
||||
"@babel/plugin-transform-block-scoped-functions": "^7.10.4",
|
||||
"@babel/plugin-transform-block-scoping": "^7.11.1",
|
||||
"@babel/plugin-transform-classes": "^7.14.2",
|
||||
"@babel/plugin-transform-computed-properties": "^7.10.4",
|
||||
"@babel/plugin-transform-destructuring": "^7.10.4",
|
||||
"@babel/plugin-transform-for-of": "^7.10.4",
|
||||
"@babel/plugin-transform-literals": "^7.10.4",
|
||||
"@babel/plugin-transform-modules-commonjs": "^7.10.4",
|
||||
"@babel/plugin-transform-object-super": "^7.10.4",
|
||||
"@babel/plugin-transform-parameters": "^7.10.5",
|
||||
"@babel/plugin-transform-react-jsx-source": "^7.10.5",
|
||||
"@babel/plugin-transform-runtime": "^7.14.5",
|
||||
"@babel/plugin-transform-shorthand-properties": "^7.10.4",
|
||||
"@babel/plugin-transform-spread": "^7.11.0",
|
||||
"@babel/plugin-transform-template-literals": "^7.10.5",
|
||||
"@babel/preset-env": "^7.14.7",
|
||||
"@babel/preset-flow": "^7.10.4",
|
||||
"@babel/preset-react": "^7.14.5",
|
||||
"@babel/preset-typescript": "7.8.3",
|
||||
"@babel/register": "^7.14.5",
|
||||
"@babel/traverse": "^7.11.0",
|
||||
"@cloudsop/eview-ui": "^0.1.65",
|
||||
"@mattiasbuelens/web-streams-polyfill": "^0.3.2",
|
||||
"art": "0.10.1",
|
||||
"babel-eslint": "^10.0.3",
|
||||
"babel-loader": "^8.2.2",
|
||||
"babel-plugin-syntax-trailing-function-commas": "^6.5.0",
|
||||
"chalk": "^3.0.0",
|
||||
"clean-webpack-plugin": "^4.0.0-alpha.0",
|
||||
"cli-table": "^0.3.1",
|
||||
"coffee-script": "^1.12.7",
|
||||
"concurrently": "^6.2.0",
|
||||
"confusing-browser-globals": "^1.0.9",
|
||||
"copy-webpack-plugin": "5.0.4",
|
||||
"core-js": "^3.6.4",
|
||||
"coveralls": "^3.0.9",
|
||||
"create-react-class": "^15.6.3",
|
||||
"cross-env": "^7.0.3",
|
||||
"css-loader": "3.4.2",
|
||||
"danger": "^9.2.10",
|
||||
"ejs": "^3.1.6",
|
||||
"error-stack-parser": "^2.0.6",
|
||||
"eslint": "^7.32.0",
|
||||
"eslint-config-fbjs": "^1.1.1",
|
||||
"eslint-config-prettier": "^6.9.0",
|
||||
"eslint-plugin-babel": "^5.3.0",
|
||||
"eslint-plugin-flowtype": "^2.25.0",
|
||||
"eslint-plugin-jest": "^22.15.0",
|
||||
"eslint-plugin-no-for-of-loops": "^1.0.0",
|
||||
"eslint-plugin-no-function-declare-after-return": "^1.0.0",
|
||||
"eslint-plugin-react": "^6.7.1",
|
||||
"eslint-webpack-plugin": "^3.0.1",
|
||||
"express": "^4.17.1",
|
||||
"fbjs-scripts": "1.2.0",
|
||||
"filesize": "^6.0.1",
|
||||
"flow-bin": "0.97",
|
||||
"glob": "^7.1.6",
|
||||
"glob-stream": "^6.1.0",
|
||||
"google-closure-compiler": "^20200517.0.0",
|
||||
"gzip-size": "^5.1.1",
|
||||
"html-webpack-plugin": "4.4.1",
|
||||
"jasmine-check": "^1.0.0-rc.0",
|
||||
"jest": "^25.2.7",
|
||||
"jest-cli": "^25.2.7",
|
||||
"jest-diff": "^25.2.6",
|
||||
"jest-environment-jsdom-sixteen": "^1.0.3",
|
||||
"jest-react": "^0.12.0",
|
||||
"jest-snapshot-serializer-raw": "^1.1.0",
|
||||
"minimatch": "^3.0.4",
|
||||
"minimist": "^1.2.3",
|
||||
"mkdirp": "^0.5.1",
|
||||
"mocha": "^9.0.1",
|
||||
"ncp": "^2.0.0",
|
||||
"object-assign": "^4.1.1",
|
||||
"pacote": "^10.3.0",
|
||||
"power-assert": "^1.6.1",
|
||||
"prettier": "1.19.1",
|
||||
"prop-types": "^15.6.2",
|
||||
"puppeteer-core": "^10.1.0",
|
||||
"random-seed": "^0.3.0",
|
||||
"react-is": "^17.0.2",
|
||||
"react-lifecycles-compat": "^3.0.4",
|
||||
"react-router-dom": "^5.2.0",
|
||||
"resemblejs": "^4.0.0",
|
||||
"rimraf": "^3.0.0",
|
||||
"semver": "^7.1.1",
|
||||
"style-loader": "1.0.0",
|
||||
"targz": "^1.0.1",
|
||||
"through2": "^3.0.1",
|
||||
"tmp": "^0.1.0",
|
||||
"tslint": "^6.0.0",
|
||||
"typescript": "^3.9.7",
|
||||
"url-loader": "^4.1.1",
|
||||
"wait-on": "^6.0.0",
|
||||
"webpack": "^4.46.0",
|
||||
"webpack-cli": "^4.7.2",
|
||||
"yargs": "^15.3.1"
|
||||
},
|
||||
"devEngines": {
|
||||
"node": "8.x || 9.x || 10.x || 11.x || 12.x || 13.x || 14.x"
|
||||
},
|
||||
"jest": {
|
||||
"testRegex": "/scripts/jest/dont-run-jest-directly\\.js$"
|
||||
},
|
||||
"scripts": {
|
||||
"build": " webpack --config ./scripts/webpack/webpack.config.js",
|
||||
"build-3rdLib": "node ./scripts/gen3rdLib.js",
|
||||
"build-3rdLib-dev": "node ./scripts/gen3rdLib.js --dev",
|
||||
"debug-test": "yarn test --debug",
|
||||
"test": "node ./scripts/jest/jest-cli.js",
|
||||
"watch-test": "yarn test --watch --release-channel=horizon --dev"
|
||||
},
|
||||
"dependencies": {
|
||||
"@elg/speedscope": "^1.9.0-a6f84db",
|
||||
"babel-code-frame": "^6.26.0",
|
||||
"grunt-cli": "^1.4.3",
|
||||
"react-dom": "^17.0.2",
|
||||
"react-shallow-renderer": "^16.14.1",
|
||||
"rxjs": "^7.1.0",
|
||||
"symlink-dir": "^4.2.0"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"outDir": "./build",
|
||||
"incremental": false,
|
||||
"sourceMap": false,
|
||||
"allowJs": true, // allowJs=true => tsc compile js as module, no type check
|
||||
"checkJs": false, // Disable ts error checking in js
|
||||
"strict": false, // js-ts mixed setting
|
||||
"noImplicitReturns": true,
|
||||
"noUnusedLocals": false, // 等大部分js代码改成ts之后再启用.
|
||||
"noUnusedParameters": false,
|
||||
"noImplicitAny": false,
|
||||
"noImplicitThis": true,
|
||||
// "strictNullChecks": true,
|
||||
"module": "CommonJS",
|
||||
"skipLibCheck": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"moduleResolution": "node",
|
||||
"target": "es5",
|
||||
"jsx": "react",
|
||||
"resolveJsonModule": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"allowUnreachableCode": true,
|
||||
"alwaysStrict": true,
|
||||
"esModuleInterop": true,
|
||||
"declaration": true,
|
||||
"experimentalDecorators": true,
|
||||
"downlevelIteration": true,
|
||||
"types": [], // 赋值为空数组使@types/node不会起作用
|
||||
"lib": ["dom", "esnext", "ES2015", "ES2016", "ES2017", "ES2018", "ES2019", "ES2020"],
|
||||
"baseUrl": ".",
|
||||
"rootDir": "./libs"
|
||||
},
|
||||
"include": [
|
||||
"./libs/**/src/**/*.ts",
|
||||
"libs/index.d.ts"
|
||||
],
|
||||
"exclude": ["node_modules", "**/*.spec.ts", "dev"]
|
||||
}
|
|
@ -0,0 +1,107 @@
|
|||
{
|
||||
"rules": {
|
||||
"deprecation": true,
|
||||
"use-isnan": true,
|
||||
"max-line-length": [
|
||||
true,
|
||||
{
|
||||
"limit": 120,
|
||||
"ignore-pattern": "^import |^export {(.*?)}",
|
||||
"check-strings": false,
|
||||
"check-regex": true
|
||||
}
|
||||
],
|
||||
"member-ordering": [true, { "order": "fields-first" }],
|
||||
"no-unnecessary-type-assertion": true,
|
||||
"no-parameter-reassignment": true,
|
||||
"no-string-throw": true,
|
||||
"no-unused-expression": true,
|
||||
"no-duplicate-variable": true,
|
||||
"no-for-in-array": true,
|
||||
"no-arg": true,
|
||||
"no-any": [true, { "ignore-rest-args": true }],
|
||||
"no-shadowed-variable": [
|
||||
true,
|
||||
{
|
||||
"class": true,
|
||||
"enum": true,
|
||||
"function": true,
|
||||
"interface": false,
|
||||
"namespace": true,
|
||||
"typeAlias": false,
|
||||
"typeParameter": false,
|
||||
"underscore": false
|
||||
}
|
||||
],
|
||||
"no-sparse-arrays": true,
|
||||
"no-string-literal": true,
|
||||
"no-for-in": true,
|
||||
"no-invalid-this": true,
|
||||
"no-switch-case-fall-through": true,
|
||||
"no-inferrable-types": [true, "ignore-params", "ignore-properties"],
|
||||
"no-non-null-assertion": true,
|
||||
"no-this-assignment": [
|
||||
true,
|
||||
{ "allowed-names": ["^self$"], "allow-destructuring": true }
|
||||
],
|
||||
"no-var-keyword": true,
|
||||
"no-require-imports": true,
|
||||
"prefer-for-of": true,
|
||||
"prefer-conditional-expression": [true, "check-else-if"],
|
||||
"prefer-object-spread": true,
|
||||
"typeof-compare": true,
|
||||
"cyclomatic-complexity": [true, 20],
|
||||
"max-file-line-count": [true, 500],
|
||||
"prefer-readonly": true,
|
||||
"prefer-const": true,
|
||||
"radix": true,
|
||||
"space-before-function-paren": [
|
||||
true,
|
||||
{
|
||||
"anonymous": "never",
|
||||
"named": "never",
|
||||
"asyncArrow": "always",
|
||||
"method": "never",
|
||||
"constructor": "never"
|
||||
}
|
||||
],
|
||||
"space-within-parens": 1,
|
||||
"type-literal-delimiter": true,
|
||||
"variable-name": {
|
||||
"options": [
|
||||
"ban-keywords",
|
||||
"check-format",
|
||||
"require-const-for-all-caps",
|
||||
"allow-pascal-case"
|
||||
]
|
||||
},
|
||||
"curly": true,
|
||||
"class-name": true,
|
||||
"one-line": [true, "check-catch", "check-finally", "check-else"],
|
||||
"arrow-parens": [true, "ban-single-arg-parens"],
|
||||
"indent": [true, "spaces", 4],
|
||||
"one-variable-per-declaration": true,
|
||||
"ban-comma-operator": true,
|
||||
"function-constructor": true,
|
||||
"semicolon": [true, "always", "ignore-bound-class-methods"],
|
||||
"jsdoc-format": [true, "check-multiline-start"],
|
||||
"no-irregular-whitespace": true,
|
||||
"no-trailing-whitespace": [
|
||||
true,
|
||||
"ignore-comments",
|
||||
"ignore-jsdoc",
|
||||
"ignore-template-strings",
|
||||
"ignore-blank-lines"
|
||||
],
|
||||
"triple-equals": true,
|
||||
"prefer-template": [true, "allow-single-concat"],
|
||||
"quotemark": [
|
||||
true,
|
||||
"single",
|
||||
"jsx-double",
|
||||
"avoid-template",
|
||||
"avoid-escape"
|
||||
]
|
||||
},
|
||||
"defaultSeverity": "warning"
|
||||
}
|
Loading…
Reference in New Issue