Skip to content

Clean up and consolidate public exports in ckeditor5 packages for NIM adoption #18583

@arkflpc

Description

@arkflpc

As part of the transition to the New Installation Methods (NIM), we are standardizing how public API elements are exposed in CKEditor 5 and related packages.

Currently, some exports are missing or confusing, especially after moving from the Old Installation Method (OIM). This has led to frequent integrator feedback and migration friction. We're addressing this by introducing a unified export policy that ensures every public entity is exported via the package’s index.ts file.

Additionally, this is an opportunity to give exported classes, functions, and helpers more descriptive and context-appropriate names — ensuring they are unambiguous and unique within the scope of CKEditor 5. This will include renaming existing exports where needed. The changes are semantically equivalent but will introduce breaking changes in naming.

Scope:

  • Every public API must be exported via the package’s index.ts.
  • Every internal API must be marked as such and exported via the package’s index.ts for compatibility with integrators currently importing directly from source files.
  • Exported names should follow a descriptive and unique naming pattern aligned with their purpose and context.
  • Breaking changes will be documented in an upgrade guide.
  • A full mapping table of renamed exports will be included.
  • There should be no export default or export * from statements in source files.

If you’d like to see this improvement implemented, add a 👍 reaction to this post.

Sub-issues

Metadata

Metadata

Assignees

Labels

resolution:resolvedThis issue was already resolved (e.g. by another ticket).squad:coreIssue to be handled by the Core team.type:improvementThis issue reports a possible enhancement of an existing feature.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions