From 38afe991b24f51681e04e2ba5e9e9f2a7fe00f31 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sun, 26 May 2019 11:05:23 -0700 Subject: [PATCH] Kind of working setup --- demo/client.ts | 5 ++++- demo/start.js | 6 +++++- package.json | 1 + src/common/CircularList.test.ts | 2 +- src/common/CircularList.ts | 4 ++-- src/common/Clone.test.ts | 2 +- src/common/EventEmitter.test.ts | 2 +- src/common/EventEmitter.ts | 4 ++-- src/common/EventEmitter2.test.ts | 2 +- src/common/EventEmitter2.ts | 2 +- src/common/Lifecycle.test.ts | 2 +- src/common/Lifecycle.ts | 2 +- src/common/TypedArrayUtils.test.ts | 2 +- src/common/Types.ts | 4 ++-- src/common/tsconfig.json | 6 +++++- src/core/Types.ts | 2 +- src/core/buffer/BufferLine.ts | 6 +++--- src/core/buffer/BufferReflow.test.ts | 4 ++-- src/core/buffer/BufferReflow.ts | 6 +++--- src/core/buffer/Marker.ts | 6 +++--- src/core/data/Charsets.ts | 2 +- src/core/input/Keyboard.test.ts | 6 +++--- src/core/input/Keyboard.ts | 6 +++--- src/core/input/TextDecoder.test.ts | 2 +- src/core/tsconfig.json | 7 +++++- webpack.config.js | 32 ++++++++++++++++++++++++++++ 26 files changed, 87 insertions(+), 38 deletions(-) create mode 100644 webpack.config.js diff --git a/demo/client.ts b/demo/client.ts index 8bcdc971..6de8558c 100644 --- a/demo/client.ts +++ b/demo/client.ts @@ -7,7 +7,10 @@ /// -import { Terminal } from '../lib/public/Terminal'; +const t = require('../lib2/xterm'); +console.log(t); +import { Terminal } from '../lib2/xterm'; +console.log('t2', Terminal); import { AttachAddon } from 'xterm-addon-attach'; import { SearchAddon, ISearchOptions } from 'xterm-addon-search'; import { WebLinksAddon } from 'xterm-addon-web-links'; diff --git a/demo/start.js b/demo/start.js index 7e13e790..7be2a48e 100644 --- a/demo/start.js +++ b/demo/start.js @@ -32,7 +32,11 @@ const clientConfig = { }, resolve: { modules: [path.resolve(__dirname, '..'), 'node_modules'], - extensions: [ '.tsx', '.ts', '.js' ] + extensions: [ '.tsx', '.ts', '.js' ], + alias: { + common: path.resolve(__dirname, '../lib/common'), + core: path.resolve(__dirname, '../lib/core') + } }, output: { filename: 'client-bundle.js', diff --git a/package.json b/package.json index 043b76cb..ad1f7058 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,7 @@ "zmodem.js": "^0.1.5" }, "scripts": { + "lib2": "webpack", "start": "node demo/start", "start-debug": "node --inspect-brk demo/start", "start-zmodem": "node demo/zmodem/app", diff --git a/src/common/CircularList.test.ts b/src/common/CircularList.test.ts index 4c07b16c..7a578a8c 100644 --- a/src/common/CircularList.test.ts +++ b/src/common/CircularList.test.ts @@ -4,7 +4,7 @@ */ import { assert } from 'chai'; -import { CircularList } from './CircularList'; +import { CircularList } from 'common/CircularList'; describe('CircularList', () => { describe('push', () => { diff --git a/src/common/CircularList.ts b/src/common/CircularList.ts index d4fc41cd..88e714b8 100644 --- a/src/common/CircularList.ts +++ b/src/common/CircularList.ts @@ -3,8 +3,8 @@ * @license MIT */ -import { ICircularList } from './Types'; -import { EventEmitter2, IEvent } from './EventEmitter2'; +import { ICircularList } from 'common/Types'; +import { EventEmitter2, IEvent } from 'common/EventEmitter2'; export interface IInsertEvent { index: number; diff --git a/src/common/Clone.test.ts b/src/common/Clone.test.ts index 4b815ff3..fc95e196 100644 --- a/src/common/Clone.test.ts +++ b/src/common/Clone.test.ts @@ -4,7 +4,7 @@ */ import { assert, expect } from 'chai'; -import { clone } from './Clone'; +import { clone } from 'common/Clone'; describe('clone', () => { it('should clone simple objects', () => { diff --git a/src/common/EventEmitter.test.ts b/src/common/EventEmitter.test.ts index f2d31cf6..c7f75ba0 100644 --- a/src/common/EventEmitter.test.ts +++ b/src/common/EventEmitter.test.ts @@ -4,7 +4,7 @@ */ import { assert } from 'chai'; -import { EventEmitter } from './EventEmitter'; +import { EventEmitter } from 'common/EventEmitter'; describe('EventEmitter', () => { let eventEmitter: EventEmitter; diff --git a/src/common/EventEmitter.ts b/src/common/EventEmitter.ts index 74a794cd..266216a4 100644 --- a/src/common/EventEmitter.ts +++ b/src/common/EventEmitter.ts @@ -3,8 +3,8 @@ * @license MIT */ -import { IDisposable, IEventEmitter, XtermListener } from './Types'; -import { Disposable } from './Lifecycle'; +import { IDisposable, IEventEmitter, XtermListener } from 'common/Types'; +import { Disposable } from 'common/Lifecycle'; export class EventEmitter extends Disposable implements IEventEmitter, IDisposable { private _events: {[type: string]: XtermListener[]}; diff --git a/src/common/EventEmitter2.test.ts b/src/common/EventEmitter2.test.ts index 53ee4c4f..bd8b5dea 100644 --- a/src/common/EventEmitter2.test.ts +++ b/src/common/EventEmitter2.test.ts @@ -4,7 +4,7 @@ */ import { assert } from 'chai'; -import { EventEmitter2 } from './EventEmitter2'; +import { EventEmitter2 } from 'common/EventEmitter2'; describe('EventEmitter2', () => { it('should fire listeners multiple times', () => { diff --git a/src/common/EventEmitter2.ts b/src/common/EventEmitter2.ts index 71c0b72d..fcbef969 100644 --- a/src/common/EventEmitter2.ts +++ b/src/common/EventEmitter2.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IDisposable } from './Types'; +import { IDisposable } from 'common/Types'; interface IListener { (e: T): void; diff --git a/src/common/Lifecycle.test.ts b/src/common/Lifecycle.test.ts index 4b696fa5..6f7c7884 100644 --- a/src/common/Lifecycle.test.ts +++ b/src/common/Lifecycle.test.ts @@ -4,7 +4,7 @@ */ import { assert } from 'chai'; -import { Disposable } from './Lifecycle'; +import { Disposable } from 'common/Lifecycle'; class TestDisposable extends Disposable { public get isDisposed(): boolean { diff --git a/src/common/Lifecycle.ts b/src/common/Lifecycle.ts index 5fac6e82..ad1afa1d 100644 --- a/src/common/Lifecycle.ts +++ b/src/common/Lifecycle.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IDisposable } from './Types'; +import { IDisposable } from 'common/Types'; /** * A base class that can be extended to provide convenience methods for managing the lifecycle of an diff --git a/src/common/TypedArrayUtils.test.ts b/src/common/TypedArrayUtils.test.ts index 99b0fd82..429a3a33 100644 --- a/src/common/TypedArrayUtils.test.ts +++ b/src/common/TypedArrayUtils.test.ts @@ -3,7 +3,7 @@ * @license MIT */ import { assert } from 'chai'; -import { fillFallback, concat } from './TypedArrayUtils'; +import { fillFallback, concat } from 'common/TypedArrayUtils'; type TypedArray = Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Int8Array | Int16Array | Int32Array diff --git a/src/common/Types.ts b/src/common/Types.ts index 717de359..e0a1e612 100644 --- a/src/common/Types.ts +++ b/src/common/Types.ts @@ -3,8 +3,8 @@ * @license MIT */ -import { IEvent, EventEmitter2 } from './EventEmitter2'; -import { IDeleteEvent, IInsertEvent } from './CircularList'; +import { IEvent, EventEmitter2 } from 'common/EventEmitter2'; +import { IDeleteEvent, IInsertEvent } from 'common/CircularList'; export const DEFAULT_COLOR = 256; diff --git a/src/common/tsconfig.json b/src/common/tsconfig.json index ccf742e5..ff0e5c68 100644 --- a/src/common/tsconfig.json +++ b/src/common/tsconfig.json @@ -4,7 +4,11 @@ "outDir": "../../lib", "types": [ "../../node_modules/@types/mocha" - ] + ], + "baseUrl": "..", + "paths": { + "common/*": [ "./common/*" ] + } }, "include": [ "./**/*" ] } diff --git a/src/core/Types.ts b/src/core/Types.ts index 5b97f249..39cb172e 100644 --- a/src/core/Types.ts +++ b/src/core/Types.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IDisposable } from '../common/Types'; +import { IDisposable } from 'common/Types'; export const enum KeyboardResultType { SEND_KEY, diff --git a/src/core/buffer/BufferLine.ts b/src/core/buffer/BufferLine.ts index 154cc598..ce3b54b7 100644 --- a/src/core/buffer/BufferLine.ts +++ b/src/core/buffer/BufferLine.ts @@ -2,9 +2,9 @@ * Copyright (c) 2018 The xterm.js authors. All rights reserved. * @license MIT */ -import { CharData, IBufferLine, ICellData, IColorRGB, IAttributeData } from '../Types'; -import { stringFromCodePoint } from '../input/TextDecoder'; -import { DEFAULT_COLOR } from '../../common/Types'; +import { CharData, IBufferLine, ICellData, IColorRGB, IAttributeData } from 'core/Types'; +import { stringFromCodePoint } from 'core/input/TextDecoder'; +import { DEFAULT_COLOR } from 'common/Types'; export const DEFAULT_ATTR = (0 << 18) | (DEFAULT_COLOR << 9) | (256 << 0); diff --git a/src/core/buffer/BufferReflow.test.ts b/src/core/buffer/BufferReflow.test.ts index d0d97dff..f7d2de73 100644 --- a/src/core/buffer/BufferReflow.test.ts +++ b/src/core/buffer/BufferReflow.test.ts @@ -3,8 +3,8 @@ * @license MIT */ import { assert } from 'chai'; -import { BufferLine, NULL_CELL_CHAR, NULL_CELL_WIDTH, NULL_CELL_CODE } from './BufferLine'; -import { reflowSmallerGetNewLineLengths } from './BufferReflow'; +import { BufferLine, NULL_CELL_CHAR, NULL_CELL_WIDTH, NULL_CELL_CODE } from 'core/buffer/BufferLine'; +import { reflowSmallerGetNewLineLengths } from 'core/buffer/BufferReflow'; describe('BufferReflow', () => { describe('reflowSmallerGetNewLineLengths', () => { diff --git a/src/core/buffer/BufferReflow.ts b/src/core/buffer/BufferReflow.ts index e363da0b..d75941e3 100644 --- a/src/core/buffer/BufferReflow.ts +++ b/src/core/buffer/BufferReflow.ts @@ -3,9 +3,9 @@ * @license MIT */ -import { BufferLine } from './BufferLine'; -import { CircularList } from '../../common/CircularList'; -import { IBufferLine, ICellData } from '../Types'; +import { BufferLine } from 'core/buffer/BufferLine'; +import { CircularList } from 'common/CircularList'; +import { IBufferLine, ICellData } from 'core/Types'; export interface INewLayoutResult { layout: number[]; diff --git a/src/core/buffer/Marker.ts b/src/core/buffer/Marker.ts index 26de0dfe..8d207166 100644 --- a/src/core/buffer/Marker.ts +++ b/src/core/buffer/Marker.ts @@ -3,9 +3,9 @@ * @license MIT */ -import { EventEmitter2, IEvent } from '../../common/EventEmitter2'; -import { Disposable } from '../../common/Lifecycle'; -import { IMarker } from '../Types'; +import { EventEmitter2, IEvent } from 'common/EventEmitter2'; +import { Disposable } from 'common/Lifecycle'; +import { IMarker } from 'core/Types'; export class Marker extends Disposable implements IMarker { private static _nextId = 1; diff --git a/src/core/data/Charsets.ts b/src/core/data/Charsets.ts index 5fc36ac1..f6ee7297 100644 --- a/src/core/data/Charsets.ts +++ b/src/core/data/Charsets.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { ICharset } from '../Types'; +import { ICharset } from 'core/Types'; /** * The character sets supported by the terminal. These enable several languages diff --git a/src/core/input/Keyboard.test.ts b/src/core/input/Keyboard.test.ts index a0dc3cbc..8a5f105b 100644 --- a/src/core/input/Keyboard.test.ts +++ b/src/core/input/Keyboard.test.ts @@ -1,8 +1,8 @@ import { assert } from 'chai'; -import { evaluateKeyboardEvent } from './Keyboard'; -import { IKeyboardResult } from '../Types'; -import { IKeyboardEvent } from '../../common/Types'; +import { evaluateKeyboardEvent } from 'core/input/Keyboard'; +import { IKeyboardResult } from 'core/Types'; +import { IKeyboardEvent } from 'common/Types'; /** * A helper function for testing which allows passing in a partial event and defaults will be filled diff --git a/src/core/input/Keyboard.ts b/src/core/input/Keyboard.ts index 36097f91..c78328da 100644 --- a/src/core/input/Keyboard.ts +++ b/src/core/input/Keyboard.ts @@ -4,9 +4,9 @@ * @license MIT */ -import { IKeyboardEvent } from '../../common/Types'; -import { IKeyboardResult, KeyboardResultType } from '../Types'; -import { C0 } from '../../common/data/EscapeSequences'; +import { IKeyboardEvent } from 'common/Types'; +import { IKeyboardResult, KeyboardResultType } from 'core/Types'; +import { C0 } from 'common/data/EscapeSequences'; // reg + shift key mappings for digits and special chars const KEYCODE_KEY_MAPPINGS: { [key: number]: [string, string]} = { diff --git a/src/core/input/TextDecoder.test.ts b/src/core/input/TextDecoder.test.ts index dc358bc5..ba1c04fa 100644 --- a/src/core/input/TextDecoder.test.ts +++ b/src/core/input/TextDecoder.test.ts @@ -4,7 +4,7 @@ */ import { assert } from 'chai'; -import { StringToUtf32, stringFromCodePoint, Utf8ToUtf32, utf32ToString } from './TextDecoder'; +import { StringToUtf32, stringFromCodePoint, Utf8ToUtf32, utf32ToString } from 'core/input/TextDecoder'; import { encode } from 'utf8'; // convert UTF32 codepoints to string diff --git a/src/core/tsconfig.json b/src/core/tsconfig.json index 99bf48ca..4482140b 100644 --- a/src/core/tsconfig.json +++ b/src/core/tsconfig.json @@ -4,7 +4,12 @@ "outDir": "../../lib", "types": [ "../../node_modules/@types/mocha" - ] + ], + "baseUrl": "..", + "paths": { + "common/*": [ "./common/*" ], + "core/*": [ "./core/*" ] + }, }, "include": [ "./**/*" ], "references": [ diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 00000000..c2c1a226 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,32 @@ +const path = require('path'); + +module.exports = { + entry: './lib/public/Terminal.js', + devtool: 'inline-source-map', + module: { + rules: [ + { + test: /\.js$/, + use: ["source-map-loader"], + enforce: "pre", + exclude: /node_modules/ + } + ] + }, + resolve: { + modules: ['./node_modules'], + extensions: [ '.js' ], + alias: { + common: path.resolve('./lib/common'), + core: path.resolve('./lib/core') + } + }, + output: { + filename: 'xterm.js', + path: path.resolve('./lib2'), + library: 'Terminal', + libraryTarget: 'umd' + }, + mode: 'development', + watch: true +};