Bug 1945566 - Add eslint and vscode module resolvers for moz-src, r=firefox-desktop-core-reviewers ,frontend-codestyle-reviewers,mconley,Standard8

Differential Revision: https://phabricator.services.mozilla.com/D236570
This commit is contained in:
Dave Townsend
2025-03-03 12:47:47 +00:00
parent 941f1ac3b3
commit 1f501407fe
5 changed files with 43 additions and 3 deletions

View File

@@ -50,6 +50,10 @@ const httpTestingPaths = [
module.exports = { module.exports = {
settings: { settings: {
"import/extensions": [".mjs"], "import/extensions": [".mjs"],
"import/resolver": {
[path.resolve(__dirname, "srcdir-resolver.js")]: {},
node: {},
},
}, },
ignorePatterns, ignorePatterns,
// Ignore eslint configurations in parent directories. // Ignore eslint configurations in parent directories.
@@ -108,6 +112,8 @@ module.exports = {
// *.config.js files are generally assumed to be configuration files // *.config.js files are generally assumed to be configuration files
// based for node. // based for node.
"*.config.?(m)js", "*.config.?(m)js",
// The resolver for moz-src for eslint, vscode etc.
"srcdir-resolver.js",
], ],
env: { env: {
node: true, node: true,

View File

@@ -35,7 +35,7 @@ with Files("docs/**"):
with Files("mach*"): with Files("mach*"):
BUG_COMPONENT = ("Firefox Build System", "Mach Core") BUG_COMPONENT = ("Firefox Build System", "Mach Core")
with Files("pyproject.toml"): with Files("pyproject.toml", "srcdir-resolver.js"):
BUG_COMPONENT = ("Developer Infrastructure", "Lint and Formatting") BUG_COMPONENT = ("Developer Infrastructure", "Lint and Formatting")
with Files("*moz*"): with Files("*moz*"):

View File

@@ -204,10 +204,11 @@ class TestJarMaker(unittest.TestCase):
for attr in ("topsourcedir", "sourcedirs"): for attr in ("topsourcedir", "sourcedirs"):
if attr in kwargs: if attr in kwargs:
setattr(jm, attr, kwargs[attr]) setattr(jm, attr, kwargs[attr])
jm.makeJar(infile, self.builddir)
cwd = os.getcwd() cwd = os.getcwd()
os.chdir(self.builddir) os.chdir(self.builddir)
try: try:
jm.makeJar(infile, self.builddir)
# expand build to stage # expand build to stage
for path, dirs, files in os.walk("."): for path, dirs, files in os.walk("."):
stagedir = os.path.join(self.stagedir, path) stagedir = os.path.join(self.stagedir, path)

29
srcdir-resolver.js Normal file
View File

@@ -0,0 +1,29 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
const path = require("path");
const fs = require("fs");
const PREFIX = "moz-src:///";
exports.interfaceVersion = 2;
exports.resolve = source => {
if (!source.startsWith(PREFIX)) {
return { found: false };
}
let result = path.resolve(
__dirname,
...source.substring(PREFIX.length).split("/")
);
let stats = fs.statSync(result, { throwIfNoEntry: false });
if (!stats || !stats.isFile()) {
return { found: false };
}
return {
found: true,
path: result,
};
};

View File

@@ -2,6 +2,10 @@
"compilerOptions": { "compilerOptions": {
"noEmit": true, "noEmit": true,
"target": "es2024", "target": "es2024",
"types": ["gecko"] "types": ["gecko"],
"baseUrl": "../../",
"paths": {
"moz-src:///*": ["./*"]
}
} }
} }