---
title: "Unit JavaScript"
description: "initialize pipeline units at runtime using JavaScript."
source: "https://github.com/log-10x/modules/tree/main/pipelines/run/units/transform/script/unit/unit.yaml"
icon: "material/power-plug-outline"

---
Initialize and shut down [pipeline units](https://doc.log10x.com/engine/pipeline/#units) using JavaScript.

## Unit Initialization

Unit `constructor()` methods run when a pipeline unit starts, allowing for resource initialization, logging, and configuration.

```js
export class FileOutput extends TenXOutput {
    constructor() {
        if (this.outputFilePath) {
            if (this.outputFileWriteObjects != false) {
                if (this.outputFileWriteTemplates) {
                    TenXConsole.log("Writing TenXObjects and TenXTemplates to: " + this.outputFilePath);
                } else {
                    TenXConsole.log("Writing TenXObjects to: " + this.outputFilePath);
                }
            } else if (this.outputFileWriteTemplates ) {
                TenXConsole.log("Writing TenXTemplates to: " + this.outputFilePath);
            }
        }
    }
}
```

## :material-menu: Options

Specify the options below to [configure](/config "configure") multiple Unit JavaScript:

|Name|Description|
|---|---|
|[unitActionsClassName](#unitactionsclassname "JavaScript class name")|JavaScript class name|
|[unitActions](#unitactions "10x JavaScript statements to execute")|10x JavaScript statements to execute|
|[unitActionsFile](#unitactionsfile "Declaring .js file")|Declaring .js file|

### :material-menu-right-outline:**`unitActionsClassName`**

JavaScript class name.

|Type|Required|Names|
|---|---|---|
|String|✔|\[unitActionsClassName, TenXUnitClassName\]|

Specifies the JavaScript class name in which [unitActions](https://doc.log10x.com/run/transform/script/unit/#unitactions "10x JavaScript statements to execute") are defined.


### :material-menu-right-outline:**`unitActions`**

10x JavaScript statements to execute.

|Type|Default|Names|
|---|---|---|
|List|\[\]|\[unitActions, TenXUnit\]|

JavaScript statements for initializing target unit(s).

**NOTE**: This argument is not designed to be set directly, but instead by passing a [.js launch file](https://doc.log10x.com/config/javascript/) containing
these statements nested within an [TenXInput](https://doc.log10x.com/api/js/#TenXInput "Serves as a base class to allow for custom input initialization.") sub-class constructor as described above.


### :material-menu-right-outline:**`unitActionsFile`**

Declaring .js file.

|Type|Default|Names|
|---|---|---|
|String|""|\[unitActionsFile, TenXUnitFile\]|

Specifies the .js file name declaring [unitActions](https://doc.log10x.com/run/transform/script/unit/#unitactions "10x JavaScript statements to execute").


<br/>:material-github: This unit is defined in [unit/unit.yaml](https://github.com/log-10x/modules/tree/main/pipelines/run/units/transform/script/unit/unit.yaml "unit/unit.yaml"){target="\_blank"}.

