Skip to content
These are temporary community docs. The official docs are in progress.Help improve them
Markless
Esc
↑↓navigate↵open⌘Jpreview
On this page

MARKLESS_SHARED_FACTORY_CLASS_INSTANCE

A shared() factory cannot return a class instance: a Markless compiler error.

Error from the compiler, while it builds your .tsrx files.

What happened

Markless prints the message, the reason, and a suggestion:

MARKLESS_SHARED_FACTORY_CLASS_INSTANCE: shared() definition "<name>" returns <constructorName>, so the definition declares no fields at all: the payload carries nothing for it, and both the server render and the browser handler name a value that was never built.
A shared() factory declares the graph fields the payload carries and the server render rebuilds. A class instance declares none, so every read of it is a reference to a binding that does not exist in the module doing the reading.
Return a plain object instead: the durable data becomes fields, and the behaviour becomes methods on the same object (`shared(() => ({ index: 0, next() { ... } }))`).
https://markless.dev/errors/MARKLESS_SHARED_FACTORY_CLASS_INSTANCE

Words in angle brackets change from case to case.

How to fix it

Start with the suggestion in the message above.

This page has no guide yet. Help write it.

Where it comes from

@markless/compiler raises this code. Source:

Read how to read a Markless error, or go back to all error codes.

Was this page helpful?