{"version":3,"sources":["../../src/components/tsconfig.ts"],"sourcesContent":["import { javascript, typescript } from 'projen';\n\nexport function defaultTsConfig(): javascript.TypescriptConfigOptions {\n  return {\n    compilerOptions: {\n      esModuleInterop: true,\n      forceConsistentCasingInFileNames: true,\n      lib: ['ES2023'],\n      module: 'NodeNext',\n      moduleResolution: javascript.TypeScriptModuleResolution.NODE_NEXT,\n      skipLibCheck: true,\n      strict: true,\n      target: 'ES2022',\n      // TODO: Update this to allow injecting types\n      types: ['vitest/globals'],\n    },\n  };\n}\n\nexport function createTsNodeCmd(tsFilePath: string) {\n  return `TS_NODE_PROJECT=tsconfig.dev.json node --no-warnings --loader ts-node/esm ${tsFilePath}`;\n}\n\nexport function useTsNodeEsm(project: typescript.TypeScriptProject) {\n  const defaultTask = project.tasks.tryFind('default');\n  if (defaultTask) {\n    const { steps } = defaultTask;\n    defaultTask.reset();\n    for (const step of steps) {\n      if (step.exec) {\n        const hasTsNode = step.exec.includes('ts-node');\n        defaultTask.exec(\n          hasTsNode ? createTsNodeCmd('.projenrc.ts') : step.exec,\n        );\n      } else if (step.spawn) {\n        const subTask = project.tasks.tryFind(step.spawn);\n        if (subTask) {\n          defaultTask.spawn(subTask);\n        }\n      }\n    }\n  }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuC;AAEhC,SAAS,kBAAsD;AACpE,SAAO;AAAA,IACL,iBAAiB;AAAA,MACf,iBAAiB;AAAA,MACjB,kCAAkC;AAAA,MAClC,KAAK,CAAC,QAAQ;AAAA,MACd,QAAQ;AAAA,MACR,kBAAkB,yBAAW,2BAA2B;AAAA,MACxD,cAAc;AAAA,MACd,QAAQ;AAAA,MACR,QAAQ;AAAA;AAAA,MAER,OAAO,CAAC,gBAAgB;AAAA,IAC1B;AAAA,EACF;AACF;AAEO,SAAS,gBAAgB,YAAoB;AAClD,SAAO,6EAA6E,UAAU;AAChG;AAEO,SAAS,aAAa,SAAuC;AAClE,QAAM,cAAc,QAAQ,MAAM,QAAQ,SAAS;AACnD,MAAI,aAAa;AACf,UAAM,EAAE,MAAM,IAAI;AAClB,gBAAY,MAAM;AAClB,eAAW,QAAQ,OAAO;AACxB,UAAI,KAAK,MAAM;AACb,cAAM,YAAY,KAAK,KAAK,SAAS,SAAS;AAC9C,oBAAY;AAAA,UACV,YAAY,gBAAgB,cAAc,IAAI,KAAK;AAAA,QACrD;AAAA,MACF,WAAW,KAAK,OAAO;AACrB,cAAM,UAAU,QAAQ,MAAM,QAAQ,KAAK,KAAK;AAChD,YAAI,SAAS;AACX,sBAAY,MAAM,OAAO;AAAA,QAC3B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;","names":[]}