module.exports = function(grunt) {
    grunt.loadNpmTasks('grunt-mocha-cli');
    grunt.loadNpmTasks('grunt-jslint');

    grunt.initConfig({
        mochacli: {
            options: {
                reporter: 'spec',
                require: ['should']
            },
            all: ['test/']
        },
        jslint: {
            all: {
                src: ['index.js'],
                directives: {
                    node: true,
                    nomen: true
                }
            }
        }
    });

    grunt.registerTask('lint', ['jslint:all']);
    grunt.registerTask('test', ['mochacli:all']);
};

module.exports = function(grunt) {
    grunt.loadNpmTasks('grunt-mocha-cli');
    grunt.loadNpmTasks('grunt-jslint');
    grunt.loadNpmTasks('grunt-typescript');
    grunt.loadNpmTasks('grunt-contrib-clean');

    grunt.initConfig({
        mochacli: {
            options: {
                reporter: 'spec',
                require: ['should']
            },
            all: ['test/']
        },
        jslint: {
            all: {
                src: ['index.js'],
                directives: {
                    node: true,
                    nomen: true
                }
            }
        },
        typescript: {
            base: {
                src: ['src/**/*.ts'],
                dest: 'js/',
                options: {
                    module: 'commonjs',
                    target: 'es5',
                    base_path: 'src/',
                    sourcemap: true,
                    declaration: true
                }
            }
        },
        clean: ["js"]
    });

    grunt.registerTask('lint', ['jslint:all']);
    grunt.registerTask('ts',   ['typescript']);
    grunt.registerTask('test', ['clean', 'ts', 'mochacli:all']);
};

Add typescript and clean targets to gruntfile
Add typescript and clean targets to gruntfile
