Create a product
A product is a logical group of apps that are assembled together. It's simply what end users know and use.
Its logical representation is a directory named src/products/{AppName}
that has the following structure :
target1 .. targetn
Each directory corresponds to a target exposing the product.
If the product is supported by a webapp and a mobile app, there will typically be server
, web
, rn
directories (or similar).
Check Expose a target for more details.
manifest
It's a file named manifest.ts
exporting a const named Manifest
that must satisfy the ProductManifest
interface.
appReg
stands for "app registry". It lists all the apps the product uses.
It provides an optional ucds.exclude
property in order to prevent some use cases from being mounted.
This is particularly useful when you have a generic app (e.g. Auth
) providing a large range of use cases,
but some products don't need all of them.
name
must be the same as the product directory name.
i18n
It's a file named i18n.ts
exporting a const named I18n
that must satisfy the ProductI18n
interface.
Unlike the app i18n
, this one gives you more freedom to define translation keys.
Note how we include the i18n
of :
- the library (
I18nEN
) to provide basic translations of exposed primitives - the apps (
TradingI18n
) to provide apps translations