IC3 adapter for Bot Framework Web Chat
This chat adapter will enable developer using IC3 protocol on Bot Framework Web Chat.
Development
Etiquette
- Do not delete
package-lock.json
- Keep things as simple, intuitive, and default, as possible
Build
npm ci
npm start
, this will start type-checking, transpiling, and bundling- Babel: transpile to ES5, with
forceAllTransforms
set totrue
- TypeScript: type-check and emit
/lib/*.d.ts
declarations - Webpack: bundle to
/dist/*.js
- Babel: transpile to ES5, with
- Then, on another window,
npm test
- Jest: run test in watch mode
Artifacts
You can find latest build drops on NPM and this Azure Pipeline.
- Bundles
botframework-webchat-adapter-ic3.development.js
botframework-webchat-adapter-ic3.production.min.js
- Both contains a
window.Microsoft.BotFramework.WebChat.Adapter.IC3
class
- Tarball
botframework-webchat-adapter-ic3
package- When imported, it will have an
IC3Adapter
class
Test
Jest is our test runner, it includes code coverage report. Run npm test
to start Jest in watch mode.
/__tests__/
contains all end-to-end or integration tests, on a package perspective/src/**/*.spec.js
are unit tests, they are the "specification" of the SUT/src/**/*.test.js
verify non-specification part of the SUT
Continouous integration
Continuous integration is set up using Azure Pipeline at https://fuselabs.visualstudio.com/BotFramework-WebChat/_build?definitionId=746&_a=summary.
Continuous deployment
Continuous deployment is set up for NPM and Azure Storage using Azure Pipeline at https://fuselabs.visualstudio.com/BotFramework-WebChat/_release?definitionId=15. It will deploy to the following services.
- NPM
- Unpkg (unofficial mirror)
- You should always use Subresource Integrity to protect from MITM attack
botframework-webchat-adapter-ic3.development.js
botframework-webchat-adapter-ic3.production.min.js
- Azure Storage (temporary)