# 独自のアドオンを作成する

> Proxyman Scripting で使う独自の JavaScript アドオンを作成し、カスタムアドオンフォルダに保存して、require() であらゆるスクリプトにインポートする方法を解説します。

## 1. 概要 {#1-whats-it}

組み込みアドオンではまだできないことを行うために、独自のアドオンを作成できます。次のことが可能です：

* 独自の JavaScript アドオンを作成する
* [組み込みライブラリ](https://proxyman.com/docs/ja/scripting/built-in-js-libraries)を使う
* 独自のライブラリを作成して、同僚と共有する

## 2. アドオンの作り方 {#2-how-to-write-an-addon}

1. ユーザーアドオンフォルダ `~/Library/Application\ Support/com.proxyman.NSProxy/users` を開きます。または、Script Editor で **More** → **Documentations** → **Open Custom Addons Folder...** をクリックします。

![Documentations を開いた Proxyman Script Editor の More メニューで、Open Custom Addons Folder がハイライトされている画面](https://proxyman.com/docs/assets/proxyman-script-open-custom-addons-folder.jpg)

_カスタムアドオンフォルダを開く_

2\. `HelloWorld.js` ファイルを複製し、名前を **MyAwesomeAddon.js** に変更します。

3\. ファイルを開き、テンプレートを確認します。

4\. メタデータを変更して、JS コードを書きます

```javascript
/**
    {
        "name":"My Awesome Addon",
        "description":"The first User Addons",
        "author":"Proxyman",
        "tags":"helloworld"
    }
**/

const { md5 } = require("@addons/MD5.js");

const sayHello = () => {
  var content = "Hello World. My first custom Addon.";
  var hash = md5(content);
  return content + ". MD5 = " + hash;
};

// Make sure you export the function at the end of method
exports.sayHello = sayHello;

```

* 組み込みアドオンは **require("@addons/\<name.js>")** でインポートできます

```javascript
const { md5 } = require("@addons/MD5.js");
```

> **備考:** Proxyman が提供する[組み込みアドオン](https://proxyman.com/docs/ja/scripting/addons#2-built-in-addons)をご覧ください

* 組み込みライブラリは **require("@libs/\<name.js>")** でインポートできます

> **備考:** Proxyman が提供する[組み込みライブラリ](https://proxyman.com/docs/ja/scripting/built-in-js-libraries)をご覧ください

5\. ファイルを保存します

6\. Proxyman でスクリプトを開き、アドオンをインポートします

```javascript
// Import your addon
// Make sure you import the functions that you export in the addon
const { sayHello } = require("@users/MyAwesomeAddon.js");

// Usage
sayHello();
```

> **備考:** **require("@users/MyAwesomeAddon.js")** の `@users` は、カスタムアドオンフォルダを指します。

## 3. 注意事項 {#3-note}

> **備考:** 独自のアドオンは **\~/Library/Application\ Support/com.proxyman.NSProxy/users** に保存されます
>
> このフォルダは安全です。Proxyman によって上書きされたり、削除されたりすることはありません。
