# All files / src pdk-pipeline-ts-project.ts

100% Statements 9/9
100% Branches 2/2
100% Functions 1/1
100% Lines 9/9

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

    4x
    4x
    4x

    4x

    4x

    4x

    4x

    4x

    4x

     /*! Copyright [Amazon.com](http://amazon.com/), Inc. or its affiliates. All Rights Reserved.
    SPDX-License-Identifier: Apache-2.0 */
    import * as path from "path";
    import { SampleDir } from "projen";
    import {
      AwsCdkTypeScriptApp,
      AwsCdkTypeScriptAppOptions,
    } from "projen/lib/awscdk";

    /**
     * Configuration options for the PDKPipelineTsProject.
     */
    export interface PDKPipelineTsProjectOptions
      extends AwsCdkTypeScriptAppOptions {}

    /**
     * Synthesizes a Typescript Project with a CI/CD pipeline.
     *
     * @pjid pdk-pipeline-ts
     */
    export class PDKPipelineTsProject extends AwsCdkTypeScriptApp {
      constructor(options: PDKPipelineTsProjectOptions) {
        super({
          github: false,
          package: false,
          prettier: true,
          projenrcTs: true,
          release: false,
          sampleCode: false,
          ...options,
          appEntrypoint: options.appEntrypoint || "pipeline.ts",
        });

        this.addDeps("aws-prototyping-sdk", "cdk-nag");

        // AwsCdkTypeScriptApp removes ts compilation - add back to err on the side of caution should infrastructure
        // include NodejsFunctions that won't be type-checked during CDK synthesis
        this.compileTask.reset("tsc --build");

        new SampleDir(this, this.srcdir, {
          sourceDir: path.join(__dirname, "..", "samples", "typescript", "src"),
        });

        new SampleDir(this, this.testdir, {
          sourceDir: path.join(__dirname, "..", "samples", "typescript", "test"),
        });
      }
    }