{
    "prepare": {},
    "compile": {
        "typescript": {
            "task": "ts",
            "package": "grunt-ts",
            "default": {
                "options": {
                    "module": "commonjs",
                    "compile": true,
                    "experimentalDecorators": true
                },
                "src": "<%= config.sources.TypeScript.files %>"
            }
        }
    },
    "test": {
        "typescript": {
            "unit": {
                "task": "mochaTest",
                "package": "grunt-mocha-test",
                "dependencies": [
                    "chai",
                    "sinon"
                ],
                "test": {
                    "src": [
                        "<%= config.sources.TypeScript.tests.unit %>"
                    ]
                }
            },
            "acceptance": {
                "clean-test-results": {
                    "task": "clean",
                    "package": "grunt-contrib-clean",
                    "options": {
                        "force": true
                    },
                    "target": [
                        "<%= config.directories.TypeScript.acceptance %>/testdata"
                    ]
                },
                ":for-each": {
                    "values" : ["BuildScenarios", "YamlVars", "TypeDiscriminators", "TypeDiscriminatorsFunctions", "TypeDiscriminatorsModules", "RunningBuild", "ExtendingModules", "UsingDifferentConfiguration"],
                    "do": {
                        "scenarios": {
                            "task": "cucumberjs",
                            "package": "grunt-cucumber",
                            "src": "<%= config.directories.TypeScript.acceptance %>/@(this).feature",
                            "dependencies": [
                                "cucumber",
                                "chai"
                            ],
                            "options": "<%= config.test.acceptance.options %>"
                        }
                    }
                }
            }
        }
    }
}