# All files nx-types.ts

100% Statements 4/4
100% Branches 4/4
100% Functions 2/2
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176

    1x

    1x

    1x

    1x

     /*! Copyright [Amazon.com](http://amazon.com/), Inc. or its affiliates. All Rights Reserved.
    SPDX-License-Identifier: Apache-2.0 */
    export namespace Nx {
      /**
       * Configuration for nx targetDependencies.
       */
      export type TargetDependencies = { [target: string]: TargetDependency[] };

      /**
       * Configuration for project specific targets.
       */
      export type ProjectTargets = { [target: string]: ProjectTarget };

      /**
       * Project Target.
       */
      export interface ProjectTarget {
        /**
         * List of inputs to hash for cache key, relative to the root of the monorepo.
         *
         * note: must start with leading /
         */
        readonly inputs?: string[];
        /**
         * List of outputs to cache, relative to the root of the monorepo.
         *
         * note: must start with leading /
         */
        readonly outputs?: string[];

        /**
         * List of Target Dependencies.
         */
        readonly dependsOn?: TargetDependency[];
      }

      /**
       * Supported enums for a TargetDependency.
       */
      export enum TargetDependencyProject {
        /**
         * Only rely on the package where the target is called.
         *
         * This is usually done for test like targets where you only want to run unit
         * tests on the target packages without testing all dependent packages.
         */
        SELF = "self",
        /**
         * Target relies on executing the target against all dependencies first.
         *
         * This is usually done for build like targets where you want to build all
         * dependant projects first.
         */
        DEPENDENCIES = "dependencies",
      }

      /**
       * Represents an NX Target Dependency.
       */
      export interface TargetDependency {
        /**
         * Projen target i.e: build, test, etc
         */
        readonly target: string;

        /**
         * Target dependencies.
         */
        readonly projects: TargetDependencyProject;
      }

      /**
       * Named inputs config
       * @see https://nx.dev/reference/nx-json#inputs-&-namedinputs
       */
      export interface NamedInputs {
        readonly [name: string]: string[];
      }

      /**
       * Target defaults config
       * @see https://nx.dev/reference/nx-json#target-defaults
       */
      export interface TargetDefaults {
        readonly [name: string]: ProjectTarget;
      }

      /**
       * NX workspace configurations.
       *
       * @see https://nx.dev/configuration/packagejson
       */
      export interface WorkspaceConfig {
        /**
         * Affected branch.
         *
         * @default mainline
         */
        readonly affectedBranch?: string;

        /**
         * Configuration for TargetDependencies.
         *
         * @see https://nx.dev/configuration/packagejson#target-dependencies
         */
        readonly targetDependencies?: TargetDependencies;

        /**
         * List of patterns to include in the .nxignore file.
         *
         * @see https://nx.dev/configuration/packagejson#nxignore
         */
        readonly nxIgnore?: string[];

        /**
         * Read only access token if enabling nx cloud.
         */
        readonly nxCloudReadOnlyAccessToken?: string;

        /**
         * Defines the list of targets/operations that are cached by Nx
         *
         * @default ["build", "test"]
         * @see https://nx.dev/reference/nx-json#tasks-runner-options
         */
        readonly cacheableOperations?: string[];

        /**
         * Named inputs
         * @see https://nx.dev/reference/nx-json#inputs-&-namedinputs
         */
        readonly namedInputs?: NamedInputs;

        /**
         * Target defaults
         *
         * @see https://nx.dev/reference/nx-json#target-defaults
         */
        readonly targetDefaults?: TargetDefaults;
      }

      export interface ProjectConfig {
        /**
         * Named inputs
         * @see https://nx.dev/reference/nx-json#inputs-&-namedinputs
         */
        readonly namedInputs?: NamedInputs;

        /**
         * Targets configuration
         * @see https://nx.dev/reference/project-configuration
         */
        readonly targets?: ProjectTargets;

        /**
         * Project tag annotations
         *
         * @see https://nx.dev/reference/project-configuration#tags
         */
        readonly tags?: string[];

        /**
         * Implicit dependencies
         *
         * @see https://nx.dev/reference/project-configuration#implicitdependencies
         */
        readonly implicitDependencies?: string[];

        /**
         * Explicit list of scripts for Nx to include.
         * @see https://nx.dev/reference/project-configuration#ignoring-package.json-scripts
         */
        readonly includedScripts?: string[];
      }
    }