diff --git a/.gitignore b/.gitignore index 753d962803eb6ab77399c03dc6bd3d2ebef30979..d5a9aeb477d2e00b007fa30c3101803ecb83debc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ # Created by .ignore support plugin (hsz.mobi) -soar-config.json + ### Node template # Logs /logs @@ -26,6 +26,9 @@ coverage # Dependency directories node_modules/ +# Build files +dist/ + # Optional npm cache directory .npm diff --git a/README.md b/README.md index e3ef52ebc40e5c975cab2a92410646d74c006e09..ddfa8c1f0b0f34898ffdabb5aaa72bdec6564785 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,11 @@ yarn add ssh://git@git.noc.ac.uk:communications-backbone-system/backbone-adapter npm install git+https://git.noc.ac.uk/communications-backbone-system/backbone-adapter-javascript.git ``` +## Schema + +The example code uses a mock schema with some example messages. The intention is the message +protocol schema is retreived from an external source. + ## Config To run the adapter you need a credentials file called `soar-config.json`. diff --git a/package.json b/package.json index 3aecb6bef1334604c164e08d5eb0288fb9a3026f..454524210b54d6149a624640f705954574809c55 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,8 @@ "lint": "yarn lint:js && yarn lint:prettier", "lintfix": "prettier --write --list-different . && yarn lint:js --fix", "prepare": "husky install", - "test": "jest" + "test": "jest", + "build": "cross-env NODE_ENV=production rollup -c" }, "lint-staged": { "*.{js,vue}": "eslint --cache", @@ -38,7 +39,9 @@ "@babel/eslint-parser": "^7.0.0", "@commitlint/cli": "^15.0.0", "@commitlint/config-conventional": "^15.0.0", + "@rollup/plugin-babel": "^6.0.3", "babel-jest": "^27.4.4", + "cross-env": "^7.0.3", "cucumber": "^6.0.7", "eslint": "^8.4.1", "eslint-config-prettier": "^8.3.0", @@ -46,6 +49,7 @@ "husky": "^7.0.4", "jest": "^27.4.4", "lint-staged": "^12.1.2", - "prettier": "^2.5.1" + "prettier": "^2.5.1", + "rollup": "^3.9.1" } } diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000000000000000000000000000000000000..5a1292b35a360bcb4be76e6411b6cf26d847d61b --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,28 @@ +exports.default = [ + { + input: 'src/adapter/index.js', + output: [ + { + file: 'dist/adapter.esm.js', + format: 'es', + }, + { + file: 'dist/adapter.js', + format: 'cjs', + }, + ], + }, + { + input: 'src/protocol/index.js', + output: [ + { + file: 'dist/protocol.esm.js', + format: 'es', + }, + { + file: 'dist/protocol.js', + format: 'cjs', + }, + ], + }, +]; diff --git a/comms-adapter/index.js b/src/adapter/index.js similarity index 100% rename from comms-adapter/index.js rename to src/adapter/index.js diff --git a/comms-adapter/protocol/example-client.js b/src/protocol/example-client.js similarity index 96% rename from comms-adapter/protocol/example-client.js rename to src/protocol/example-client.js index 74aab223eb41942592cdb224aa49595a393cc661..bbbb3b2a5c95b2b9de549a4c2aa2f7b20d0b0844 100644 --- a/comms-adapter/protocol/example-client.js +++ b/src/protocol/example-client.js @@ -1,9 +1,9 @@ -import { GenericProtocol } from '~/modules/comms-adapter/protocol/generic'; +import { GenericProtocol } from '~/modules/comms-adapter/protocol'; /** * */ -export class SoarWebClientProtocol extends GenericProtocol { +export class ExampleClientProtocol extends GenericProtocol { constructor(schema, services) { super(schema, services); diff --git a/comms-adapter/protocol/generic.js b/src/protocol/index.js similarity index 100% rename from comms-adapter/protocol/generic.js rename to src/protocol/index.js diff --git a/yarn.lock b/yarn.lock index 731d2826107e7ed95977f846a10a28194076feee..193e894a94ca9c9896a49ab03752f9d70d31e029 100644 --- a/yarn.lock +++ b/yarn.lock @@ -745,6 +745,23 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@rollup/plugin-babel@^6.0.3": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-6.0.3.tgz#07ccde15de278c581673034ad6accdb4a153dfeb" + integrity sha512-fKImZKppa1A/gX73eg4JGo+8kQr/q1HBQaCGKECZ0v4YBBv3lFqi14+7xyApECzvkLTHCifx+7ntcrvtBIRcpg== + dependencies: + "@babel/helper-module-imports" "^7.18.6" + "@rollup/pluginutils" "^5.0.1" + +"@rollup/pluginutils@^5.0.1": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33" + integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + "@sinonjs/commons@^1.7.0": version "1.8.6" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" @@ -797,6 +814,11 @@ dependencies: "@babel/types" "^7.3.0" +"@types/estree@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + "@types/graceful-fs@^4.1.2": version "4.1.6" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" @@ -1410,7 +1432,14 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-env@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== + dependencies: + cross-spawn "^7.0.1" + +cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -1818,6 +1847,11 @@ estraverse@^5.1.0, estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -1979,7 +2013,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.3.2: +fsevents@^2.3.2, fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -3539,6 +3573,13 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" +rollup@^3.9.1: + version "3.9.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.9.1.tgz#27501d3d026418765fe379d5620d25954ff2a011" + integrity sha512-GswCYHXftN8ZKGVgQhTFUJB/NBXxrRGgO2NCy6E8s1rwEJ4Q9/VttNqcYfEvx4dTo4j58YqdC3OVztPzlKSX8w== + optionalDependencies: + fsevents "~2.3.2" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"