diff --git a/Makefile b/Makefile index 82e1962..0ec923b 100644 --- a/Makefile +++ b/Makefile @@ -77,3 +77,7 @@ stop: destroy: docker-compose down docker volume prune + + +dev-metamigo: + CURRENT_UID=$(CURRENT_UID) docker compose up -d metamigo-postgresql signald diff --git a/README.md b/README.md index 0b96834..7b4afe2 100644 --- a/README.md +++ b/README.md @@ -19,8 +19,8 @@ Or for local dev of a single app * Build locally for development: ``` npm install - turbo --concurrency 30 build - turbo --concurrency 30 dev + npm run migrate + npm run dev:metamigo ``` # Notes @@ -39,10 +39,7 @@ npm install --workspace=metamigo-common ### Run a task in a specific project ``` -turbo run build --filter metamigo-cli - - -npm run dev -- --filter @digiresilience/metamigo-cli npm run migrate +npm run dev:metamigo ``` diff --git a/apps/metamigo-api/package.json b/apps/metamigo-api/package.json index 4b7efc8..26e6fdb 100644 --- a/apps/metamigo-api/package.json +++ b/apps/metamigo-api/package.json @@ -2,7 +2,7 @@ "name": "@digiresilience/metamigo-api", "version": "0.2.0", "type": "module", - "main": "build/main/index.js", + "main": "build/main/main.js", "author": "Abel Luck ", "license": "AGPL-3.0-or-later", "dependencies": { @@ -55,6 +55,7 @@ "pg-monitor": "^2.0.0", "pino-pretty": "^10.0.0", "ts-node": "^10.9.1", + "tsc-watch": "^6.0.4", "tsconfig-link": "*", "typedoc": "^0.24.7", "typescript": "^5.0.4" @@ -77,6 +78,7 @@ "serve:prod": "NODE_ENV=production npm run cli server", "worker": "NODE_ENV=development npm run cli worker", "worker:prod": "NODE_ENV=production npm run cli worker", - "watch:build": "tsc -p tsconfig.json -w" + "watch:build": "tsc -p tsconfig.json -w", + "dev": "tsc-watch --build --noClear --onSuccess \"node ./build/main/main.js\"" } } diff --git a/apps/metamigo-api/src/index.ts b/apps/metamigo-api/src/index.ts index 1fbab9f..9d6a07a 100644 --- a/apps/metamigo-api/src/index.ts +++ b/apps/metamigo-api/src/index.ts @@ -1,2 +1,3 @@ export * from "./server/index.js" -export * from "./logger.js" \ No newline at end of file +export * from "./logger.js" + diff --git a/apps/metamigo-api/src/main.ts b/apps/metamigo-api/src/main.ts new file mode 100644 index 0000000..5c3eeb9 --- /dev/null +++ b/apps/metamigo-api/src/main.ts @@ -0,0 +1,8 @@ +import { startWithout } from "@digiresilience/montar"; +import "./index.js"; + +async function runServer(): Promise { + await startWithout(["worker"]); +} + +runServer(); \ No newline at end of file diff --git a/apps/metamigo-api/tsconfig.json b/apps/metamigo-api/tsconfig.json index 6fd474c..ffd2831 100644 --- a/apps/metamigo-api/tsconfig.json +++ b/apps/metamigo-api/tsconfig.json @@ -5,8 +5,18 @@ "rootDir": "src", "skipLibCheck": true, "types": ["jest", "node", "long"], - "lib": ["es2020", "DOM"] + "lib": ["es2020", "DOM"], + "composite": true, }, "include": ["src/**/*.ts", "src/**/.*.ts"], - "exclude": ["node_modules/**"] + "exclude": ["node_modules/**"], + "references": [ + {"path": "../../packages/metamigo-common" }, + {"path": "../../packages/metamigo-config" }, + {"path": "../../packages/metamigo-db" }, + {"path": "../../packages/hapi-nextauth" }, + {"path": "../../packages/hapi-pg-promise" }, + {"path": "../../packages/node-signald" }, + {"path": "../../packages/montar" } + ] } diff --git a/apps/metamigo-cli/package.json b/apps/metamigo-cli/package.json index 690fa11..e516125 100644 --- a/apps/metamigo-cli/package.json +++ b/apps/metamigo-cli/package.json @@ -35,8 +35,6 @@ "scripts": { "migrate": "NODE_ENV=development node --unhandled-rejections=strict build/main/index.js db -- migrate", "build": "tsc -p tsconfig.json", - "dev": "NODE_ENV=development node --unhandled-rejections=strict build/main/index.js api", - "cli": "NODE_ENV=development node --unhandled-rejections=strict build/main/index.js", "fix:lint": "eslint src --ext .ts --fix", "fmt": "prettier \"src/**/*.ts\" --write", "lint": "eslint src --ext .ts && prettier \"src/**/*.ts\" --list-different", diff --git a/apps/metamigo-worker/package.json b/apps/metamigo-worker/package.json index c2fb923..029c96a 100644 --- a/apps/metamigo-worker/package.json +++ b/apps/metamigo-worker/package.json @@ -45,14 +45,12 @@ "doc": "yarn run doc:html", "fix:lint": "eslint src --ext .ts --fix", "fix:prettier": "prettier \"src/**/*.ts\" --write", - "worker": "NODE_ENV=development yarn cli worker", "test:jest": "JEST_CIRCUS=1 jest --coverage --forceExit --detectOpenHandles --reporters=default --reporters=jest-junit", "test:jest-verbose": "yarn test:jest --verbose --silent=false", "test": "yarn test:jest", "lint": "yarn lint:lint && yarn lint:prettier", "lint:lint": "eslint src --ext .ts", "lint:prettier": "prettier \"src/**/*.ts\" --list-different", - "watch:build": "tsc -p tsconfig.json -w", "watch:test": "yarn test:jest --watchAll" } } diff --git a/package-lock.json b/package-lock.json index 3028231..c501390 100644 --- a/package-lock.json +++ b/package-lock.json @@ -165,6 +165,7 @@ "pg-monitor": "^2.0.0", "pino-pretty": "^10.0.0", "ts-node": "^10.9.1", + "tsc-watch": "^6.0.4", "tsconfig-link": "*", "typedoc": "^0.24.7", "typescript": "^5.0.4" @@ -9292,6 +9293,12 @@ "node": ">=12" } }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, "node_modules/duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", @@ -10455,6 +10462,21 @@ "es5-ext": "~0.10.14" } }, + "node_modules/event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", + "dev": true, + "dependencies": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" + } + }, "node_modules/event-target-shim": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", @@ -10904,6 +10926,12 @@ "node": ">=12.20.0" } }, + "node_modules/from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", + "dev": true + }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -11727,18 +11755,6 @@ "integrity": "sha512-vo76VJ44MkUBZL/BzpGXaKzMfroF4ZR6+haRuw9p+eSWfoNaH2AxVc8xmiEPC08jhzJSeM6w7/iMUGet8b4oBQ==", "peer": true }, - "node_modules/hapi/node_modules/b64": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/b64/-/b64-4.1.2.tgz", - "integrity": "sha512-+GUspBxlH3CJaxMUGUE1EBoWM6RKgWiYwUDal0qdf8m3ArnXNN1KzKVo5HOnE/FSq4HHyWf3TlHLsZI8PKQgrQ==", - "extraneous": true - }, - "node_modules/hapi/node_modules/big-time": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/big-time/-/big-time-2.0.1.tgz", - "integrity": "sha512-qtwYYoocwpiAxTXC5sIpB6nH5j6ckt+n/jhD7J5OEiFHnUZEFn0Xk8STUaE5s10LdazN/87bTDMe+fSihaW7Kg==", - "extraneous": true - }, "node_modules/hapi/node_modules/boom": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.2.tgz", @@ -11751,12 +11767,6 @@ "integrity": "sha512-1LPcXg3fkGVhjdA/P3DcR5cDktKEYtDpruJv9Nhmy36RoYaoxZfC82Zr2JmS3vysDJKqMtP0qJw3/P6iisTASg==", "peer": true }, - "node_modules/hapi/node_modules/bourne": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/bourne/-/bourne-1.1.1.tgz", - "integrity": "sha512-Ou0l3W8+n1FuTOoIfIrCk9oF9WVWc+9fKoAl67XQr9Ws0z7LgILRZ7qtc9xdT4BveSKtnYXfKPgn8pFAqeQRew==", - "extraneous": true - }, "node_modules/hapi/node_modules/call": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/call/-/call-5.0.3.tgz", @@ -11775,18 +11785,6 @@ "integrity": "sha512-1tDnll066au0HXBSDHS/YQ34MQ2omBsmnA9g/jseyq/M3m7UPrajVtPDZK/rXgikSC1dfjo9Pa+kQ1qcyG2d3g==", "peer": true }, - "node_modules/hapi/node_modules/content": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/content/-/content-4.0.6.tgz", - "integrity": "sha512-lR9ND3dXiMdmsE84K6l02rMdgiBVmtYWu1Vr/gfSGHcIcznBj2QxmSdUgDuNFOA+G9yrb1IIWkZ7aKtB6hDGyA==", - "extraneous": true - }, - "node_modules/hapi/node_modules/cryptiles": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.3.tgz", - "integrity": "sha512-gT9nyTMSUC1JnziQpPbxKGBbUg8VL7Zn2NB4E1cJYvuXdElHrwxrV9bmltZGDzet45zSDGyYceueke1TjynGzw==", - "extraneous": true - }, "node_modules/hapi/node_modules/heavy": { "version": "6.1.2", "resolved": "https://registry.npmjs.org/heavy/-/heavy-6.1.2.tgz", @@ -11799,42 +11797,18 @@ "integrity": "sha512-3PvUwBerLNVJiIVQdpkWF9F/M0ekgb2NPJWOhsE28RXSQPsY42YSnaJ8d1kZjcAz58TZ/Fk9Tw64xJsENFlJNw==", "peer": true }, - "node_modules/hapi/node_modules/iron": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/iron/-/iron-5.0.6.tgz", - "integrity": "sha512-zYUMOSkEXGBdwlV/AXF9zJC0aLuTJUKHkGeYS5I2g225M5i6SrxQyGJGhPgOR8BK1omL6N5i6TcwfsXbP8/Exw==", - "extraneous": true - }, "node_modules/hapi/node_modules/joi": { "version": "14.0.4", "resolved": "https://registry.npmjs.org/joi/-/joi-14.0.4.tgz", "integrity": "sha512-KUXRcinDUMMbtlOk7YLGHQvG73dLyf8bmgE+6sBTkdJbZpeGVGAlPXEHLiQBV7KinD/VLD5OA0EUgoTTfbRAJQ==", "peer": true }, - "node_modules/hapi/node_modules/mime-db": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", - "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", - "extraneous": true - }, "node_modules/hapi/node_modules/mimos": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/mimos/-/mimos-4.0.2.tgz", "integrity": "sha512-5XBsDqBqzSN88XPPH/TFpOalWOjHJM5Z2d3AMx/30iq+qXvYKd/8MPhqBwZDOLtoaIWInR3nLzMQcxfGK9djXA==", "peer": true }, - "node_modules/hapi/node_modules/nigel": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/nigel/-/nigel-3.0.4.tgz", - "integrity": "sha512-3SZCCS/duVDGxFpTROHEieC+itDo4UqL9JNUyQJv3rljudQbK6aqus5B4470OxhESPJLN93Qqxg16rH7DUjbfQ==", - "extraneous": true - }, - "node_modules/hapi/node_modules/pez": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pez/-/pez-4.0.5.tgz", - "integrity": "sha512-HvL8uiFIlkXbx/qw4B8jKDCWzo7Pnnd65Uvanf9OOCtb20MRcb9gtTVBf9NCnhETif1/nzbDHIjAWC/sUp7LIQ==", - "extraneous": true - }, "node_modules/hapi/node_modules/podium": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/podium/-/podium-3.1.5.tgz", @@ -11877,18 +11851,6 @@ "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==", "peer": true }, - "node_modules/hapi/node_modules/vise": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vise/-/vise-3.0.1.tgz", - "integrity": "sha512-7BJNjsv2o83+E6AHAFSnjQF324UTgypsR/Sw/iFmLvr7RgJrEXF1xNBvb5LJfi+1FvWQXjJK4X41WMuHMeunPQ==", - "extraneous": true - }, - "node_modules/hapi/node_modules/wreck": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/wreck/-/wreck-14.1.3.tgz", - "integrity": "sha512-hb/BUtjX3ObbwO3slCOLCenQ4EP8e+n8j6FmTne3VhEFp5XV1faSJojiyxVSvw34vgdeTG5baLTl4NmjwokLlw==", - "extraneous": true - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -15197,6 +15159,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", + "dev": true + }, "node_modules/markdown-it": { "version": "13.0.1", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", @@ -16243,6 +16211,12 @@ "node": ">= 8.0.0" } }, + "node_modules/node-cleanup": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/node-cleanup/-/node-cleanup-2.1.2.tgz", + "integrity": "sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw==", + "dev": true + }, "node_modules/node-domexception": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", @@ -16977,6 +16951,15 @@ "node": ">=8" } }, + "node_modules/pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", + "dev": true, + "dependencies": { + "through": "~2.3" + } + }, "node_modules/peberminta": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/peberminta/-/peberminta-0.9.0.tgz", @@ -18130,6 +18113,21 @@ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" }, + "node_modules/ps-tree": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", + "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==", + "dev": true, + "dependencies": { + "event-stream": "=3.3.4" + }, + "bin": { + "ps-tree": "bin/ps-tree.js" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -19781,6 +19779,18 @@ "node": ">=10.0.0" } }, + "node_modules/split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", + "dev": true, + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, "node_modules/split-on-first": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", @@ -19841,6 +19851,15 @@ "node": ">= 0.4" } }, + "node_modules/stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", + "dev": true, + "dependencies": { + "duplexer": "~0.1.1" + } + }, "node_modules/stream-shift": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", @@ -19867,6 +19886,15 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "engines": { + "node": ">=0.6.19" + } + }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -20670,6 +20698,27 @@ } } }, + "node_modules/tsc-watch": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/tsc-watch/-/tsc-watch-6.0.4.tgz", + "integrity": "sha512-cHvbvhjO86w2aGlaHgSCeQRl+Aqw6X6XN4sQMPZKF88GoP30O+oTuh5lRIJr5pgFWrRpF1AgXnJJ2DoFEIPHyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "node-cleanup": "^2.1.2", + "ps-tree": "^1.2.0", + "string-argv": "^0.3.1" + }, + "bin": { + "tsc-watch": "dist/lib/tsc-watch.js" + }, + "engines": { + "node": ">=12.12.0" + }, + "peerDependencies": { + "typescript": "*" + } + }, "node_modules/tsconfig-link": { "resolved": "packages/tsconfig-link", "link": true @@ -22254,6 +22303,7 @@ "babel-preset-link": "*", "eslint-config-link": "*", "jest-config-link": "*", + "tsc-watch": "^6.0.4", "tsconfig-link": "*" } }, @@ -22266,7 +22316,9 @@ "pg-monitor": "^2.0.0", "pg-promise": "^11.4.3" }, - "devDependencies": {} + "devDependencies": { + "tsc-watch": "^6.0.4" + } }, "packages/jest-config-link": { "version": "0.0.1", @@ -22355,6 +22407,7 @@ "@types/uuid": "^9.0.1", "camelcase-keys": "^8.0.2", "pg-monitor": "^2.0.0", + "tsc-watch": "^6.0.4", "typedoc": "^0.24.7", "typescript": "^5.0.4" } @@ -22390,6 +22443,7 @@ "pino-pretty": "^10.0.0", "prettier": "^2.8.8", "ts-node": "^10.9.1", + "tsc-watch": "^6.0.4", "typedoc": "^0.24.7", "typescript": "^5.0.4" } @@ -22417,6 +22471,7 @@ "pino-pretty": "^10.0.0", "prettier": "^2.8.8", "ts-node": "^10.9.1", + "tsc-watch": "^6.0.4", "typedoc": "^0.24.7", "typescript": "^5.0.4" } @@ -22736,6 +22791,7 @@ "babel-preset-link": "*", "eslint-config-link": "*", "jest-config-link": "*", + "tsc-watch": "^6.0.4", "tsconfig-link": "*" }, "engines": { @@ -22760,6 +22816,7 @@ "camelcase": "^7.0.1", "eslint-config-link": "*", "jest-config-link": "*", + "tsc-watch": "^6.0.4", "tsconfig-link": "*", "typedoc": "^0.24.7" }, diff --git a/package.json b/package.json index d90643b..25a8078 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,9 @@ "description": "", "main": "index.js", "scripts": { - "dev": "dotenv -- turbo run dev", + "dev": "dotenv -- turbo run dev --concurrency 30", + "build": "turbo build --concurrency 30", + "dev:metamigo": "make dev-metamigo && dotenv -- turbo run dev --concurrency 30 --filter=!link --filter=!leafcutter", "migrate": "dotenv -- npm run migrate --workspace=@digiresilience/metamigo-cli" }, "packageManager": "npm@9.3.1", diff --git a/packages/hapi-nextauth/package.json b/packages/hapi-nextauth/package.json index e669e55..77d651f 100644 --- a/packages/hapi-nextauth/package.json +++ b/packages/hapi-nextauth/package.json @@ -8,12 +8,13 @@ "license": "AGPL-3.0-or-later", "private": false, "devDependencies": { - "@types/jest": "^29.5.1", "@hapi/basic": "^7.0.1", - "tsconfig-link": "*", + "@types/jest": "^29.5.1", + "babel-preset-link": "*", "eslint-config-link": "*", "jest-config-link": "*", - "babel-preset-link": "*" + "tsc-watch": "^6.0.4", + "tsconfig-link": "*" }, "dependencies": { "@hapi/hapi": "^21.3.2", @@ -29,6 +30,6 @@ "lint": "eslint src --ext .ts", "lint-fmt": "prettier \"src/**/*.ts\" --list-different", "doc": "typedoc src/ --exclude '**/*.test.ts' --exclude '**/*.spec.ts' --name $npm_package_name --readme README.md --target es2019 --mode file --out build/docs", - "watch:build": "tsc -p tsconfig.json -w" + "dev": "tsc-watch --build --noClear" } } diff --git a/packages/hapi-nextauth/tsconfig.json b/packages/hapi-nextauth/tsconfig.json index 3395a3e..d55238c 100644 --- a/packages/hapi-nextauth/tsconfig.json +++ b/packages/hapi-nextauth/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "tsconfig-link", "compilerOptions": { + "composite": true, "incremental": true, "outDir": "build/main", "rootDir": "src", diff --git a/packages/hapi-pg-promise/package.json b/packages/hapi-pg-promise/package.json index 8d21da5..73791f6 100644 --- a/packages/hapi-pg-promise/package.json +++ b/packages/hapi-pg-promise/package.json @@ -8,6 +8,7 @@ "license": "AGPL-3.0-or-later", "private": false, "devDependencies": { + "tsc-watch": "^6.0.4" }, "dependencies": { "@hapi/hapi": "^21.3.2", @@ -21,6 +22,6 @@ "test": "jest --coverage --forceExit --detectOpenHandles --reporters=default --reporters=jest-junit", "lint": "eslint src --ext .ts && prettier \"src/**/*.ts\" --list-different", "doc": "typedoc src/ --exclude '**/*.test.ts' --exclude '**/*.spec.ts' --name $npm_package_name --readme README.md --target es2019 --mode file --out build/docs", - "watch:build": "tsc -p tsconfig.json -w" + "dev": "tsc-watch --build --noClear" } } diff --git a/packages/hapi-pg-promise/tsconfig.json b/packages/hapi-pg-promise/tsconfig.json index 77496bb..f3b88f3 100644 --- a/packages/hapi-pg-promise/tsconfig.json +++ b/packages/hapi-pg-promise/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "tsconfig-link", "compilerOptions": { + "composite": true, "incremental": true, "outDir": "build/main", "rootDir": "src", diff --git a/packages/metamigo-common/package.json b/packages/metamigo-common/package.json index 1e5061f..92a79b8 100644 --- a/packages/metamigo-common/package.json +++ b/packages/metamigo-common/package.json @@ -14,7 +14,7 @@ "fmt": "prettier \"src/**/*.ts\" --write", "lint": "eslint src --ext .ts && prettier \"src/**/*.ts\" --list-different", "doc": "typedoc src/ --exclude '**/*.test.ts' --exclude '**/*.spec.ts' --name $npm_package_name --readme README.md --target es2019 --mode file --out build/docs", - "watch:build": "tsc -p tsconfig.json -w" + "dev": "tsc-watch --build --noClear " }, "devDependencies": { "@types/figlet": "^1.5.6", @@ -23,6 +23,7 @@ "@types/uuid": "^9.0.1", "camelcase-keys": "^8.0.2", "pg-monitor": "^2.0.0", + "tsc-watch": "^6.0.4", "typedoc": "^0.24.7", "typescript": "^5.0.4" }, diff --git a/packages/metamigo-common/tsconfig.json b/packages/metamigo-common/tsconfig.json index f13ab89..630e770 100644 --- a/packages/metamigo-common/tsconfig.json +++ b/packages/metamigo-common/tsconfig.json @@ -7,7 +7,8 @@ "baseUrl": "./", "skipLibCheck": true, "types": ["jest", "node"], - "esModuleInterop": true + "esModuleInterop": true, + "composite": true, }, "include": ["src/**/*.ts"], "exclude": ["node_modules/**"] diff --git a/packages/metamigo-config/package.json b/packages/metamigo-config/package.json index 2c232c3..5d7c928 100644 --- a/packages/metamigo-config/package.json +++ b/packages/metamigo-config/package.json @@ -6,8 +6,8 @@ "author": "Abel Luck ", "license": "AGPL-3.0-or-later", "dependencies": { - "@digiresilience/montar": "*", - "@digiresilience/metamigo-common": "*" + "@digiresilience/metamigo-common": "*", + "@digiresilience/montar": "*" }, "devDependencies": { "@babel/core": "7.21.8", @@ -17,6 +17,7 @@ "pino-pretty": "^10.0.0", "prettier": "^2.8.8", "ts-node": "^10.9.1", + "tsc-watch": "^6.0.4", "typedoc": "^0.24.7", "typescript": "^5.0.4" }, @@ -31,6 +32,6 @@ "fmt": "prettier \"src/**/*.ts\" --write", "lint": "eslint src --ext .ts && prettier \"src/**/*.ts\" --list-different", "test": "echo no tests", - "watch:build": "tsc -p tsconfig.json -w" + "dev": "tsc-watch --build --noClear" } } diff --git a/packages/metamigo-config/tsconfig.json b/packages/metamigo-config/tsconfig.json index 3395a3e..d55238c 100644 --- a/packages/metamigo-config/tsconfig.json +++ b/packages/metamigo-config/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "tsconfig-link", "compilerOptions": { + "composite": true, "incremental": true, "outDir": "build/main", "rootDir": "src", diff --git a/packages/metamigo-db/package.json b/packages/metamigo-db/package.json index 0e9f060..66f8cfd 100644 --- a/packages/metamigo-db/package.json +++ b/packages/metamigo-db/package.json @@ -25,6 +25,7 @@ "pino-pretty": "^10.0.0", "prettier": "^2.8.8", "ts-node": "^10.9.1", + "tsc-watch": "^6.0.4", "typedoc": "^0.24.7", "typescript": "^5.0.4" }, @@ -34,7 +35,7 @@ "fix:lint": "eslint src --ext .ts --fix", "fmt": "prettier \"src/**/*.ts\" --write", "lint": "eslint src --ext .ts && prettier \"src/**/*.ts\" --list-different", - "watch:build": "tsc -p tsconfig.json -w", - "worker": "NODE_ENV=development yarn cli worker" + "worker": "NODE_ENV=development yarn cli worker", + "dev": "tsc-watch --build --noClear " } } diff --git a/packages/metamigo-db/tsconfig.json b/packages/metamigo-db/tsconfig.json index 3395a3e..d55238c 100644 --- a/packages/metamigo-db/tsconfig.json +++ b/packages/metamigo-db/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "tsconfig-link", "compilerOptions": { + "composite": true, "incremental": true, "outDir": "build/main", "rootDir": "src", diff --git a/packages/montar/package.json b/packages/montar/package.json index 6f09ebe..6595930 100644 --- a/packages/montar/package.json +++ b/packages/montar/package.json @@ -17,16 +17,17 @@ "lint": "eslint src --ext .ts", "lint-fmt": "prettier \"src/**/*.ts\" --list-different", "doc": "typedoc src/ --exclude '**/*.test.ts' --exclude '**/*.spec.ts' --name $npm_package_name --readme README.md --target es2019 --mode file --out build/docs", - "watch:build": "tsc -p tsconfig.json -w" + "dev": "tsc-watch --build --noClear" }, "engines": { "node": ">=14" }, "devDependencies": { - "tsconfig-link": "*", + "babel-preset-link": "*", "eslint-config-link": "*", "jest-config-link": "*", - "babel-preset-link": "*" + "tsc-watch": "^6.0.4", + "tsconfig-link": "*" }, "dependencies": { "debug": "^4.3.4" diff --git a/packages/montar/tsconfig.json b/packages/montar/tsconfig.json index 77496bb..f3b88f3 100644 --- a/packages/montar/tsconfig.json +++ b/packages/montar/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "tsconfig-link", "compilerOptions": { + "composite": true, "incremental": true, "outDir": "build/main", "rootDir": "src", diff --git a/packages/node-signald/package.json b/packages/node-signald/package.json index 75b453e..b0f9d56 100644 --- a/packages/node-signald/package.json +++ b/packages/node-signald/package.json @@ -16,7 +16,7 @@ }, "scripts": { "build": "tsc --build --verbose", - "watch": "tsc --build --verbose --watch", + "dev": "tsc-watch --build --noClear", "generate": "node util/generate.js && prettier src/generated.ts -w --loglevel error && npm run build", "doc": "typedoc src/ --exclude '**/*.test.ts' --exclude '**/*.spec.ts' --name $npm_package_name --readme README.md --out dist/docs", "fix": "echo n/a", @@ -27,12 +27,13 @@ }, "devDependencies": { "@types/backoff": "^2.5.2", + "babel-preset-link": "*", "camelcase": "^7.0.1", - "typedoc": "^0.24.7", - "tsconfig-link": "*", "eslint-config-link": "*", "jest-config-link": "*", - "babel-preset-link": "*" + "tsc-watch": "^6.0.4", + "tsconfig-link": "*", + "typedoc": "^0.24.7" }, "dependencies": { "backoff": "^2.5.0", diff --git a/packages/node-signald/tsconfig.json b/packages/node-signald/tsconfig.json index 77496bb..f3b88f3 100644 --- a/packages/node-signald/tsconfig.json +++ b/packages/node-signald/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "tsconfig-link", "compilerOptions": { + "composite": true, "incremental": true, "outDir": "build/main", "rootDir": "src", diff --git a/turbo.json b/turbo.json index b6b5176..85f8ce1 100644 --- a/turbo.json +++ b/turbo.json @@ -2,12 +2,13 @@ "$schema": "https://turbo.build/schema.json", "pipeline": { "dev": { + "dependsOn": ["^build"], "cache": false, "persistent": true }, "build": { "dependsOn": ["^build"], - "outputs": [".next/**"] + "outputs": [".next/**","!.next/cache/**", "build/**", "dist/**"] }, "test": { "dependsOn": ["build"],