Skip to content

Commit dcd2ac0

Browse files
committed
Convert localization plugin to use ESLint.
1 parent 92c9bfc commit dcd2ac0

8 files changed

Lines changed: 17 additions & 15 deletions

File tree

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// This is a workaround for https://github.com/eslint/eslint/issues/3458
2+
require("@rushstack/eslint-config/patch-eslint6");
3+
4+
module.exports = {
5+
extends: [ "@rushstack/eslint-config" ],
6+
parserOptions: { tsconfigRootDir: __dirname },
7+
};

webpack/localization-plugin/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
"@types/webpack": "4.39.8",
3232
"@microsoft/rush-stack-compiler-3.5": "0.4.2",
3333
"@microsoft/node-library-build": "6.4.3",
34+
"@rushstack/eslint-config": "0.5.4",
3435
"@types/glob": "7.1.1",
3536
"@types/loader-utils": "1.1.3",
3637
"@types/jju": "1.4.1",

webpack/localization-plugin/src/LocJsonPreprocessor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export class LocJsonPreprocessor {
6565
];
6666

6767
const locJsonFile: ILocJsonFile = JsonFile.loadAndValidate(locJsonFilePath, locJsonSchema);
68-
for (const stringName in locJsonFile) { // tslint:disable-line:forin
68+
for (const stringName in locJsonFile) { // eslint-disable-line guard-for-in
6969
const { comment } = locJsonFile[stringName];
7070

7171
if (comment.trim()) {

webpack/localization-plugin/src/LocalizationPlugin.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ export class LocalizationPlugin implements Webpack.Plugin {
142142
*/
143143
private _resolvedLocalizedStrings: Map<string, Map<string, Map<string, string>>>;
144144

145-
constructor(options: ILocalizationPluginOptions) {
145+
public constructor(options: ILocalizationPluginOptions) {
146146
this._options = options;
147147
}
148148

@@ -319,7 +319,7 @@ export class LocalizationPlugin implements Webpack.Plugin {
319319

320320
let lastIndex: number = 0;
321321
let regexResult: RegExpExecArray | null;
322-
while (regexResult = placeholderRegex.exec(assetSource)) {
322+
while (regexResult = placeholderRegex.exec(assetSource)) { // eslint-disable-line no-cond-assign
323323
const staticElement: IStaticReconstructionElement = {
324324
kind: 'static',
325325
staticString: assetSource.substring(lastIndex, regexResult.index)
@@ -472,7 +472,7 @@ export class LocalizationPlugin implements Webpack.Plugin {
472472
const errors: Error[] = [];
473473

474474
// START configuration
475-
{
475+
{ // eslint-disable-line no-lone-blocks
476476
if (
477477
!configuration.output ||
478478
!configuration.output.filename ||
@@ -488,7 +488,7 @@ export class LocalizationPlugin implements Webpack.Plugin {
488488
// END configuration
489489

490490
// START options.filesToIgnore
491-
{
491+
{ // eslint-disable-line no-lone-blocks
492492
this._locJsonFilesToIgnore = new Set<string>();
493493
for (const locJsonFilePath of this._options.filesToIgnore || []) {
494494
let normalizedLocJsonFilePath: string = path.resolve(configuration.context!, locJsonFilePath);
@@ -499,7 +499,7 @@ export class LocalizationPlugin implements Webpack.Plugin {
499499
// END options.filesToIgnore
500500

501501
// START options.localizedStrings
502-
{
502+
{ // eslint-disable-line no-lone-blocks
503503
const { localizedStrings } = this._options;
504504

505505
const localeNameRegex: RegExp = /[a-z-]/i;
@@ -632,7 +632,7 @@ export class LocalizationPlugin implements Webpack.Plugin {
632632
// END options.localizedStrings
633633

634634
// START options.defaultLocale
635-
{
635+
{ // eslint-disable-line no-lone-blocks
636636
if (
637637
!this._options.defaultLocale ||
638638
(!this._options.defaultLocale.locale && !this._options.defaultLocale.usePassthroughLocale)

webpack/localization-plugin/src/loaders/LocJsonLoader.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,13 @@ export interface ILocJsonLoaderOptions {
1212
pluginInstance: LocalizationPlugin;
1313
}
1414

15-
// tslint:disable-next-line:no-function-expression
1615
export default function (this: loader.LoaderContext, content: string): string {
1716
const { pluginInstance } = loaderUtils.getOptions(this) as ILocJsonLoaderOptions;
1817
const locJsonFilePath: string = this.resourcePath;
1918
const locJsonFileData: ILocJsonFile = jju.parse(content);
2019

2120
const resultObject: { [stringName: string]: string } = {};
22-
for (const stringName in locJsonFileData) { // tslint:disable-line:forin
21+
for (const stringName in locJsonFileData) { // eslint-disable-line guard-for-in
2322
const stringKey: string = `${locJsonFilePath.toUpperCase()}?${stringName}`;
2423
if (pluginInstance.stringKeys.has(stringKey)) {
2524
resultObject[stringName] = pluginInstance.stringKeys.get(stringKey)!.value;

webpack/localization-plugin/src/loaders/LocJsonWarningLoader.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
import { loader } from 'webpack';
55

6-
// tslint:disable-next-line:no-function-expression
76
export default function (this: loader.LoaderContext, content: string): string {
87
const locJsonFilePath: string = this.resourcePath;
98
this.emitError(new Error(

webpack/localization-plugin/src/loaders/SingleLocaleLoader.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ export interface ILocJsonLoaderOptions {
2020
passthroughLocale: boolean;
2121
}
2222

23-
// tslint:disable-next-line:no-function-expression
2423
export default function (this: loader.LoaderContext, content: string): string {
2524
const {
2625
resolvedStrings,
@@ -38,7 +37,7 @@ export default function (this: loader.LoaderContext, content: string): string {
3837
));
3938
} else {
4039
const locJsonFileData: ILocJsonFile = jju.parse(content);
41-
for (const stringName in locJsonFileData) { // tslint:disable-line:forin
40+
for (const stringName in locJsonFileData) {
4241
if (!stringMap.has(stringName)) {
4342
this.emitError(new Error(
4443
`String "${stringName}" in file ${locJsonFilePath} was not provided in the LocalizationPlugin configuration.`

webpack/localization-plugin/tslint.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)