/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
    \qmltype typescript
    \inqmlmodule QbsModules
    \since Qbs 1.3

    \brief Provides TypeScript support.

    The \c typescript module contains properties and rules for building
    \l{TypeScript} applications and may be used in combination with the
    \l{nodejs} module to run the applications directly from \QBS.
*/

/*!
    \qmlproperty string typescript::warningLevel

    The severity of warnings to emit. The higher the level, the more warnings
    will be shown.

    \c{pedantic} causes the TypeScript to emit warnings on expressions and
    declarations with an implied \e any type.

    \defaultvalue \c{"normal"}
*/

/*!
    \qmlproperty string typescript::targetVersion

    The ECMAScript target version for generated JavaScript code.

    If left undefined, the TypeScript \l{Compiler Options}{compiler default} is
    used.

    \nodefaultvalue
*/

/*!
    \qmlproperty string typescript::moduleLoader

    If TypeScript modules are being used, the JavaScript module loading
    mechanism to use in the generated JavaScript code.

    If left undefined, modules are not used.

    See \l{Compiler Options} for a list of possible values.

    \nodefaultvalue
*/

/*!
    \qmlproperty bool typescript::stripComments

    Whether to remove comments from the generated JavaScript files.

    \defaultvalue \l{qbs::debugInformation}{!qbs.debugInformation}
*/

/*!
    \qmlproperty bool typescript::generateDeclarations

    Whether to generate the corresponding \c .d.ts files during compilation.
    These are TypeScript's equivalent of header files.

    \defaultvalue \c{false}
*/

/*!
    \qmlproperty bool typescript::generateSourceMaps

    Whether to generate the corresponding \c .map files during compilation.

    \defaultvalue \l{qbs::debugInformation}{qbs.debugInformation}
*/

/*!
    \qmlproperty stringList typescript::compilerFlags

    A list of additional flags for the TypeScript compiler.

    \nodefaultvalue
*/

/*!
    \qmlproperty bool typescript::singleFile

    Whether to compile all TypeScript source files to a single JavaScript output
    file.

    The default is to compile each TypeScript file to a corresponding JavaScript
    file. This property is incompatible with \l{typescript}{moduleLoader}.

    \defaultvalue \c{false}
*/

/*!
    \qmlproperty string typescript::version

    The TypeScript version.

    Consists of four numbers separated by dots. For example, "1.0.0.0".

    \nodefaultvalue
*/

/*!
    \qmlproperty int typescript::versionMajor

    The TypeScript major version.

    \defaultvalue \c{versionParts[0]}
*/

/*!
    \qmlproperty int typescript::versionMinor

    The TypeScript minor version.

    \defaultvalue \c{versionParts[1]}
*/

/*!
    \qmlproperty list typescript::versionParts

    The TypeScript version as a list.

    For example, TypeScript version 1.0 would correspond to a value of
    \c[1, 0, 0, 0].

    \defaultvalue \c []
*/

/*!
    \qmlproperty int typescript::versionPatch

    The TypeScript patch level.

    \defaultvalue \c{versionParts[2]}
*/

/*!
    \qmlproperty int typescript::versionBuild

    The fourth TypeScript version number component.

    \defaultvalue \c{versionParts[3]}
*/

/*!
    \qmlproperty path typescript::toolchainInstallPath

    The TypeScript installation directory.

    This property should not normally need to be changed if \c{tsc} is available
    by searching the PATH environment variable.

    \nodefaultvalue
*/

/*!
    \qmlproperty string typescript::compilerName

    The name of the compiler binary.

    This property should not normally need to be changed.

    \defaultvalue \c{"tsc"}
*/

/*!
    \qmlproperty string typescript::compilerPath

    The directory where the compiler binary is located.

    This property should not normally need to be changed.

    \defaultvalue \c{compilerName}
*/
