Detector::Javascript::Feathers
Feathers.js (https://feathersjs.com) is a service-based, not
route-based, Node.js framework: app.use('/messages', new MessageService()) registers a service, and the framework
auto-generates the REST CRUD verbs for whichever of
find/get/create/update/patch/remove the service implements. The
@feathersjs/* scope is unique to this framework — there is no
risk of colliding with plain Express, which is what Feathers'
REST transport (@feathersjs/express) is layered on top of.
Constants
package.json listing any @feathersjs/* package (feathers,
express, koa, socketio, authentication, transport-commons, ...)
as a dependency. The scope alone is unambiguous, so a broad
"any @feathersjs/<name> key" match is safe.
Source-side evidence: an import/require of any @feathersjs/*
module (including submodule specifiers like
@feathersjs/express/rest), the feathers() core factory call,
or app.service( — the one Feathers-specific API on the app
object that plain Express never has.
Class methods
The tech name without needing an instance, so the registry can be read off the classes themselves rather than from a parallel list.
Instance methods
Cheap filename-only filter the detector pass uses to skip
detect on files the detector cannot possibly match. The
default true preserves prior behavior (every detector runs on
every file). Override with the same predicate the body of
detect starts with — e.g., filename.ends_with?(".py") for a
Python framework detector — so the detector loop avoids the
detect dispatch on files outside the detector's language.
On large codebases (saleor's 4255 .py files) this lifts ~100
virtual detect calls per file out of the hot loop because
most detectors' inner first-line is exactly this kind of cheap
filename check.