- The source code is entirely written in TypeScript
- The output code is ES5 JavaScript
- Unit tests are written in ES6 JavaScript
tapeis the test runner
- E2E tests are written in ES6 JavaScript
- E2E tests are plain scripts
@types/*are TypeScript definitionsbabel-cliruns E2E tests in ES6 mode usingbabel-nodebabel-preset-es2015is a preset for Babel to parse ES6 JavaScriptbabel-tape-runnerruns the tape unit tests in ES6 modedeldeletes directories and filesgulpis the build system for automated tasksgulp-require-tasksautomatically includes gulp submodulesgulp-typescriptis the TypeScript compiler plugin for gulpgulp-watchis a gulp plugin that watches for file changesmerge2is used to merge multiple streams into one streamrun-sequenceis used to run gulp tasks in sequencesemveris tool to check semantic versioningtapeis the test runner for the unit teststslintchecks TypeScript code for errorstypescriptis the TypeScript compilervrsource-tslint-rulesis a set of extended rules for tslint
corejsis used to get polyfills for next-generation JavaScript implementationsrequestperforms HTTP requests
distribution- Output codesource- The source codetests- All test filese2e- End-to-end test filesunit- Unit-test files
tools- Development toolstasks- Gulp tasksfixtures- Fixtureshelpers- Helper functionsvalues- Value helpers
.babelrc- Babel compiler settings.editorconfig- Universal editor configuration.gitignore- List of ignored files and directories.travis.yml- Travis CI configuration fileCHANGELOG.md- ChangelogCONTRIBUTING.md- This filegulpfile.babel.js- Gulp tasks definition fileindex.js- Main entry scriptpackage.json- Module manifestREADME.md- ReadMetsconfig.json- TypeScript compiler settingstslint.json- TSLint settings
npm startis the command to start developing. It builds the project and watches for file changesnpm run buildbuilds the project
npm testruns all commands below. It lints the source code and runs E2E and unit testsnpm run lintlints the source codenpm run test-unitruns the unit testsnpm run test-e2eruns the E2E tests
- Perform test-driven development (write unit and E2E tests)
- Lint your code (using TSLint)
- Follow semantic versioning scheme
- Make entries to the changelog file
- Document your code using JSDoc documentation blocks
- Format your code according to the style guidelines
- Describe your method in API documentation file