New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

havunen

Package Overview
Dependencies
Maintainers
1
Versions
49
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

havunen

[![Build Status](https://travis-ci.org/Kflash/havunen.svg?branch=master)](https://travis-ci.org/Kflash/havunen) [![Circle CI](https://circleci.com/gh/Kflash/havunen/tree/master.svg?style=shield)](https://circleci.com/gh/Kflash/havunen/tree/master) [![np

  • 0.0.10
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2
decreased by-93.1%
Maintainers
1
Weekly downloads
 
Created
Source

ES2015 boilerplate for creating libraries with the Rollup.

Build Status Circle CI npm version npm

Features

  • ES6 with Babel for ES6 and ES7
  • Rollup for bundling and unit tests
  • Stub let you stub module exports at runtime when bundling with Rollup.
  • Chai as Promised extends Chai with a fluent language for asserting facts about promises.
  • Eslint to maintain a consistent code style
  • Typescript support with Rollup and JSX
  • Flow for quickly find errors in JavaScript applications
  • Karma as the test runner
  • Universal Module Definition (UMD) API, which provides compatibility with the most popular script loaders, to the output.
  • Sinon.JS with examples for test doubles
  • jsdom for server tests
  • Unit tests written with ES2015 get transpiled on the fly
  • Node >= 5.x

Quick start

The only development dependency of this project is Node.js. So just make sure you have it installed. Then type few commands known to every Node developer...

$ git clone https://github.com/kflash/havunen.git
$ cd havunen
$ npm install                   # Install Node modules listed in ./package.json
$ npm run build                 # Build a minified and a non-minified version of the library

... and boom! You have it all setup for you!

Workflow

  • npm run build - Build task that generates both minified and non-minified scripts
  • npm run build:prod - Build task that generate a minified script
  • npm run build:dev - Build task that generate a non-minified script
  • npm run lint:source - Lint the source
  • npm run lint:tests - Lint the unit tests
  • npm run clean - Remove the coverage report - and the dist folder
  • npm run test - Runs unit tests for both server and the browser
  • npm run test:browser - Runs the unit tests for browser
  • npm run test:server - Runs the unit tests on the server
  • npm run karma:chrome - Runs the unit tests for browser with Chrome
  • npm run karma:firefox - Runs the unit tests for browser with Firefox
  • npm run watch:server - Run all unit tests for server & watch files for changes
  • npm run watch:browser - Run all unit tests for browser & watch files for changes
  • npm run watch:chrome - Run all unit tests for browser with Chrome & watch files for changes
  • npm run packages - List installed packages
  • npm run package:purge - Remove all dependencies
  • npm run package:reinstall - Reinstall all dependencies
  • npm run package:check - shows a list over dependencies with a higher version number then the current one - if any
  • npm run package:upgrade - Automaticly upgrade all devDependencies & dependencies, and update package.json

Testing environment

This project uses Mocha to run your unit tests, it uses Karma as the test runner, it enables the feature that you are able to render your tests to the browser (e.g: Firefox, Chrome etc.).

To add a unit test, simply create a .spec.browser.js or a .spec.server.js file inside the ~../test/specs/ folder. Karma will pick up on these files automatically, and Mocha and Chai will be available within your unit tests without the need to import them.

To run unit tests only for the browser ( client), or for the server, create either a ~/test/.spec.browser.js or ~/spec.server file inside the same folder.

To run the tests in the project, just simply npm run test for both server and client unit tests, or npm run test:server. for server or npm run test:browser. for browser tests.

To keep watching the common test suites that you are working on, simply do npm run watch:browser or npm run watch:server.

Adding other test files

  • Browser:, simply open up the karma.conf.js file in the ~/config folder and add your files to the files: and preprocessors: section.
  • NodejS: open up the ~/config/mocha.opts file and add your files to the top of the file.

JSX

Only syntax parsing are supported. If you want to transform JSX you need to add a JSX transformer plugins for it. E.g babel-plugin-transform-react-jsx for React support.

Flow

Both parsing and transformation of Flow comments are supported by this boilerplate.

Sinon

Sinon.JS is also set up for test doubles - see BatClass.common.js for examples of both Sinon and Rewire using ES6 classes.

Coveralls

This library is set up to integrate with Coveralls, and will automaticly publish your coverage report to coveralls.io if you have created an account there.

##Rollup

Rollup are used as the library bundler. It produces a cleaner and more lightweight source code then what you get with for example webpack and browserify.

Package management

Havunen has build-in some nice features to always make sure your dependency tree are up to date.

To check for the latest dependencies, simply run npm run package:check.

If you want to update your packages, you can simply do npm run package:upgrade.

Note! Your package.json will be automatically updated so make sure you have saved your changes before running this.

To reinstall all packages, do npm run package:reinstall, and to remove all packages npm run package:purge.

Pre-commit

This boilerplate uses a pre-commit hook to ensure that your npm test (or other specified scripts) passes before you can commit your changes. This all conveniently configured in your package.json.

jsDOM

jsdom are used to set up React.js components' testing harness under Node.js, based on the amazing jsdom. Also a couple of bugs related to React is fixed.

Linting

ESLint are used to lint your source. To change the rules, edit the .eslintrc file in the root directory, respectively.

Installation

Download the package, and run this from the command line:

npm install

License

The MIT License (MIT)

Copyright (c) 2016 KFlash

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

FAQs

Package last updated on 12 Apr 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc