##// END OF EJS Templates
linting
cin -
r108:d644dced936e default
parent child
Show More
@@ -20,6 +20,8
20 "@typescript-eslint"
20 "@typescript-eslint"
21 ],
21 ],
22 "rules": {
22 "rules": {
23 "react/react-in-jsx-scope": "off",
24 "react/no-unknown-property": "off",
23 "@typescript-eslint/no-empty-function": "off",
25 "@typescript-eslint/no-empty-function": "off",
24 "max-classes-per-file": [
26 "max-classes-per-file": [
25 "error",
27 "error",
@@ -18,7 +18,7
18 "@typescript-eslint/eslint-plugin": "^5.23.0",
18 "@typescript-eslint/eslint-plugin": "^5.23.0",
19 "@typescript-eslint/parser": "^5.23.0",
19 "@typescript-eslint/parser": "^5.23.0",
20 "dojo": "1.16.0",
20 "dojo": "1.16.0",
21 "eslint": "^8.15.0",
21 "eslint": "^8.23.0",
22 "eslint-config-standard": "^17.0.0",
22 "eslint-config-standard": "^17.0.0",
23 "eslint-plugin-import": "^2.26.0",
23 "eslint-plugin-import": "^2.26.0",
24 "eslint-plugin-n": "^15.2.0",
24 "eslint-plugin-n": "^15.2.0",
@@ -26,7 +26,6
26 "eslint-plugin-react": "^7.29.4",
26 "eslint-plugin-react": "^7.29.4",
27 "requirejs": "2.3.6",
27 "requirejs": "2.3.6",
28 "tap": "16.3.0",
28 "tap": "16.3.0",
29 "tslint": "^6.1.3",
30 "typescript": "4.8.3",
29 "typescript": "4.8.3",
31 "yaml": "~1.7.2"
30 "yaml": "~1.7.2"
32 },
31 },
@@ -1171,15 +1170,6
1171 "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
1170 "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
1172 "dev": true
1171 "dev": true
1173 },
1172 },
1174 "node_modules/builtin-modules": {
1175 "version": "1.1.1",
1176 "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
1177 "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
1178 "dev": true,
1179 "engines": {
1180 "node": ">=0.10.0"
1181 }
1182 },
1183 "node_modules/builtins": {
1173 "node_modules/builtins": {
1184 "version": "5.0.1",
1174 "version": "5.0.1",
1185 "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz",
1175 "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz",
@@ -1351,12 +1341,6
1351 "color-support": "bin.js"
1341 "color-support": "bin.js"
1352 }
1342 }
1353 },
1343 },
1354 "node_modules/commander": {
1355 "version": "2.20.3",
1356 "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
1357 "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
1358 "dev": true
1359 },
1360 "node_modules/commondir": {
1344 "node_modules/commondir": {
1361 "version": "1.0.1",
1345 "version": "1.0.1",
1362 "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
1346 "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
@@ -3407,18 +3391,6
3407 "node": ">=8"
3391 "node": ">=8"
3408 }
3392 }
3409 },
3393 },
3410 "node_modules/mkdirp": {
3411 "version": "0.5.5",
3412 "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
3413 "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
3414 "dev": true,
3415 "dependencies": {
3416 "minimist": "^1.2.5"
3417 },
3418 "bin": {
3419 "mkdirp": "bin/cmd.js"
3420 }
3421 },
3422 "node_modules/ms": {
3394 "node_modules/ms": {
3423 "version": "2.1.2",
3395 "version": "2.1.2",
3424 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
3396 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -3965,15 +3937,6
3965 "node": ">=0.4.0"
3937 "node": ">=0.4.0"
3966 }
3938 }
3967 },
3939 },
3968 "node_modules/resolve": {
3969 "version": "1.17.0",
3970 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
3971 "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
3972 "dev": true,
3973 "dependencies": {
3974 "path-parse": "^1.0.6"
3975 }
3976 },
3977 "node_modules/resolve-from": {
3940 "node_modules/resolve-from": {
3978 "version": "4.0.0",
3941 "version": "4.0.0",
3979 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
3942 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
@@ -6386,57 +6349,6
6386 "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
6349 "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
6387 "dev": true
6350 "dev": true
6388 },
6351 },
6389 "node_modules/tslint": {
6390 "version": "6.1.3",
6391 "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz",
6392 "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==",
6393 "dev": true,
6394 "dependencies": {
6395 "@babel/code-frame": "^7.0.0",
6396 "builtin-modules": "^1.1.1",
6397 "chalk": "^2.3.0",
6398 "commander": "^2.12.1",
6399 "diff": "^4.0.1",
6400 "glob": "^7.1.1",
6401 "js-yaml": "^3.13.1",
6402 "minimatch": "^3.0.4",
6403 "mkdirp": "^0.5.3",
6404 "resolve": "^1.3.2",
6405 "semver": "^5.3.0",
6406 "tslib": "^1.13.0",
6407 "tsutils": "^2.29.0"
6408 },
6409 "bin": {
6410 "tslint": "bin/tslint"
6411 },
6412 "engines": {
6413 "node": ">=4.8.0"
6414 }
6415 },
6416 "node_modules/tslint/node_modules/semver": {
6417 "version": "5.7.1",
6418 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
6419 "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
6420 "dev": true,
6421 "bin": {
6422 "semver": "bin/semver"
6423 }
6424 },
6425 "node_modules/tslint/node_modules/tslib": {
6426 "version": "1.13.0",
6427 "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
6428 "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
6429 "dev": true
6430 },
6431 "node_modules/tsutils": {
6432 "version": "2.29.0",
6433 "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
6434 "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
6435 "dev": true,
6436 "dependencies": {
6437 "tslib": "^1.8.1"
6438 }
6439 },
6440 "node_modules/type-check": {
6352 "node_modules/type-check": {
6441 "version": "0.4.0",
6353 "version": "0.4.0",
6442 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
6354 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -7612,12 +7524,6
7612 "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
7524 "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
7613 "dev": true
7525 "dev": true
7614 },
7526 },
7615 "builtin-modules": {
7616 "version": "1.1.1",
7617 "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
7618 "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
7619 "dev": true
7620 },
7621 "builtins": {
7527 "builtins": {
7622 "version": "5.0.1",
7528 "version": "5.0.1",
7623 "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz",
7529 "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz",
@@ -7743,12 +7649,6
7743 "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
7649 "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
7744 "dev": true
7650 "dev": true
7745 },
7651 },
7746 "commander": {
7747 "version": "2.20.3",
7748 "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
7749 "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
7750 "dev": true
7751 },
7752 "commondir": {
7652 "commondir": {
7753 "version": "1.0.1",
7653 "version": "1.0.1",
7754 "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
7654 "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
@@ -9241,15 +9141,6
9241 "yallist": "^4.0.0"
9141 "yallist": "^4.0.0"
9242 }
9142 }
9243 },
9143 },
9244 "mkdirp": {
9245 "version": "0.5.5",
9246 "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
9247 "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
9248 "dev": true,
9249 "requires": {
9250 "minimist": "^1.2.5"
9251 }
9252 },
9253 "ms": {
9144 "ms": {
9254 "version": "2.1.2",
9145 "version": "2.1.2",
9255 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
9146 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -9651,15 +9542,6
9651 "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==",
9542 "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==",
9652 "dev": true
9543 "dev": true
9653 },
9544 },
9654 "resolve": {
9655 "version": "1.17.0",
9656 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
9657 "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
9658 "dev": true,
9659 "requires": {
9660 "path-parse": "^1.0.6"
9661 }
9662 },
9663 "resolve-from": {
9545 "resolve-from": {
9664 "version": "4.0.0",
9546 "version": "4.0.0",
9665 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
9547 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
@@ -11273,50 +11155,6
11273 "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
11155 "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
11274 "dev": true
11156 "dev": true
11275 },
11157 },
11276 "tslint": {
11277 "version": "6.1.3",
11278 "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz",
11279 "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==",
11280 "dev": true,
11281 "requires": {
11282 "@babel/code-frame": "^7.0.0",
11283 "builtin-modules": "^1.1.1",
11284 "chalk": "^2.3.0",
11285 "commander": "^2.12.1",
11286 "diff": "^4.0.1",
11287 "glob": "^7.1.1",
11288 "js-yaml": "^3.13.1",
11289 "minimatch": "^3.0.4",
11290 "mkdirp": "^0.5.3",
11291 "resolve": "^1.3.2",
11292 "semver": "^5.3.0",
11293 "tslib": "^1.13.0",
11294 "tsutils": "^2.29.0"
11295 },
11296 "dependencies": {
11297 "semver": {
11298 "version": "5.7.1",
11299 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
11300 "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
11301 "dev": true
11302 },
11303 "tslib": {
11304 "version": "1.13.0",
11305 "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
11306 "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
11307 "dev": true
11308 }
11309 }
11310 },
11311 "tsutils": {
11312 "version": "2.29.0",
11313 "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
11314 "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
11315 "dev": true,
11316 "requires": {
11317 "tslib": "^1.8.1"
11318 }
11319 },
11320 "type-check": {
11158 "type-check": {
11321 "version": "0.4.0",
11159 "version": "0.4.0",
11322 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
11160 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -220,18 +220,19 function isNodeBindSpec(v: object): v is
220 */
220 */
221 export function bind(params: NodeBindSpec | MemberBindSpec) {
221 export function bind(params: NodeBindSpec | MemberBindSpec) {
222 if (isNodeBindSpec(params)) {
222 if (isNodeBindSpec(params)) {
223 return (target: Record<string, unknown>, name: string) => {
223 return <K extends string>(target: Record<K, unknown>, name: K) => {
224 target[makeSetterName(name)] = params;
224 target[makeSetterName(name) as K /** hack to not go insane) */] = params;
225 };
225 };
226 } else {
226 } else {
227 return (target: Record<string, unknown> & { _set(name: string, v: unknown): void }, name: string) => {
227 return <K extends string,
228 target[name] = null;
228 T extends { [p in K]: p extends "_set" ? (name: p, v: unknown) => void : unknown; }> (target: T, name: K) => {
229 target[makeSetterName(name)] = function (v: unknown) {
229 target[name] = undefined as T[K];
230 target[makeSetterName(name) as K] = function (this: T, v: unknown) {
230 this._set(name, v);
231 this._set(name, v);
231 const inner = this[params.member] as Record<string, unknown>;
232 const inner = this[params.member] as Record<string, unknown>;
232 if (typeof inner.set === "function")
233 if (typeof inner.set === "function")
233 inner.set(params.property, v);
234 inner.set(params.property, v);
234 };
235 } as T[K];
235 if (params.getter)
236 if (params.getter)
236 target[makeGetterName(name)] = function () {
237 target[makeGetterName(name)] = function () {
237 const inner = this[params.member] as Record<string, unknown>;
238 const inner = this[params.member] as Record<string, unknown>;
@@ -242,17 +243,12 export function bind(params: NodeBindSpe
242 }
243 }
243 }
244 }
244
245
245 /** Создает в прототипе указанное свойство со значение `undefined`, данный
246 * декоратор следует использовать для свойств, у которых нет значения по-умолчанию
247 * и они не могут быть `null | undefined`
248 */
249 export function prototype(): (p: object, name: string) => void;
250 /** Создает в прототипе свойство с указанным значением.
246 /** Создает в прототипе свойство с указанным значением.
251 * @param value Значение, которое будет указано в прототипе
247 * @param value Значение, которое будет указано в прототипе
252 */
248 */
253 export function prototype<T>(value: T): <P extends { [m in K]: T }, K extends keyof P>(p: P, name: K) => void;
249 export function prototype<T>(value: T): <P extends { [m in K]: T }, K extends keyof P>(p: P, name: K) => void;
254 export function prototype<T>(value?: T) {
250 export function prototype<T>(value?: T) {
255 return <P extends { [m in K]: T }, K extends keyof P>(p: P, name: K) => {
251 return (p: { [m in string]: T | undefined }, name: string) => {
256 p[name] = value as any;
252 p[name] = value;
257 };
253 };
258 }
254 }
@@ -4,7 +4,7 import _WidgetBase = require("dijit/_Wid
4 import registry = require("dijit/registry");
4 import registry = require("dijit/registry");
5
5
6 interface _WidgetBaseConstructor {
6 interface _WidgetBaseConstructor {
7 new <E extends { [k in keyof E]: Event } = {}>(params?: Partial<_WidgetBase<E>> & ThisType<_WidgetBase<E>>, srcNodeRef?: string | Node): _WidgetBase<E> & dojo._base.DeclareCreatedObject;
7 new <E extends { [k in keyof E]: Event } = object>(params?: Partial<_WidgetBase<E>> & ThisType<_WidgetBase<E>>, srcNodeRef?: string | Node): _WidgetBase<E> & dojo._base.DeclareCreatedObject;
8 prototype: _WidgetBase;
8 prototype: _WidgetBase;
9 }
9 }
10
10
@@ -12,7 +12,7 const consumer1 = {
12 next(v: number) {
12 next(v: number) {
13 this.sum += v;
13 this.sum += v;
14 }
14 }
15 }
15 };
16
16
17 subj1.subscribe(consumer1);
17 subj1.subscribe(consumer1);
18 t.equal(consumer1.sum, 1, "Should get only one value");
18 t.equal(consumer1.sum, 1, "Should get only one value");
@@ -31,19 +31,19 let maps = 0;
31
31
32 subj1
32 subj1
33 .map(v => {
33 .map(v => {
34 t.comment("map1: " + v * 2);
34 t.comment(`map1: ${v * 2}`);
35 maps++;
35 maps++;
36 return v * 2;
36 return v * 2;
37 })
37 })
38 .map (v => {
38 .map (v => {
39 t.comment("map2: " + v * 2);
39 t.comment(`map2: ${v * 2}`);
40 maps++;
40 maps++;
41 return v * 2;
41 return v * 2;
42 })
42 })
43 .map(v => {
43 .map(v => {
44 t.comment("map3: " + v * 2);
44 t.comment(`map3: ${v * 2}`);
45 maps++;
45 maps++;
46 return v * 2
46 return v * 2;
47 })
47 })
48 .subscribe(consumer2);
48 .subscribe(consumer2);
49
49
@@ -26,11 +26,11 export class MyWidget extends djbase(Djx
26 @bind({ node: "titleNode", type: "innerHTML" })
26 @bind({ node: "titleNode", type: "innerHTML" })
27 title = "";
27 title = "";
28
28
29 @prototype()
29 @prototype(0)
30 counter = 0;
30 counter = 0;
31
31
32 render() {
32 render() {
33 const Frame = ({children, ref}: {ref: JSX.Ref<HTMLDivElement>, children: any[]}) => <div ref={ref} >{children}</div>;
33 const Frame = ({children, ref}: {ref: JSX.Ref<HTMLDivElement>, children: unknown[]}) => <div ref={ref} >{children}</div>;
34 return <div className="myWidget" onsubmit={e => this._onSubmit(e)} tabIndex={3} style={{ alignContent: "center", border: "1px solid" }} >
34 return <div className="myWidget" onsubmit={e => this._onSubmit(e)} tabIndex={3} style={{ alignContent: "center", border: "1px solid" }} >
35 <h1 data-dojo-attach-point="titleNode"></h1>
35 <h1 data-dojo-attach-point="titleNode"></h1>
36 <Frame ref={ v => {}}>
36 <Frame ref={ v => {}}>
General Comments 0
You need to be logged in to leave comments. Login now