Files
azuredatastudio/tslint.json
Anthony Dresser 8e070454c3 Global object linting (#6857)
* add more linting

* fix linting issues
2019-08-22 10:51:59 -07:00

235 lines
5.3 KiB
JSON

{
"rulesDirectory": [
"build/lib/tslint"
],
"rules": {
"no-arg": true,
"no-construct": true,
"no-debugger": true,
"no-duplicate-super": true,
"no-duplicate-switch-case": true,
"no-duplicate-variable": true,
"no-for-in-array": true,
"no-eval": true,
"no-redundant-jsdoc": true,
"no-restricted-globals": true,
"no-sparse-arrays": true,
"no-string-throw": true,
"no-unsafe-finally": true,
"no-unused-expression": true,
"no-var-keyword": true,
"number-literal-format": true,
"curly": true,
"class-name": true,
"label-position": true,
"semicolon": [
true,
"always"
],
"triple-equals": true,
"no-unexternalized-strings": [
true,
{
"signatures": [
"localize",
"nls.localize"
],
"keyIndex": 0,
"messageIndex": 1
}
],
"layering": [
true,
{
"common": [
"browser" // {{SQL CARBON EDIT}} @anthonydresser not ideal, but for our purposes its fine for now
],
"node": [
"common"
],
"browser": [
"common"
],
"electron-main": [
"common",
"node"
],
"electron-browser": [
"common",
"browser",
"node"
]
}
],
// {{SQL CARBON EDIT}} @anthonydresser for the most part these rules should be the same as vscode with some changes
// anything that references **/vs/** should references **/{vs,sql}/** instead
// @angular/* and rxjs/* are added to browser and electron-browser restrictions since * doesn't cover them
// to begin with the only import patterns we are enforcing is import patterns in */base/*
"import-patterns": [
true,
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// !!! Do not relax these rules !!!
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
{
"target": "**/{vs,sql}/base/common/**",
"restrictions": [
"vs/nls",
"**/{vs,sql}/base/common/**"
]
},
{
"target": "**/{vs,sql}/base/test/common/**",
"restrictions": [
"assert",
"vs/nls",
"**/{vs,sql}/base/common/**",
"**/{vs,sql}/base/test/common/**"
]
},
{
"target": "**/{vs,sql}/base/browser/**",
"restrictions": [
"vs/nls",
"vs/css!./**/*",
"**/{vs,sql}/base/{common,browser}/**",
"@angular/*",
"rxjs/*"
]
},
{
"target": "**/{vs,sql}/base/node/**",
"restrictions": [
"vs/nls",
"**/{vs,sql}/base/{common,browser,node}/**",
"*" // node modules
]
},
{
// vs/base/test/browser contains tests for vs/base/browser
"target": "**/{vs,sql}/base/test/browser/**",
"restrictions": [
"assert",
"vs/nls",
"**/{vs,sql}/base/{common,browser}/**",
"**/{vs,sql}/base/test/{common,browser}/**",
"@angular/*",
"rxjs/*"
]
},
{
"target": "**/{vs,sql}/base/parts/*/common/**",
"restrictions": [
"vs/nls",
"**/{vs,sql}/base/common/**",
"**/{vs,sql}/base/parts/*/common/**"
]
},
{
"target": "**/{vs,sql}/base/parts/*/browser/**",
"restrictions": [
"vs/nls",
"vs/css!./**/*",
"**/{vs,sql}/base/{common,browser}/**",
"**/{vs,sql}/base/parts/*/{common,browser}/**",
"@angular/*",
"rxjs/*"
]
},
{
"target": "**/{vs,sql}/base/parts/*/node/**",
"restrictions": [
"vs/nls",
"**/{vs,sql}/base/{common,browser,node}/**",
"**/{vs,sql}/base/parts/*/{common,browser,node}/**",
"*" // node modules
]
},
{
"target": "**/{vs,sql}/base/parts/*/electron-browser/**",
"restrictions": [
"vs/nls",
"vs/css!./**/*",
"**/{vs,sql}/base/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/base/parts/*/{common,browser,node,electron-browser}/**",
"*", // node modules
"@angular/*",
"rxjs/*"
]
},
{
"target": "**/{vs,sql}/base/parts/*/electron-main/**",
"restrictions": [
"vs/nls",
"**/{vs,sql}/base/{common,browser,node,electron-main}/**",
"**/{vs,sql}/base/parts/*/{common,browser,node,electron-main}/**",
"*", // node modules
"@angular/*",
"rxjs/*"
]
}
],
// {{SQL CARBON EDIT}}
// remove import patterns and layering
"no-nodejs-globals": [
true,
{
"target": "**/{vs,sql}/base/common/{path,process,platform}.ts",
"allowed": [
"process" // -> defines safe access to process
]
},
{
"target": "**/{vs,sql}/**/test/{common,browser}/**",
"allowed": [
"process",
"Buffer",
"__filename",
"__dirname"
]
},
{
"target": "**/{vs,sql}/workbench/api/common/extHostExtensionService.ts",
"allowed": [
"global" // -> safe access to 'global'
]
},
{
"target": "**/vs/workbench/contrib/tasks/browser/terminalTaskSystem.ts",
"allowed": [
"process"
]
},
{
"target": "**/{vs,sql}/**/{common,browser}/**",
"allowed": [ /* none */]
}
],
"no-dom-globals": [
true,
{
"target": "**/{vs,sql}/**/test/{common,node,electron-main}/**",
"allowed": [
"document",
"HTMLElement"
]
},
{
"target": "**/vs/workbench/contrib/terminal/common/{terminal.ts,terminalService.ts}",
"allowed": [
"HTMLElement"
]
},
{
"target": "**/{vs,sql}/**/{common,node,electron-main}/**",
"allowed": [ /* none */]
}
],
"duplicate-imports": true,
"no-new-buffer": true,
"translation-remind": true,
"no-standalone-editor": true,
"no-nls-in-standalone-editor": true
},
"defaultSeverity": "warning"
}