Compare commits
	
		
			2 Commits
		
	
	
		
			c72ab0cd3c
			...
			9ab9ca9639
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 9ab9ca9639 | |||
| 6aefaa64db | 
							
								
								
									
										133
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										133
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,133 @@
 | 
			
		||||
# Logs
 | 
			
		||||
logs
 | 
			
		||||
*.log
 | 
			
		||||
npm-debug.log*
 | 
			
		||||
yarn-debug.log*
 | 
			
		||||
yarn-error.log*
 | 
			
		||||
lerna-debug.log*
 | 
			
		||||
.pnpm-debug.log*
 | 
			
		||||
 | 
			
		||||
# Diagnostic reports (https://nodejs.org/api/report.html)
 | 
			
		||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
 | 
			
		||||
 | 
			
		||||
# Runtime data
 | 
			
		||||
pids
 | 
			
		||||
*.pid
 | 
			
		||||
*.seed
 | 
			
		||||
*.pid.lock
 | 
			
		||||
 | 
			
		||||
# Directory for instrumented libs generated by jscoverage/JSCover
 | 
			
		||||
lib-cov
 | 
			
		||||
 | 
			
		||||
# Coverage directory used by tools like istanbul
 | 
			
		||||
coverage
 | 
			
		||||
*.lcov
 | 
			
		||||
 | 
			
		||||
# nyc test coverage
 | 
			
		||||
.nyc_output
 | 
			
		||||
 | 
			
		||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
 | 
			
		||||
.grunt
 | 
			
		||||
 | 
			
		||||
# Bower dependency directory (https://bower.io/)
 | 
			
		||||
bower_components
 | 
			
		||||
 | 
			
		||||
# node-waf configuration
 | 
			
		||||
.lock-wscript
 | 
			
		||||
 | 
			
		||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
 | 
			
		||||
build/Release
 | 
			
		||||
 | 
			
		||||
# Dependency directories
 | 
			
		||||
node_modules/
 | 
			
		||||
jspm_packages/
 | 
			
		||||
 | 
			
		||||
# Snowpack dependency directory (https://snowpack.dev/)
 | 
			
		||||
web_modules/
 | 
			
		||||
 | 
			
		||||
# TypeScript cache
 | 
			
		||||
*.tsbuildinfo
 | 
			
		||||
 | 
			
		||||
# Optional npm cache directory
 | 
			
		||||
.npm
 | 
			
		||||
 | 
			
		||||
# Optional eslint cache
 | 
			
		||||
.eslintcache
 | 
			
		||||
 | 
			
		||||
# Optional stylelint cache
 | 
			
		||||
.stylelintcache
 | 
			
		||||
 | 
			
		||||
# Microbundle cache
 | 
			
		||||
.rpt2_cache/
 | 
			
		||||
.rts2_cache_cjs/
 | 
			
		||||
.rts2_cache_es/
 | 
			
		||||
.rts2_cache_umd/
 | 
			
		||||
 | 
			
		||||
# Optional REPL history
 | 
			
		||||
.node_repl_history
 | 
			
		||||
 | 
			
		||||
# Output of 'npm pack'
 | 
			
		||||
*.tgz
 | 
			
		||||
 | 
			
		||||
# Yarn Integrity file
 | 
			
		||||
.yarn-integrity
 | 
			
		||||
 | 
			
		||||
# dotenv environment variable files
 | 
			
		||||
.env
 | 
			
		||||
.env.development.local
 | 
			
		||||
.env.test.local
 | 
			
		||||
.env.production.local
 | 
			
		||||
.env.local
 | 
			
		||||
 | 
			
		||||
# parcel-bundler cache (https://parceljs.org/)
 | 
			
		||||
.cache
 | 
			
		||||
.parcel-cache
 | 
			
		||||
 | 
			
		||||
# Next.js build output
 | 
			
		||||
.next
 | 
			
		||||
out
 | 
			
		||||
 | 
			
		||||
# Nuxt.js build / generate output
 | 
			
		||||
.nuxt
 | 
			
		||||
dist
 | 
			
		||||
 | 
			
		||||
# Gatsby files
 | 
			
		||||
.cache/
 | 
			
		||||
# Comment in the public line in if your project uses Gatsby and not Next.js
 | 
			
		||||
# https://nextjs.org/blog/next-9-1#public-directory-support
 | 
			
		||||
# public
 | 
			
		||||
 | 
			
		||||
# vuepress build output
 | 
			
		||||
.vuepress/dist
 | 
			
		||||
 | 
			
		||||
# vuepress v2.x temp and cache directory
 | 
			
		||||
.temp
 | 
			
		||||
.cache
 | 
			
		||||
 | 
			
		||||
# Docusaurus cache and generated files
 | 
			
		||||
.docusaurus
 | 
			
		||||
 | 
			
		||||
# Serverless directories
 | 
			
		||||
.serverless/
 | 
			
		||||
 | 
			
		||||
# FuseBox cache
 | 
			
		||||
.fusebox/
 | 
			
		||||
 | 
			
		||||
# DynamoDB Local files
 | 
			
		||||
.dynamodb/
 | 
			
		||||
 | 
			
		||||
# TernJS port file
 | 
			
		||||
.tern-port
 | 
			
		||||
 | 
			
		||||
# Stores VSCode versions used for testing VSCode extensions
 | 
			
		||||
.vscode-test
 | 
			
		||||
 | 
			
		||||
# yarn v2
 | 
			
		||||
.yarn/cache
 | 
			
		||||
.yarn/unplugged
 | 
			
		||||
.yarn/build-state.yml
 | 
			
		||||
.yarn/install-state.gz
 | 
			
		||||
.pnp.*
 | 
			
		||||
 | 
			
		||||
# Netscript Type Definitions. These are pulled from the game
 | 
			
		||||
NetscriptDefinitions.d.ts
 | 
			
		||||
							
								
								
									
										3
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							@@ -1,3 +0,0 @@
 | 
			
		||||
[submodule "typescript-template"]
 | 
			
		||||
	path = typescript-template
 | 
			
		||||
	url = https://github.com/bitburner-official/typescript-template
 | 
			
		||||
							
								
								
									
										21
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
MIT License
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2023 Nils Ramstoeck
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
of this software and associated documentation files (the "Software"), to deal
 | 
			
		||||
in the Software without restriction, including without limitation the rights
 | 
			
		||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
			
		||||
copies of the Software, and to permit persons to whom the Software is
 | 
			
		||||
furnished to do so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be included in all
 | 
			
		||||
copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
			
		||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
			
		||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
			
		||||
SOFTWARE.
 | 
			
		||||
							
								
								
									
										27
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
# bb-external-editor
 | 
			
		||||
 | 
			
		||||
This is a template for using any external editor for Bitburner. This Template supports JSX, TS and TSX out of the box.
 | 
			
		||||
 | 
			
		||||
## How to use
 | 
			
		||||
 | 
			
		||||
1. If you dont already have it installed, install [NodeJS](https://nodejs.org)
 | 
			
		||||
1. Clone this repository
 | 
			
		||||
1. navigate to the template (`cd path/to/the/template`) inside your console
 | 
			
		||||
1. run `npm install` in your console to install all dependencies
 | 
			
		||||
1. run `npm start` in your console to start the RemoteAPI server
 | 
			
		||||
1. open Bitburner and navigate to the settings
 | 
			
		||||
1. open the tab labeled 'Remote API' and enter the port '12525'
 | 
			
		||||
1. press connect
 | 
			
		||||
 | 
			
		||||
Now any changes made to scripts inside the server folders will automatically be uploaded to Bitburner.
 | 
			
		||||
 | 
			
		||||
## Using React
 | 
			
		||||
 | 
			
		||||
The React and ReactDOM instance from the game can simply be imported as ESModules
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
import React from 'react' //and
 | 
			
		||||
import ReactDOM from 'react-dom'
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
For more in-depth details have a look at the [plugin](https://github.com/NilsRamstoeck/esbuild-bitburner-plugin) powering this template!
 | 
			
		||||
							
								
								
									
										26
									
								
								build.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								build.mjs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
import { context } from 'esbuild';
 | 
			
		||||
import { BitburnerPlugin } from 'esbuild-bitburner-plugin';
 | 
			
		||||
 | 
			
		||||
const createContext = async () => await context({
 | 
			
		||||
  entryPoints: [
 | 
			
		||||
    'servers/**/*.js',
 | 
			
		||||
    'servers/**/*.jsx',
 | 
			
		||||
    'servers/**/*.ts',
 | 
			
		||||
    'servers/**/*.tsx',
 | 
			
		||||
  ],
 | 
			
		||||
  outbase: "./servers",
 | 
			
		||||
  outdir: "./dist",
 | 
			
		||||
  plugins: [
 | 
			
		||||
    BitburnerPlugin({
 | 
			
		||||
      port: 12525,
 | 
			
		||||
      types: 'NetscriptDefinitions.d.ts'
 | 
			
		||||
    })
 | 
			
		||||
  ],
 | 
			
		||||
  bundle: true,
 | 
			
		||||
  format: 'esm',
 | 
			
		||||
  platform: 'browser',
 | 
			
		||||
  logLevel: 'info'
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
let ctx = await createContext();
 | 
			
		||||
ctx.watch();
 | 
			
		||||
							
								
								
									
										1010
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										1010
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										26
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "bb-external-editor",
 | 
			
		||||
  "version": "1.0.0",
 | 
			
		||||
  "description": "template for external editors for the game bitburner",
 | 
			
		||||
  "main": "index.js",
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "start": "node ./build.mjs"
 | 
			
		||||
  },
 | 
			
		||||
  "repository": {
 | 
			
		||||
    "type": "git",
 | 
			
		||||
    "url": "git+https://github.com/NilsRamstoeck/bb-external-editor.git"
 | 
			
		||||
  },
 | 
			
		||||
  "author": "Nils Ramstöck",
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "bugs": {
 | 
			
		||||
    "url": "https://github.com/NilsRamstoeck/bb-external-editor/issues"
 | 
			
		||||
  },
 | 
			
		||||
  "homepage": "https://github.com/NilsRamstoeck/bb-external-editor#readme",
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@types/react": "^18.2.25",
 | 
			
		||||
    "@types/react-dom": "^18.2.10",
 | 
			
		||||
    "esbuild": "^0.19.4",
 | 
			
		||||
    "esbuild-bitburner-plugin": "^1.0.1",
 | 
			
		||||
    "glob": "^10.3.10"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										38
									
								
								setup.ps1
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								setup.ps1
									
									
									
									
									
								
							@@ -1,38 +0,0 @@
 | 
			
		||||
if (-Not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]'Administrator'))
 | 
			
		||||
{
 | 
			
		||||
    $CommandLine = "-c cd '$pwd'; & `"" + $MyInvocation.MyCommand.Path + "`""
 | 
			
		||||
    Start-Process powershell -Verb runas -ArgumentList $CommandLine
 | 
			
		||||
    exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Folder handle for the submodule src folder
 | 
			
		||||
$srcFolder = "typescript-template\src\"
 | 
			
		||||
 | 
			
		||||
# Init git submodules
 | 
			
		||||
git submodule update --init --recursive
 | 
			
		||||
# Check if submodule src folder exists
 | 
			
		||||
if (!(Test-Path $srcFolder))
 | 
			
		||||
{
 | 
			
		||||
    Write-Host "No submodule src folder found"
 | 
			
		||||
    # Make a link from the src folder to the submodule src folder
 | 
			
		||||
    New-Item -ItemType SymbolicLink -Path $srcFolder -Target src
 | 
			
		||||
}
 | 
			
		||||
elseif ((Get-Item $srcFolder).Attributes -match 'ReparsePoint')
 | 
			
		||||
{
 | 
			
		||||
    Write-Host "Submodule src folder is a soft link"
 | 
			
		||||
    # Remove the soft link
 | 
			
		||||
    Remove-Item $srcFolder -Recurse
 | 
			
		||||
 | 
			
		||||
    # Make a link from the src folder to the submodule src folder
 | 
			
		||||
    New-Item -ItemType SymbolicLink -Path $srcFolder -Target src
 | 
			
		||||
}
 | 
			
		||||
else
 | 
			
		||||
{
 | 
			
		||||
    Write-Host "Submodule src folder is newly created"
 | 
			
		||||
    # Remove the src folder
 | 
			
		||||
    Remove-Item $srcFolder -Recurse
 | 
			
		||||
 | 
			
		||||
    # Make a link from the src folder to the submodule src folder
 | 
			
		||||
    New-Item -ItemType SymbolicLink -Path $srcFolder -Target src
 | 
			
		||||
}
 | 
			
		||||
# Add Read-Host to see the output
 | 
			
		||||
@@ -1,10 +0,0 @@
 | 
			
		||||
import ReactNamespace from 'react/index';
 | 
			
		||||
import ReactDomNamespace from 'react-dom';
 | 
			
		||||
 | 
			
		||||
const React = window.React as typeof ReactNamespace;
 | 
			
		||||
const ReactDOM = window.ReactDOM as typeof ReactDomNamespace;
 | 
			
		||||
 | 
			
		||||
export default React;
 | 
			
		||||
export {
 | 
			
		||||
  ReactDOM
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										25
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
{
 | 
			
		||||
  "compilerOptions": {
 | 
			
		||||
    "target": "esnext",
 | 
			
		||||
    "useDefineForClassFields": true,
 | 
			
		||||
    "module": "ESNext",
 | 
			
		||||
    "moduleResolution": "node",
 | 
			
		||||
    "esModuleInterop": true,
 | 
			
		||||
    "lib": [
 | 
			
		||||
      "esnext",
 | 
			
		||||
      "dom",
 | 
			
		||||
      "dom.iterable"
 | 
			
		||||
    ],
 | 
			
		||||
    "baseUrl": "./",
 | 
			
		||||
    "jsx": "react",
 | 
			
		||||
    "paths": {
 | 
			
		||||
      "@/*": [
 | 
			
		||||
        "src/*"
 | 
			
		||||
      ],
 | 
			
		||||
      "NetscriptDefinitions" : ["NetscriptDefinitions.d.ts"]
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "include": [
 | 
			
		||||
    "servers/**/*.ts*"
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
 Submodule typescript-template deleted from 4136ab7107
									
								
							
		Reference in New Issue
	
	Block a user