SDK intended for use by developers that build plugins for Isomorphic Layout Composer.
$ npm i ilc-plugins-sdk
In order to be discoverable by ILC plugin manager - NPM package that contains plugin should be named in one of the following ways:
ilc-plugin-*
Example:ilc-plugin-myreporting
@*/ilc-plugin-*
Example:@myorg/ilc-plugin-myreporting
In order to use ILC with installed plugins we recommend extending base Docker image in the following way:
ARG ilc_version=latest
FROM namecheap/ilc:${ilc_version}
RUN npm i ilc-plugin-yourpluginname
# Need to rebuild ILC if your plugin has browser implementation
RUN npm run build
Plugins of this type should provide single entry point for the server implementation.
It will be detected via main
property in your package.json
.
Should implement IlcReportingPlugin
interface. Allows customizing logs output of the ILC container and optionally set
custom behaviour for request ID generation & handling.
Should implement I18nParamsDetectionPlugin
interface.
Plugins of this type should provide 2 entry points, for the server & browser side respectively.
Server side entrypoint will be detected via main
property in your package.json
. While entrypoint
for a browser side implementation expected to be in browser.js
file in the root folder of NPM package.
Same approach should be used to fetch necessary interfaces for the server & browser side implementation:
Server side:
import { TransitionHooksPlugin } from 'ilc-plugins-sdk';
Browser side:
import { TransitionHooksPlugin } from 'ilc-plugins-sdk/browser';
Allows to set up route change hooks which may:
- Prevent routing & display some UI.
- Perform the redirect to another page.
- Allow route change.
Should implement TransitionHooksPlugin
interface for the browser & server side.