# ComponentLoader-v2

[![1.0.1](https://badge.fury.io/js/componentloader-v2.svg)](https://www.npmjs.com/package/@pega/constellation-dx-components-build-utils)
1.0.1

This tool uses a 'v2' approach to group components in a library, create a component map, employ webpack, and load the library like Pega-generated components.

## Installation

```bash
npm install @pega/constellation-dx-components-build-utils
```

```bash
npx build-library 
```
To build the library, the library name and version are determined by the package.json of your project

```bash
npx publish-library
```
To publish the library, ensure that the APPSTATICURL Constant is updated to the app-static server URL. You can pass an optional argument (e.g., --token-path=node_modules/@pega/xyz/.access_token) to specify the path to the access token file. Alternatively, you can update the constant.js file for B2STOKEN or TOKEN_PATH.

```bash
npx delete-library 
```
To delete the published library or a specific version from library published, Only dev version(e.g. 1.0.1-dev) can be deleted.

```bash
npx list-library 
```
To list the published libraries, including their respective versions and the components assets they offer.

### APIs

```bash
/**
 * This function generate build for library
 * @param {string} libraryName optional library name, else it will take value from package.json name
 * @param {string} libraryVersion optional library version, else it will take value from package.json version
 * @param {string} tokenParam optional B2S token for appstatic service, else it will take value from  constant.js B2STOKEN
 * @param {string} appStaticSVCUrl optional appstatic service url, else it will take value from constant.js APPSTATICURL
 */
 e.g. buildLib(libraryName, libraryVersion, tokenParam, appStaticSVCUrl)
 ```

 ```bash
/**
 * This function publish the library to appstatic service
 * @param {string} libraryName optional library name, else it will take value from package.json name
 * @param {string} libraryVersion optional library version, else it will take value from package.json version
 * @param {string} tokenParam optional B2S token for appstatic service, else it will take value from  constant.js B2STOKEN
 * @param {string} appStaticSVCUrl optional appstatic service url, else it will take value from constant.js APPSTATICURL
 */
 e.g. publishLib(libraryName, libraryVersion, tokenParam, appStaticSVCUrl)
 ```

 ```bash
/**
 * This function provides interactive list of libraries/versions available for org from token.
 * User can use down/up/right arrow to explore content of libraries.
 * @param {string} tokenParam optional B2S token for appstatic service, else it will take value from  constant.js B2STOKEN
 * @param {string} appStaticSVCUrl optional appstatic service url, else it will take value from constant.js APPSTATICURL
 */
 e.g. listLib(tokenParam, appStaticSVCUrl)
 ```

 ```bash
/**
 * This function return json response of libraries/versions available for org from token.
 * Example : ["Dept1_constellation-ui-gallery":["0.0.1":'[{comptsconfig json data}]',"0.0.2":'[{comptsconfig json data}]'],"Dept2_constellation-ui-gallery":["0.0.1":'[{comptsconfig json data}]',"0.0.2":'[{comptsconfig json data}]'],"lib-a":[],"pega-as-internal":["0.0.2":'[{comptsconfig json data}]'],"pega-constellation-ui-gallery":["1.0.0":'[{comptsconfig json data}]'],"pega-temp-internal":[]]
 * @param {string} tokenParam optional B2S token for appstatic service, else it will take value from  constant.js B2STOKEN
 * @param {string} appStaticSVCUrl optional appstatic service url, else it will take value from constant.js APPSTATICURL
 */
 e.g. await listLibJSONResponse(tokenParam, appStaticSVCUrl)
 ```

 ```bash
/**
 * This function provides interactive list of libraries/versions available for org from token.
    Take a choice prompt of deleting entire lib/specific version of a lib(Only -dev version allowed to delete)
 * @param {string} tokenParam optional B2S token for appstatic service, else it will take value from  constant.js B2STOKEN
 * @param {string} appStaticSVCUrl optional appstatic service url, else it will take value from constant.js APPSTATICURL
 */
 e.g. deleteLib(tokenParam, appStaticSVCUrl)
 ```

 ```bash
/**
 * This function delete library based on library/version passed.
 * @param {string} libraryName Library name required arg.
 * @param {string} libraryVersion Library version required arg.
 * @param {string} tokenParam optional B2S token for appstatic service, else it will take value from  constant.js B2STOKEN
 * @param {string} appStaticSVCUrl optional appstatic service url, else it will take value from constant.js APPSTATICURL
 */
 e.g. deleteLibVersion(libraryName, libraryVersion, tokenParam, appStaticSVCUrl)
 ```