constructor()

in projenrc/projects/pdk-project.ts [257:342]


  constructor(project: PDKProject, publishConfig?: PublishConfig) {
    super(project, {
      versionFile: "package.json",
      task: project.buildTask,
      branch: "mainline",
      artifactsDirectory: project.artifactsDirectory,
    });

    project.addDevDeps("license-checker", "generate-license-file");

    project.packageTask.reset();
    project.packageTask.exec(
      NodePackageUtils.command.exec(
        project.package.packageManager,
        "license-checker",
        "--summary",
        "--production",
        "--onlyAllow",
        "'MIT;Apache-2.0;Unlicense;BSD;BSD-2-Clause;BSD-3-Clause;ISC;'"
      )
    );
    project.packageTask.exec(
      NodePackageUtils.command.exec(
        project.package.packageManager,
        "generate-license-file",
        "--input package.json",
        "--output LICENSE_THIRD_PARTY",
        "--overwrite"
      )
    );
    project.packageTask.spawn(project.tasks.tryFind("package-all")!);

    this.updateJsPackageTask(project);
    this.updateJavaPackageTask(project);
    this.updatePythonPackageTask(project);

    const releaseTask = project.tasks.tryFind("release:mainline")!;
    releaseTask.reset();
    releaseTask.env("RELEASE", "true");
    releaseTask.exec("rm -rf dist");
    releaseTask.spawn(project.tasks.tryFind("bump")!);
    releaseTask.spawn(project.preCompileTask);
    releaseTask.spawn(project.compileTask);
    releaseTask.spawn(project.postCompileTask);
    releaseTask.spawn(project.packageTask);
    releaseTask.spawn(project.tasks.tryFind("unbump")!);

    [
      ".gitattributes",
      ".prettier*",
      "index.ts",
      "project.json",
      "!/assets",
      "!/samples",
      "!/scripts",
      "!.jsii",
      "!README.md",
      "!LICENSE",
      "!LICENSE_THIRD_PARTY",
      "!scripts",
      "!_scripts",
      "!assets",
      "!samples",
      "!index.js",
      "!index.d.ts",
      ...(PdkProject.getJsiiProjects(project.parent) || []).map(
        (p) => `!/${PdkProject.getProjectName(p)}`
      ),
      ...(PdkProject.getJsiiProjects(project.parent) || []).map(
        (p) => `/${PdkProject.getProjectName(p)}/**/*.ts`
      ),
      ...(PdkProject.getJsiiProjects(project.parent) || []).map(
        (p) => `!/${PdkProject.getProjectName(p)}/**/*.d.ts`
      ),
    ].forEach((p) => project.addPackageIgnore(p));

    project.package.addField("publishConfig", {
      access: "public",
      ...publishConfig,
    });

    NxProject.of(project)?.addBuildTargetFiles(
      ["!{projectRoot}/LICENSE_THIRD_PARTY"],
      ["{projectRoot}/LICENSE_THIRD_PARTY"]
    );
  }