@nikovirtala/projen-constructs
    Preparing search index...

    Variable projectDefaultOptionsConst

    projectDefaultOptions: {
        autoApproveOptions: { allowedUsernames: string[]; secret: string };
        autoMerge: true;
        biome: true;
        biomeOptions: {
            biomeConfig: {
                formatter: {
                    indentStyle: SPACE;
                    indentWidth: number;
                    lineWidth: number;
                    useEditorconfig: false;
                };
            };
            formatter: true;
            linter: true;
        };
        defaultReleaseBranch: string;
        dependabot: false;
        depsUpgradeOptions: { workflowOptions: { labels: string[] } };
        eslint: false;
        github: true;
        githubOptions: { mergify: true };
        jest: false;
        minNodeVersion: string;
        packageManager: PNPM;
        pnpmOptions: {
            workspaceYamlOptions: {
                allowBuilds: { esbuild: boolean };
                minimumReleaseAge: number;
                nodeLinker: HOISTED;
                verifyDepsBeforeRun: boolean;
            };
        };
        pnpmVersion: string;
        prettier: false;
        projenrcTs: true;
        tsconfig: {
            compilerOptions: {
                alwaysStrict: true;
                declaration: true;
                esModuleInterop: true;
                experimentalDecorators: true;
                inlineSourceMap: true;
                inlineSources: true;
                isolatedModules: true;
                noFallthroughCasesInSwitch: true;
                noImplicitAny: true;
                noImplicitReturns: true;
                noImplicitThis: true;
                noUnusedLocals: true;
                noUnusedParameters: true;
                resolveJsonModule: true;
                strict: true;
                strictNullChecks: true;
                strictPropertyInitialization: true;
            };
        };
        tsconfigDev: {
            compilerOptions: {
                allowSyntheticDefaultImports: true;
                noImplicitOverride: true;
            };
        };
        typescriptVersion: string;
    } = ...

    Type Declaration

    • autoApproveOptions: { allowedUsernames: string[]; secret: string }
    • autoMerge: true
    • biome: true
    • biomeOptions: {
          biomeConfig: {
              formatter: {
                  indentStyle: SPACE;
                  indentWidth: number;
                  lineWidth: number;
                  useEditorconfig: false;
              };
          };
          formatter: true;
          linter: true;
      }
    • defaultReleaseBranch: string
    • dependabot: false
    • depsUpgradeOptions: { workflowOptions: { labels: string[] } }
    • eslint: false
    • github: true
    • githubOptions: { mergify: true }
    • jest: false
    • minNodeVersion: string
    • packageManager: PNPM
    • pnpmOptions: {
          workspaceYamlOptions: {
              allowBuilds: { esbuild: boolean };
              minimumReleaseAge: number;
              nodeLinker: HOISTED;
              verifyDepsBeforeRun: boolean;
          };
      }

      pnpm 11 only reads auth and registry settings from .npmrc, everything else has to live in pnpm-workspace.yaml.

      minimumReleaseAge defaults to 1440 minutes in pnpm 11. That cooldown makes pnpm record unavoidable exceptions in minimumReleaseAgeExclude, which projen regenerates away on the next synth, so the dependency upgrade workflow would keep flip-flopping this file. Set it explicitly to opt out.

      • workspaceYamlOptions: {
            allowBuilds: { esbuild: boolean };
            minimumReleaseAge: number;
            nodeLinker: HOISTED;
            verifyDepsBeforeRun: boolean;
        }
        • allowBuilds: { esbuild: boolean }

          pnpm blocks dependency install scripts by default and, since pnpm 11, fails the install when any are ignored. esbuild links its platform binary in a postinstall script and is pulled in by vitest, so allow it. allowBuilds replaces the allowScripts project option, which still renders the onlyBuiltDependencies key that pnpm 11 no longer reads.

        • minimumReleaseAge: number
        • nodeLinker: HOISTED
        • verifyDepsBeforeRun: boolean

          pnpm 11 defaults verifyDepsBeforeRun to install, so pnpm exec and pnpm run install before running. projen resolves the task PATH with $(pnpm -c exec ...), which re-enters pnpm install while an install is already running and deadlocks on the store lock. projen orchestrates the installs itself, so turn the check off.

    • pnpmVersion: string
    • prettier: false
    • projenrcTs: true
    • tsconfig: {
          compilerOptions: {
              alwaysStrict: true;
              declaration: true;
              esModuleInterop: true;
              experimentalDecorators: true;
              inlineSourceMap: true;
              inlineSources: true;
              isolatedModules: true;
              noFallthroughCasesInSwitch: true;
              noImplicitAny: true;
              noImplicitReturns: true;
              noImplicitThis: true;
              noUnusedLocals: true;
              noUnusedParameters: true;
              resolveJsonModule: true;
              strict: true;
              strictNullChecks: true;
              strictPropertyInitialization: true;
          };
      }

      jsii validates the compile tsconfig against its "strict" rule set, so it may only carry options jsii accepts. Everything else belongs to tsconfigDev, which projen renders as the type-check only config extending this one.

    • tsconfigDev: {
          compilerOptions: {
              allowSyntheticDefaultImports: true;
              noImplicitOverride: true;
          };
      }
    • typescriptVersion: string