Start experimenting with a multi-module typescript application

With some inspiration from
https://medium.com/@jeffkhull/a-typescript-monorepo-without-lerna-7805920c370f
This commit is contained in:
R Tyler Croy 2019-06-25 18:23:06 -07:00
parent fb4143692e
commit f66b39c8d7
No known key found for this signature in database
GPG Key ID: E5C92681BEF6CEA2
8 changed files with 7122 additions and 0 deletions

1
.gitignore vendored
View File

@ -3,3 +3,4 @@
*.sw*
node_modules/
.cargo/
build/

View File

@ -1,3 +1,6 @@
export PATH:=./node_modules/.bin:${PATH}
ANTLR_BIN=antlr-4.7.2-complete.jar
DREDD=./node_modules/.bin/dredd
ANTLR=contrib/$(ANTLR_BIN)
@ -7,6 +10,7 @@ GRAMMAR=Otto.g4
all: help
build: ## Build all components
tsc
check: ## Run validation tests

18
lib/src/logger.ts Normal file
View File

@ -0,0 +1,18 @@
/**
* The logger package will create a simple default logger for use with feathers
* services
*/
import { createLogger, format, transports } from 'winston';
export default createLogger({
// To see more detailed errors, change this to 'debug'
level: 'info',
format: format.combine(
format.splat(),
format.simple()
),
transports: [
new transports.Console()
],
});

7021
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

43
package.json Normal file
View File

@ -0,0 +1,43 @@
{
"name": "otto",
"version": "0.0.1",
"description": "Your friendly continuous delivery companion",
"main": "index.js",
"directories": {
"example": "examples"
},
"dependencies": {
"@feathersjs/configuration": "^2.0.6",
"@feathersjs/express": "^1.3.1",
"@feathersjs/feathers": "^3.3.1",
"@types/feathersjs__configuration": "^1.0.3",
"@types/feathersjs__express": "^1.1.6",
"@types/jest": "^24.0.15",
"compression": "^1.7.4",
"cors": "^2.8.5",
"dredd": "^11.1.4",
"helmet": "^3.18.0",
"jest": "^24.8.0",
"nodemon": "^1.19.1",
"ts-jest": "^24.0.2",
"tslib": "^1.10.0",
"typescript": "^3.5.2",
"uuid": "^3.3.2",
"winston": "^3.2.1"
},
"devDependencies": {},
"scripts": {
"build": "tsc",
"test": "jest"
},
"repository": {
"type": "git",
"url": "git+https://github.com/rtyler/otto.git"
},
"author": "R Tyler Croy",
"license": "AGPL-3.0",
"bugs": {
"url": "https://github.com/rtyler/otto/issues"
},
"homepage": "https://github.com/rtyler/otto#readme"
}

View File

@ -0,0 +1,3 @@
import logger from 'lib/src/logger';
logger.info('Starting orchestrator');

29
tsconfig.base.json Normal file
View File

@ -0,0 +1,29 @@
{
"compilerOptions": {
"alwaysStrict" : true,
"baseUrl" : ".",
"outDir": "./build",
"module" : "commonjs",
"lib" : ["es2017"],
"moduleResolution": "node",
"esModuleInterop": true,
"importHelpers" : true,
"target": "es2015",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"noUnusedLocals": true,
"strictNullChecks": true,
"skipLibCheck": true,
"paths": {
"@otto-orchestrator/*": ["./services/orchestrator/src/*"],
"@otto/*": ["./lib/src/*"]
},
"typeRoots" : [
"./node_modules/@types"
]
}
}

3
tsconfig.json Normal file
View File

@ -0,0 +1,3 @@
{
"extends": "./tsconfig.base"
}