n8n/packages/modules/instance-registry/frontend
n8n-assistant[bot] 86c23326c9
🚀 Release 2.42.0 (#39826)
Co-authored-by: n8n-release-helper[bot] <265227495+n8n-release-helper[bot]@users.noreply.github.com>
2026-09-29 07:11:00 +00:00
..
src refactor(editor): Add defineFrontendModule() and make it the canonical descriptor form (no-changelog) (#38464) 2026-09-12 16:34:08 +00:00
biome.jsonc refactor(editor): Extract instance-registry into a frontend module package (no-changelog) (#36325) 2026-08-18 12:00:24 +00:00
eslint.config.mjs refactor(editor): Extract instance-registry into a frontend module package (no-changelog) (#36325) 2026-08-18 12:00:24 +00:00
package.json 🚀 Release 2.42.0 (#39826) 2026-09-29 07:11:00 +00:00
README.md refactor(editor): Extract instance-registry into a frontend module package (no-changelog) (#36325) 2026-08-18 12:00:24 +00:00
tsconfig.json refactor(editor): Extract instance-registry into a frontend module package (no-changelog) (#36325) 2026-08-18 12:00:24 +00:00
vite.config.ts refactor(editor): Extract instance-registry into a frontend module package (no-changelog) (#36325) 2026-08-18 12:00:24 +00:00

@n8n/frontend-module-instance-registry

Frontend feature module. Consumed from source by the editor-ui shell through src/app/modules.manifest.ts; there is no build step and no dist.

pnpm turbo typecheck --filter=@n8n/frontend-module-instance-registry
pnpm turbo lint --filter=@n8n/frontend-module-instance-registry
pnpm turbo test --filter=@n8n/frontend-module-instance-registry

Go through turbo, not pnpm --filter <pkg> typecheck: this package is consumed from source, and on a cold tree its platform dependencies have not been built yet. Turbo builds them first; the bare pnpm form does not.

Import rules

  • Depend on foundation and platform packages only (@n8n/design-system, @n8n/stores, @n8n/composables, @n8n/i18n, @n8n/rest-api-client, @n8n/api-types, @n8n/frontend-module-sdk). Never import another @n8n/frontend-module-*, and never import @/… from the shell.
  • @n8n/stores and @n8n/composables are subpath-only — import @n8n/stores/settings.store, not @n8n/stores.
  • The no-cross-module rule is currently a convention: the shared tsconfig base omits sibling modules from paths, which blocks an accidental import but not a deliberate one (declaring the dependency makes it typecheck clean). The ESLint rule that actually enforces it is CAT-3692.