Skip to content

Commit 367bb72

Browse files
committed
init
0 parents  commit 367bb72

17 files changed

+3927
-0
lines changed

.editorconfig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# top-most EditorConfig file
2+
root = true
3+
4+
[*]
5+
charset = utf-8
6+
end_of_line = lf
7+
insert_final_newline = true
8+
indent_style = tab
9+
indent_size = 4
10+
tab_width = 4

.eslintignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
node_modules/
2+
3+
main.js

.eslintrc

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"root": true,
3+
"parser": "@typescript-eslint/parser",
4+
"env": { "node": true },
5+
"plugins": [
6+
"@typescript-eslint",
7+
"prettier"
8+
],
9+
"extends": [
10+
"eslint:recommended",
11+
"plugin:@typescript-eslint/eslint-recommended",
12+
"plugin:@typescript-eslint/recommended",
13+
"prettier"
14+
],
15+
"parserOptions": {
16+
"sourceType": "module"
17+
},
18+
"rules": {
19+
"no-unused-vars": "off",
20+
"@typescript-eslint/no-unused-vars": ["error", { "args": "none" }],
21+
"@typescript-eslint/ban-ts-comment": "off",
22+
"no-prototype-builtins": "off",
23+
"@typescript-eslint/no-empty-function": "off",
24+
"prettier/prettier": "error"
25+
}
26+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Build and Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
workflow_dispatch:
8+
inputs:
9+
releaseVersion:
10+
description: 'Release Version (e.g., v1.0.0)'
11+
required: true
12+
13+
jobs:
14+
release:
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- name: Setup Node.js
21+
uses: actions/setup-node@v4
22+
with:
23+
node-version: '21'
24+
25+
- name: Install dependencies
26+
run: npm ci
27+
28+
- name: Build
29+
run: npm run build
30+
31+
- name: Create Release
32+
id: create_release
33+
uses: ncipollo/release-action@v1
34+
with:
35+
token: ${{ secrets.GH_TOKEN }}
36+
tag: ${{ github.event.inputs.releaseVersion || github.ref_name }}
37+
name: Release ${{ github.event.inputs.releaseVersion || github.ref_name }}
38+
draft: false
39+
prerelease: false
40+
artifacts: 'build/*'

.gitignore

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# vscode
2+
.vscode
3+
4+
# Intellij
5+
*.iml
6+
.idea
7+
8+
# npm
9+
node_modules
10+
11+
# Don't include the compiled main.js file in the repo.
12+
# They should be uploaded to GitHub releases instead.
13+
main.js
14+
15+
# Exclude sourcemaps
16+
*.map
17+
18+
# obsidian
19+
data.json
20+
21+
# Exclude macOS Finder (System Explorer) View States
22+
.DS_Store

.npmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
tag-version-prefix=""

.prettierrc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"semi": true,
3+
"singleQuote": true,
4+
"trailingComma": "all",
5+
"tabWidth": 2,
6+
"printWidth": 80
7+
}

README.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Simple Echo Connector
2+
3+
This repository contains a simplified connector that uses an echo function to simulate responses from a chat model. It's designed to mimic the behavior of more complex connectors (like those interfacing with models such as Ollama), but without the need for external API calls. This can be particularly useful for testing, development, or educational purposes.
4+
5+
## Features
6+
7+
- Echo function that simulates chat responses
8+
- Mapping of chat completions to a standardized response format
9+
- Simple integration into existing TypeScript projects
10+
- Configurable to simulate different model types
11+
12+
## Installation
13+
14+
Before installing this connector, ensure you have [Node.js](https://nodejs.org/) installed on your system.
15+
16+
1. **Clone the repository**
17+
18+
```bash
19+
git clone https://github.com/PromptMixerDev/prompt-mixer-sample-connector.git
20+
cd prompt-mixer-sample-connector
21+
```
22+
23+
2. **Install dependencies**
24+
25+
```bash
26+
npm install
27+
```
28+
29+
This will install all necessary dependencies, including TypeScript and any types required for development.
30+
31+
## Configuration
32+
33+
The `config` object can be adjusted to suit your needs. It's located in `config.ts`. By default, it might include placeholders for various configurations. Ensure you review and update it as necessary for your project.
34+
35+
## Contributing
36+
37+
Contributions are welcome! If you have improvements or bug fixes, please follow these steps:
38+
39+
1. Fork the repository
40+
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
41+
3. Commit your changes (`git commit -am 'Add some AmazingFeature'`)
42+
4. Push to the branch (`git push origin feature/AmazingFeature`)
43+
5. Open a Pull Request
44+
45+
## License
46+
47+
This project is licensed under the MIT License
48+
49+
## Acknowledgments
50+
51+
- This project is inspired by the need for simple, mock connectors in development environments.
52+
- Thanks to all contributors and users for their interest and feedback.

config.js

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
export const config = {
2+
connectorName: 'LangChain Exa Connector',
3+
models: ['gpt-4-0125-preview', 'gpt-3.5-turbo-0125'],
4+
properties: [
5+
{
6+
id: 'prompt',
7+
name: 'System Prompt',
8+
value:
9+
'You are a web researcher who answers user questions by looking up information on the internet and retrieving contents of helpful documents. Cite your sources.',
10+
type: 'string',
11+
},
12+
{
13+
id: 'max_tokens',
14+
name: 'Max Tokens',
15+
value: 4096,
16+
type: 'number',
17+
},
18+
{
19+
id: 'temperature',
20+
name: 'Temperature',
21+
value: 0.7,
22+
type: 'number',
23+
},
24+
{
25+
id: 'top_p',
26+
name: 'Top P',
27+
value: 1,
28+
type: 'number',
29+
},
30+
{
31+
id: 'frequency_penalty',
32+
name: 'Frequency Penalty',
33+
value: 0.5,
34+
type: 'number',
35+
},
36+
{
37+
id: 'presence_penalty',
38+
name: 'Presence Penalty',
39+
value: 0.5,
40+
type: 'number',
41+
},
42+
{
43+
id: 'stop',
44+
name: 'Stop Sequences',
45+
value: ['\n'],
46+
type: 'array',
47+
},
48+
{
49+
id: 'echo',
50+
name: 'Echo',
51+
value: false,
52+
type: 'boolean',
53+
},
54+
{
55+
id: 'best_of',
56+
name: 'Best Of',
57+
value: 1,
58+
type: 'number',
59+
},
60+
{
61+
id: 'logprobs',
62+
name: 'LogProbs',
63+
value: false,
64+
type: 'boolean',
65+
},
66+
],
67+
settings: [
68+
{
69+
id: 'OPENAI_API_KEY',
70+
name: 'OPENAI API Key',
71+
value: '',
72+
type: 'string',
73+
},
74+
{
75+
id: 'EXASEARCH_API_KEY',
76+
name: 'EXASEARCH API Key',
77+
value: '',
78+
type: 'string',
79+
},
80+
],
81+
description:
82+
'This is a sample connector to demonstrate the Prompt Mixer connector API. It does not connect to any external service.',
83+
author: 'Prompt Mixer',
84+
iconBase64:
85+
'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03LjE3NjUxIDExLjExMTVDNy4zMTQ5IDExLjI1NTcgNy41MTg1MSAxMS4yNDg5IDcuNjk5NDQgMTEuMjExNkg3LjY5ODg1QzcuNzgyMzMgMTEuMTQzOCA3LjY2Mzc2IDExLjA1ODMgNy41NTAxNyAxMC45NzYzQzcuNDgxNjEgMTAuOTI2OSA3LjQxNDg2IDEwLjg3ODcgNy4zOTU0NCAxMC44MzY2QzcuNDU4NjggMTAuNzYwMyA3LjI3MTYyIDEwLjU4NiA3LjEyNjM2IDEwLjQ1MDdDNy4wNjU4MSAxMC4zOTQzIDcuMDEyNTIgMTAuMzQ0NiA2Ljk4NzY2IDEwLjMxMTdDNi44ODQ4MSAxMC4yMDAzIDYuODQzMzEgMTAuMDU5NyA2LjgwMTUxIDkuOTE4MTVDNi43NzM3IDkuODIzOTYgNi43NDU3NiA5LjcyOTMzIDYuNjk5NTMgOS42NDI1NkM2LjQxNTk2IDguOTg4MTMgNi4wOTA5OCA4LjMzODggNS42MzYxMiA3Ljc4NTA2QzUuMzQzOTIgNy40MTcgNS4wMTAwNCA3LjA4NzU3IDQuNjc2MDkgNi43NTgwN0M0LjQ2MDQxIDYuNTQ1MjcgNC4yNDQ3IDYuMzMyNDMgNC4wNDAxOCA2LjEwOTE1QzMuODI4OTggNS44OTI5NSAzLjcwMjI1IDUuNjI2NjcgMy41NzUzMiA1LjM1OTk2QzMuNDY5NDUgNS4xMzc1IDMuMzYzNDQgNC45MTQ3NiAzLjIwODE3IDQuNzIwNTVDMi43Mzc0NCA0LjAyNjUzIDEuMjQ4MTEgMy44Mzc2MiAxLjAyOTc0IDQuODE3MjZDMS4wMzAzMiA0Ljg0NzgxIDEuMDIxMjMgNC44NjcwNCAwLjk5NDAyNSA0Ljg4Njg0QzAuODczNzkzIDQuOTc0NTEgMC43NjYwNCA1LjA3NDA2IDAuNjc1ODUzIDUuMTk1MUMwLjQ1NTIzMyA1LjUwMTY1IDAuNDIwNjMxIDYuMDIyMDUgMC42OTY4MzYgNi4yOTc1QzAuNjk3MTA1IDYuMjkzMTkgMC42OTczNyA2LjI4ODg5IDAuNjk3NjM0IDYuMjg0NTlDMC43MDYyOTYgNi4xNDQwMyAwLjcxNDQyNCA2LjAxMjEzIDAuODI2MTU2IDUuOTEwNkMxLjAzOTM4IDYuMDkzMzEgMS4zNjE1MyA2LjE1Nzc5IDEuNjA4OCA2LjAyMTQ2QzEuOTA3MjEgNi40NDU5NCAyLjAwMjAzIDYuOTU5MzggMi4wOTcxNSA3LjQ3NDQzQzIuMTc2MyA3LjkwMzA0IDIuMjU1NjYgOC4zMzI3NyAyLjQ1MjczIDguNzEzMjVDMi40NTc0IDguNzIwOTYgMi40NjIwNyA4LjcyODY3IDIuNDY2NzMgOC43MzYzOUMyLjU4MjM1IDguOTI3NDEgMi42OTkxOCA5LjEyMDQ2IDIuODQ3NDcgOS4yODc5QzIuOTAxNDIgOS4zNzE1NSAzLjAxMjc1IDkuNDYxNzUgMy4xMjM3NSA5LjU1MTdDMy4yNjk0NiA5LjY2OTc2IDMuNDE0NjIgOS43ODczOSAzLjQyODc5IDkuODg5MTdDMy40Mjk0NCA5LjkzMzY4IDMuNDI5MjYgOS45Nzg3OSAzLjQyOTA3IDEwLjAyNDJDMy40Mjc5NiAxMC4yOTI2IDMuNDI2ODEgMTAuNTcwNiAzLjU5OTQ5IDEwLjc5MDdDMy42OTQyMSAxMC45ODM2IDMuNDYwNTYgMTEuMTc3MSAzLjI3MTcgMTEuMTUzM0MzLjE2ODM4IDExLjE2NzQgMy4wNTU0OCAxMS4xNDA0IDIuOTQzMzggMTEuMTEzN0MyLjc4OTY0IDExLjA3NjkgMi42MzczOSAxMS4wNDA2IDIuNTEzNCAxMS4xMTA5QzIuNDc4ODcgMTEuMTQ4MiAyLjQyOSAxMS4xNDk2IDIuMzc4ODIgMTEuMTUwOUMyLjMxOTM5IDExLjE1MjYgMi4yNTk1MyAxMS4xNTQyIDIuMjI0MTYgMTEuMjE1NUMyLjIxNzAxIDExLjIzNDEgMi4xOTk5IDExLjI1NSAyLjE4MjE1IDExLjI3NjhDMi4xNDM2NSAxMS4zMjM5IDIuMTAyMDcgMTEuMzc0OCAyLjE1MjE1IDExLjQxMzVDMi4xNTY1NyAxMS40MTAyIDIuMTYwOTcgMTEuNDA2OCAyLjE2NTM2IDExLjQwMzVDMi4yNDE2MyAxMS4zNDU3IDIuMzE1MTcgMTEuMjg5OSAyLjQxODEzIDExLjMyNDdDMi40MDQxMyAxMS40MDAzIDIuNDUyOTggMTEuNDIwNSAyLjUwMjEgMTEuNDQwOUMyLjUxMDcgMTEuNDQ0NSAyLjUxOTMyIDExLjQ0ODEgMi41Mjc2MSAxMS40NTJDMi41MjY5NCAxMS40Njk0IDIuNTIzNTEgMTEuNDg2OSAyLjUyMDExIDExLjUwNDNDMi41MTE4IDExLjU0NjggMi41MDM2NyAxMS41ODg0IDIuNTM2NjcgMTEuNjI0NUMyLjU1MjMzIDExLjYwODcgMi41NjYxNyAxMS41OTEgMi41ODAwMyAxMS41NzMzQzIuNjEzODUgMTEuNTMgMi42NDc3NyAxMS40ODY3IDIuNzA4NTEgMTEuNDcwNkMyLjg0MjMyIDExLjY0ODcgMi45NzczOCAxMS41NzQ4IDMuMTQ2OTYgMTEuNDgyMUMzLjMzODIgMTEuMzc3NCAzLjU3MzM0IDExLjI0ODggMy45MDAxIDExLjQzMDVDMy43NzQ3NSAxMS40MjQ4IDMuNjYzNTggMTEuNDQwMSAzLjU3OTA5IDExLjU0M0MzLjU1ODExIDExLjU2NjIgMy41NDA1MiAxMS41OTM0IDMuNTc3NCAxMS42MjMzQzMuNzcwMzQgMTEuNDk4OSAzLjg1MDY5IDExLjU0MzUgMy45MjY0MyAxMS41ODU2QzMuOTgxMTUgMTEuNjE2IDQuMDMzNDcgMTEuNjQ1MSA0LjEyNDExIDExLjYwODFDNC4xNDU1NCAxMS41OTcgNC4xNjY5NSAxMS41ODU1IDQuMTg4NDIgMTEuNTc0QzQuMzMzNCAxMS40OTY0IDQuNDgwOCAxMS40MTc1IDQuNjUyNyAxMS40NDQ2QzQuNTI0MTcgMTEuNDgxOCA0LjQ3ODI1IDExLjU2MjkgNC40MjgwOCAxMS42NTE2QzQuNDAzNDMgMTEuNjk1MiA0LjM3Nzc2IDExLjc0MDYgNC4zNDA3NiAxMS43ODM0QzQuMzIyMDUgMTEuODAzOCA0LjMxMjk5IDExLjgyNTggNC4zMzUwOSAxMS44NTkyQzQuNjA1MDEgMTEuODM2NiA0LjcwNzAyIDExLjc2ODcgNC44NDQ3MSAxMS42NzY5QzQuOTEwNCAxMS42MzMyIDQuOTg0MjIgMTEuNTg0IDUuMDg4MjcgMTEuNTMxN0M1LjIwMzMgMTEuNDYxNSA1LjMxODA2IDExLjUwNjQgNS40MjkzMSAxMS41NUM1LjU1MDA5IDExLjU5NzMgNS42NjY3NCAxMS42NDMgNS43NzUwOSAxMS41Mzc5QzUuODA4MzIgMTEuNTA2IDUuODUwOTggMTEuNTA1NyA1Ljg5MzcgMTEuNTA1M0M1LjkwOTMyIDExLjUwNTIgNS45MjQ5NCAxMS41MDUxIDUuOTQwMTIgMTEuNTAzNEM1LjkwNjIxIDExLjMyNDYgNS43MTY0OCAxMS4zMjY4IDUuNTI0MDIgMTEuMzI5QzUuMzAxMzYgMTEuMzMxNiA1LjA3NTAzIDExLjMzNDIgNS4wODIwMiAxMS4wNTY2QzUuMjg5MDMgMTAuOTE2NyA1LjI5MDk2IDEwLjY3MjkgNS4yOTI3OSAxMC40NDI2QzUuMjkzMjMgMTAuMzg3MSA1LjI5MzY2IDEwLjMzMjMgNS4yOTY5NyAxMC4yOEM1LjQ0OTE4IDEwLjM2NDIgNS42MTAxMiAxMC40MzAyIDUuNzY5OTQgMTAuNDk1OEM1LjkyMDM5IDEwLjU1NzYgNi4wNjk4NCAxMC42MTg5IDYuMjEwMSAxMC42OTQ2QzYuMzU1ODUgMTAuOTI5MyA2LjU4NDk3IDExLjI0MDQgNi44OTA2NyAxMS4yMjAxQzYuODk4NjEgMTEuMTk2MyA2LjkwNTk4IDExLjE3NTQgNi45MTQ0OCAxMS4xNTE2QzYuOTMyNTUgMTEuMTU0NiA2Ljk1MTY3IDExLjE1OTQgNi45NzExMiAxMS4xNjQzQzcuMDUwNTcgMTEuMTg0MiA3LjEzNTUgMTEuMjA1NSA3LjE3NjUxIDExLjExMTVaTTE0LjA5NCA4LjcwNjQ1TDE0LjkzMjggNy44Njk5MVY3Ljg2OTM1QzE1LjI5ODcgNy41MDUwNyAxNS41IDcuMDE5MjIgMTUuNSA2LjUwMjI1QzE1LjUgNS45ODUyOCAxNS4yOTg3IDUuNDk5OTYgMTQuOTMyOCA1LjEzNTE1QzE0LjU2NyA0Ljc3MDMyIDE0LjA4MDQgNC41Njk1MiAxMy41NjIgNC41Njk1MkMxMy4wNDM3IDQuNTY5NTIgMTIuNTU3IDQuNzcwMzIgMTIuMTkxMiA1LjEzNTE1TDExLjM1MjQgNS45NzE2OEMxMS4xNTY4IDYuMTY3NCAxMS4wMDgyIDYuMzk3MDMgMTAuOTEwNiA2LjY1MzgzTDEwLjkwNSA2LjY2ODUzTDEwLjg4OTYgNi42NzMwNkMxMC41ODUxIDYuNzY2MzkgMTAuMzE2MiA2LjkyNzU5IDEwLjA5MTcgNy4xNTE1N0w5LjI1MjgzIDcuOTg4MTFDOC40OTY4NCA4Ljc0MjA4IDguNDk2ODQgOS45NjgzNSA5LjI1MjgzIDEwLjcyMjNDOS42MTg2NCAxMS4wODcyIDEwLjEwNTMgMTEuMjg3OSAxMC42MjM2IDExLjI4NzlDMTEuMTQyIDExLjI4NzkgMTEuNjI4NiAxMS4wODcyIDExLjk5NDQgMTAuNzIyM0wxMi44MzMyIDkuODg1NzhDMTMuMDI4NCA5LjY5MTc2IDEzLjE3NjQgOS40NjI2OSAxMy4yNzM5IDkuMjA1ODhMMTMuMjc5NiA5LjE5MTE4TDEzLjI5NDkgOS4xODY2NUMxMy41OTQ0IDkuMDk1NiAxMy44NzA2IDguOTI5MzIgMTQuMDk0IDguNzA2NDVaTTEyLjc4MjUgNS43MjUwNkMxMi45OTAxIDUuNTE3NSAxMy4yNjc0IDUuNDAzMjQgMTMuNTYyNCA1LjQwMzI0SDEzLjU2MzVDMTMuODU5IDUuNDAzMjQgMTQuMTM1OCA1LjUxNzUgMTQuMzQzOSA1LjcyNTA2QzE0Ljc3NDQgNi4xNTM4MiAxNC43NzM4IDYuODUyMzQgMTQuMzQzOSA3LjI4MTFMMTMuNTA1MSA4LjExNzYzQzEzLjQ3OSA4LjE0MzY1IDEzLjQ1MTggOC4xNjg1NSAxMy40MjI5IDguMTkxNzNMMTMuMzgwMyA4LjIyNjIyTDEzLjM3MDcgOC4xNzI1QzEzLjI5OTggNy43ODM5MiAxMy4xMTQ5IDcuNDMxNTQgMTIuODM1MyA3LjE1MjY5QzEyLjYyNDkgNi45NDI4NiAxMi4zNzU5IDYuNzg3ODYgMTIuMDk1MiA2LjY5MjI4QzExLjkyMDUgNi44NjY0OCAxMS44MjUyIDcuMDk1IDExLjgyNTIgNy4zMzU5NkMxMS44MjUyIDcuMzg1MTUgMTEuODI5NyA3LjQzNTQ5IDExLjgzODIgNy40ODU4NUMxMS45OTMxIDcuNTQxMjcgMTIuMTI5NyA3LjYyNzI2IDEyLjI0NDMgNy43NDE0OEMxMi42NzQyIDguMTcwOCAxMi42NzQyIDguODY4NzYgMTIuMjQ0MyA5LjI5NzUyTDExLjQwNTUgMTAuMTM0MUMxMS4xOTA2IDEwLjM0ODQgMTAuOTA4NyAxMC40NTU5IDEwLjYyNTcgMTAuNDU1OUMxMC4zNDI3IDEwLjQ1NTkgMTAuMDYwMiAxMC4zNDg0IDkuODQ1MjcgMTAuMTM0MUM5LjQxNTM3IDkuNzA1MzMgOS40MTUzNyA5LjAwNjc4IDkuODQ1MjcgOC41NzgwNUwxMC42ODQxIDcuNzQxNDhDMTAuNzA5NiA3LjcxNjA1IDEwLjczNjggNy42OTExNSAxMC43NjU3IDcuNjY3OTdMMTAuODA4MyA3LjYzMzQ1TDEwLjgxNzkgNy42ODcyMUMxMC44ODc3IDguMDc0NjQgMTEuMDczMiA4LjQyNzU4IDExLjM1MzMgOC43MDcwMUMxMS41NjQzIDguOTE3NDMgMTEuNzk4IDkuMDU3MTEgMTIuMDc4MSA5LjE1MjcyTDEyLjEyOTcgOS4xMDEyNUMxMi4yODYzIDguOTQ1MTQgMTIuMzcyNSA4LjczNyAxMi4zNzI1IDguNTE1MjZDMTIuMzcyNSA4LjQ2NjA0IDEyLjM2NzkgOC40MTY4NSAxMi4zNTk0IDguMzY4MjFDMTIuMTk3OCA4LjMxNTA1IDEyLjA2NDUgOC4yMzg2NyAxMS45NDM3IDguMTE4MTlDMTEuNzY4NSA3Ljk0Mzk4IDExLjY2MDEgNy43MjE3IDExLjYzMDEgNy40NzUwOUwxMS42MjUgNy40MjE5MkMxMS42MDEyIDcuMTAwNjcgMTEuNzE3NCA2Ljc4NzMgMTEuOTQzNyA2LjU2MTYyTDEyLjc4MjUgNS43MjUwNloiIGZpbGw9IiM4MTg1OTQiLz4KPC9zdmc+Cg==',
86+
};

esbuild.config.mjs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import esbuild from 'esbuild';
2+
import process from 'process';
3+
4+
const prod = process.argv[2] === 'production';
5+
6+
const context = await esbuild.context({
7+
entryPoints: ['main.ts'],
8+
bundle: true,
9+
platform: 'node',
10+
target: 'es2018',
11+
outfile: './build/main.js',
12+
});
13+
14+
if (prod) {
15+
await context.rebuild();
16+
process.exit(0);
17+
} else {
18+
await context.watch();
19+
}

0 commit comments

Comments
 (0)