relaycode
Version:
A developer assistant that automates applying code changes from LLMs.
2 lines • 2.1 kB
JavaScript
;var r=require('typescript'),u=require('path'),logger=require('./logger');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var r__default=/*#__PURE__*/_interopDefault(r);var u__default=/*#__PURE__*/_interopDefault(u);const l=i=>i.filter(n=>n.category===r__default.default.DiagnosticCategory.Error).length,f=i=>{const n=/(?:--project|-p)\s+([^\s]+)/,o=/(?:--build|-b)/;let t;const s=i.match(n);s&&(t=s[1]);let c;const e=i.match(/(?:--build|-b)\s+([^\s]+)/);return e&&(c=e[1]),{project:t,build:o.test(i),buildPath:c}},p=(i,n)=>{const o=f(i);let t;if(o.buildPath?t=u__default.default.resolve(n,o.buildPath):o.project&&(t=u__default.default.resolve(n,o.project)),t&&r__default.default.sys.directoryExists(t)&&(t=u__default.default.join(t,"tsconfig.json")),t||(t=r__default.default.findConfigFile(n,r__default.default.sys.fileExists,"tsconfig.json")),!t||!r__default.default.sys.fileExists(t)){logger.logger.debug("Could not find tsconfig.json to use with TypeScript API.");return}return logger.logger.debug(`Using tsconfig for API-based linting: ${t}`),t},y=(i,n)=>{const o=f(i),t=p(i,n);if(!t)return -1;const s=[],c=e=>s.push(e);try{if(o.build){const e=r__default.default.createSolutionBuilderHost(r__default.default.sys,void 0,c,c);return e.writeFile=a=>{logger.logger.debug(`Intercepted write for ${a} during API-based linting.`);},r__default.default.createSolutionBuilder(e,[t],{force:!0,verbose:!1}).build(),l(s)}else {const e=r__default.default.readConfigFile(t,r__default.default.sys.readFile);if(e.error)return s.push(e.error),l(s);const g=r__default.default.parseJsonConfigFileContent(e.config,r__default.default.sys,u__default.default.dirname(t));g.errors.length>0&&s.push(...g.errors);const a=r__default.default.createProgram(g.fileNames,g.options);return s.push(...r__default.default.getPreEmitDiagnostics(a)),l(s)}}catch(e){return logger.logger.debug(`Error during TypeScript API-based linting: ${e instanceof Error?e.message:String(e)}`),-1}};exports.getTypeScriptErrorCount=y;//# sourceMappingURL=typescript.cjs.map
//# sourceMappingURL=typescript.cjs.map