gecko-dev/.eslintignore
Ben Dean-Kawamura 1cf71b7095 Bug 1766045 - Initial work for UniFFI JS bindings r=nika
Generate the C++ and JS code to handle UniFFI bindings.  The WebIDL code
is completely static and doesn't need to be generated.

There's support for both synchronus and async functions, but we haven't
decided the how we want this to be configured.  In practice, almost all
functions will need to be async, so for now we're just forcing all
functions to be.

The `uniffi-bindgen-gecko-js` crate builds the binary that generates the
bindings.  This binary needs to be fed a list of UDL files, the path of
the .cpp file to generate, and the directory to generate .jsm files in
(and also all of those arguments again, but for the test fixtures).
This is quiet a horrible UI, but it's going to be wrapped in a mach
command.

The `uniffi-js` directory contains shared C++ code for
`uniffi-bindgen-gecko-js`.  As much as possible we tried to put the
functionality here and have the generated code simply forward function
calls here.

Still Todo:
  - CallbackInterfaces
  - Custom and external types
  - Datetime and TimeInterval

Differential Revision: https://phabricator.services.mozilla.com/D144472
2022-08-03 18:59:35 +00:00

234 lines
7.6 KiB
Plaintext

# Please DO NOT add more third party files to this file.
# They should be added to tools/rewriting/ThirdPartyPaths.txt instead.
# This file should only be used for exclusions where we have:
# - preprocessed files
# - generated files that are for some reason checked into source
# - intentionally invalid files
# - build directories and other items that we need to ignore
!.eslintrc*.js
# Always ignore node_modules.
**/node_modules/
# Always ignore crashtests - specially crafted files that originally caused a
# crash.
**/crashtests/
# Also ignore reftest - specially crafted to produce expected output.
**/reftest/
**/reftests/
# Exclude expected objdirs.
obj*/
# build/ third-party code
build/pgo/js-input/
# browser/ exclusions
browser/app/
browser/branding/**/firefox-branding.js
# Gzipped test file.
browser/base/content/test/general/gZipOfflineChild.html
browser/base/content/test/urlbar/file_blank_but_not_blank.html
# Test files that are really json not js, and don't need to be linted.
browser/components/sessionstore/test/unit/data/sessionstore_valid.js
browser/components/sessionstore/test/unit/data/sessionstore_invalid.js
# This file is split into two in order to keep it as a valid json file
# for documentation purposes (policies.json) but to be accessed by the
# code as a .jsm (schema.jsm)
browser/components/enterprisepolicies/schemas/schema.jsm
# generated & special files in cld2
browser/components/translation/cld2/
# generated or library files in pocket
browser/components/pocket/content/panels/js/tmpl.js
browser/components/pocket/content/panels/js/vendor.bundle.js
browser/components/pocket/content/panels/js/main.bundle.js
# Ignore newtab files
browser/components/newtab/aboutwelcome/content/aboutwelcome.bundle.js
browser/components/newtab/data/
browser/components/newtab/logs/
# The only file in browser/locales/ is pre-processed.
browser/locales/
# Generated data files
browser/extensions/formautofill/phonenumberutils/PhoneNumberMetaData.jsm
# Ignore devtools debugger files which aren't intended for linting, and also
# aren't included in any .eslintignore or .prettierignore file.
# See https://github.com/firefox-devtools/debugger/blob/master/package.json#L24
devtools/client/debugger/bin/
devtools/client/debugger/configs/
devtools/client/debugger/dist/
devtools/client/debugger/images/
devtools/client/debugger/packages/
devtools/client/debugger/test/mochitest/examples/
devtools/client/debugger/index.html
devtools/client/debugger/webpack.config.js
# Ignore devtools preferences files
devtools/client/preferences/
# Ignore devtools generated code
devtools/shared/css/generated/properties-db.js
devtools/client/webconsole/test/node/fixtures/stubs/*.js
!devtools/client/webconsole/test/node/fixtures/stubs/index.js
devtools/client/shared/components/test/node/stubs/reps/*.js
# Ignore devtools files testing sourcemaps / code style
devtools/client/framework/test/code_*
devtools/client/inspector/markup/test/events_bundle.js
devtools/client/netmonitor/test/xhr_bundle.js
devtools/client/webconsole/test/browser/code_bundle_nosource.js
devtools/client/webconsole/test/browser/code_bundle_invalidmap.js
devtools/client/webconsole/test/browser/test-autocomplete-mapped.js
devtools/client/webconsole/test/browser/test-autocomplete-mapped.src.js
devtools/server/tests/xpcshell/setBreakpoint*
devtools/server/tests/xpcshell/sourcemapped.js
# Ignore generated code from wasm-bindgen
devtools/client/performance-new/profiler_get_symbols.js
# Testing syntax error
devtools/client/webconsole/test/browser/test-syntaxerror-worklet.js
# devtools specific format test file
devtools/server/tests/xpcshell/xpcshell_debugging_script.js
# Generated
dom/canvas/test/webgl-conf/generated/
# Intentionally invalid/not parsable
dom/html/test/test_bug677658.html
dom/svg/test/test_nonAnimStrings.xhtml
dom/svg/test/test_SVG_namespace_ids.html
# Strange encodings
dom/base/test/file_bug687859-16.js
dom/encoding/test/test_utf16_files.html
dom/encoding/test/file_utf16_be_bom.js
dom/encoding/test/file_utf16_le_bom.js
# Service workers fixtures which require specific resource caching.
dom/base/test/file_js_cache.js
dom/serviceworkers/test/file_js_cache.js
# Intentional broken files
dom/base/test/file_js_cache_syntax_error.js
dom/base/test/jsmodules/test_syntaxError.html
dom/base/test/jsmodules/test_syntaxErrorAsync.html
dom/base/test/jsmodules/module_badSyntax.js
dom/base/test/jsmodules/test_syntaxErrorInline.html
dom/base/test/jsmodules/test_syntaxErrorInlineAsync.html
dom/base/test/test_bug687859.html
dom/media/webrtc/tests/mochitests/identity/idp-bad.js
dom/serviceworkers/test/file_js_cache_syntax_error.js
dom/serviceworkers/test/parse_error_worker.js
dom/tests/mochitest/bugs/test_bug531176.html
dom/webauthn/tests/cbor.js
dom/workers/test/importScripts_worker_imported3.js
dom/workers/test/invalid.js
dom/workers/test/threadErrors_worker1.js
# Bug 1527075: This directory is linted in github repository
intl/l10n/
# Exclude everything but self-hosted JS
js/ductwork/
js/examples/
js/public/
js/xpconnect/
js/src/devtools/
js/src/jit-test/
js/src/tests/
js/src/Y.js
# Fuzzing code for testing only, targeting the JS shell
js/src/fuzz-tests/
# Uses `#filter substitution`
mobile/android/app/mobile.js
mobile/android/app/geckoview-prefs.js
# Not much JS to lint and non-standard at that
mobile/android/installer/
mobile/android/locales/
# Pre-processed/pref files
modules/libpref/greprefs.js
modules/libpref/init/all.js
modules/libpref/test/unit/*data/
# Only contains non-standard test files.
python/
# These are (mainly) imported code that we don't want to lint to make imports easier.
remote/cdp/Protocol.jsm
remote/cdp/test/browser/chrome-remote-interface.js
remote/marionette/atom.js
# This file explicitly has a syntax error and cannot be parsed by eslint.
remote/shared/messagehandler/test/browser/resources/modules/root/invalid.jsm
# services/ exclusions
# Third party services
services/common/kinto-http-client.js
services/common/kinto-offline-client.js
# Webpack-bundled library
services/fxaccounts/FxAccountsPairingChannel.js
# Servo is imported.
servo/
# Test files that we don't want to lint (preprocessed, minified etc)
testing/condprofile/condprof/tests/profile
testing/mozbase/mozprofile/tests/files/prefs_with_comments.js
testing/talos/talos/startup_test/sessionrestore/profile/sessionstore.js
testing/talos/talos/startup_test/sessionrestore/profile-manywindows/sessionstore.js
testing/talos/talos/tests/devtools/addon/content/pages/
# Runing Talos may extract data here, see bug 1435677.
testing/talos/talos/tests/tp5n/
testing/talos/talos/fis/tp5n/
# Mainly third-party related code, that shouldn't be linted.
testing/web-platform/
# toolkit/ exclusions
# Intentionally invalid JS
toolkit/components/workerloader/tests/moduleF-syntax-error.js
# Built files
toolkit/components/pdfjs/content/build
toolkit/components/pdfjs/content/web
# External code:
toolkit/components/reader/Readability.js
toolkit/components/reader/Readability-readerable.js
toolkit/components/reader/JSDOMParser.js
# Uses preprocessing
toolkit/components/reader/Readerable.jsm
# Uses preprocessing
toolkit/mozapps/update/tests/data/xpcshellConstantsPP.js
toolkit/modules/AppConstants.jsm
# Uses special template formatting.
tools/tryselect/selectors/chooser/templates/chooser.html
# Ignore preprocessed *(P)refs.js files in update-packaging.
tools/update-packaging/**/*refs.js
# Ignore backgroundtasks preferences files.
toolkit/components/backgroundtasks/defaults
# Ignore pre-generated webpack and typescript transpiled files for translations
browser/extensions/translations/extension/
# "scaffolding" used by uniffi which isn't valid JS in its original form.
toolkit/components/uniffi-bindgen-gecko-js/src/templates/js/