@jenkins-cd/es-extensions-store

Provides an extension API for es5+ applications based on Jenkins JEP-204

Usage no npm install needed!

<script type="module">
  import jenkinsCdEsExtensionsStore from 'https://cdn.skypack.dev/@jenkins-cd/es-extensions-store';
</script>

README

ES Extensions API

Provides an extension API for es5+ applications based on Jenkins JEP-204

npm version

Installation

npm i -S @imeredith/es-extensions-api

Usage example

Extensions are just functions that take some context as a parameter, and do something. It is totally up to the application that wants to use extensions implemented by plugins to define the contract for the plugins to implement.

Example extension

  • Extension Point identifier - 'example.ext'
  • Extension Context
    • container - Html Div element to render into.
    • name - Name to render

Example Extesnion Impl

import { ExtensionStore } from '@imeredith/es-extensions-api';

ExtensionStore.register('example.ext', function (context) {
    context.container.innerHTML = '<h1> Hello ' + context.name + '</h1>';
})

Example Extension Usage

import stores from '@imeredith/es-extensions-api';

const container = document.getElementbyId('ext_container');

const extension = ExtensionStore.getExtensions('example.ext')[0]
if(extension) {
    extension({container, name: 'World!'})
}

Development setup

npm i

Release History

  • 0.0.3
    • Work in progress

Meta

Distributed under the MIT license. See LICENSE for more information.