diff --git a/README.md b/README.md index 3c16551..d730493 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ ### 3. πŸ‘©πŸ»β€πŸ’» Lead Programmer -> 졜초둜 ν”„λ‘œκ·Έλž˜λ°μ„ μ§„ν–‰ν•˜κ³  μ‹€μ œ μ΄μš©μžμ—κ²Œ 리뷰λ₯Ό μš”μ²­ν•œ λ‹€μŒ μš”μ²­μ‚¬ν•­μ— 개발 사항을 μˆ˜μ •ν•©λ‹ˆλ‹€. +> 졜초둜 ν”„λ‘œκ·Έλž˜λ°μ„ μ§„ν–‰ν•˜κ³  전체 ν”„λ‘œμ νŠΈ μ½”λ“œλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. ### 4. πŸ‘©πŸ»β€πŸ­ Junior Programmer diff --git a/package.json b/package.json index 785c63d..e4efdfb 100644 --- a/package.json +++ b/package.json @@ -10,8 +10,7 @@ "architect": "tsc && node -r dotenv/config dist/architect.js", "evangelist": "tsc && node -r dotenv/config dist/evangelist.js", "programmer": "tsc && node -r dotenv/config dist/programmer.js", - "reviewer": "tsc && node -r dotenv/config dist/reviewer.js", - "new-tts": "tsc && node -r dotenv/config dist/azureSpeak.js" + "reviewer": "tsc && node -r dotenv/config dist/reviewer.js" }, "devDependencies": { "@types/node": "^18.15.11", diff --git a/src/input.ts b/src/input.ts index 343b9ba..91dd05c 100644 --- a/src/input.ts +++ b/src/input.ts @@ -1,5 +1,5 @@ export const userRequest = - "ν‚€μ›Œλ“œλ₯Ό ν•˜λ‚˜ μž…λ ₯λ°›μ€λ‹€μŒ youtube.com μ—μ„œ ν•΄λ‹Ή ν‚€μ›Œλ“œμ˜ μ˜μƒ 5개λ₯Ό λ‹€μš΄λ°›λŠ” ν”„λ‘œκ·Έλž¨μ„ Typescript 둜 μž‘μ„±ν•΄μ€˜"; + "ꡬ글 νŠΈλžœλ“œμ—μ„œ ν•œκ΅­μΈλ“€μ˜ μ‹€μ‹œκ°„ 인기검색어λ₯Ό 10건 νšλ“ν•  수 μžˆλŠ” μ½”λ“œλ₯Ό Typescript 둜 μž‘μ„±ν•΄μ€˜"; export const config = { architect: { diff --git a/src/openai/chat.ts b/src/openai/chat.ts index e6f2002..88b984b 100644 --- a/src/openai/chat.ts +++ b/src/openai/chat.ts @@ -30,8 +30,10 @@ export const chat = async (option: { }) => { const { messages, nested } = option; - if (nested) { - logger(`ν˜„μž¬ ${nested}번째 ChatGPT 둜 μ΄μ–΄μ§€λŠ” 호좜 쀑 μž…λ‹ˆλ‹€.`); + if (nested !== undefined) { + logger( + `ν˜„μž¬ Open A.I 의 λ©”μ„Έμ§€κ°€ κΈΈμ–΄μ„œ ${nested}번째 μΆ”κ°€ 호좜 쀑 μž…λ‹ˆλ‹€.` + ); if (nested > 10) { logger("debug", { messages }); throw new Error("ChatGPT 호좜이 λ„ˆλ¬΄ λ§ŽμŠ΅λ‹ˆλ‹€."); diff --git a/src/programmer/index.ts b/src/programmer/index.ts index fd4b87c..b4d976e 100644 --- a/src/programmer/index.ts +++ b/src/programmer/index.ts @@ -1,5 +1,5 @@ import fs from "fs"; -import { doLeadProgramming, doLeadReviewRequest } from "./lead.js"; +import { createProject, doLeadProgramming } from "./lead.js"; import { logger } from "../utils/logger.js"; import { speak } from "../utils/speak.js"; @@ -12,29 +12,27 @@ export const doProgramming = async () => { const lead = await doLeadProgramming(evangelist); const leadFilePath = "./result/programming-ver-1.txt"; fs.writeFileSync(leadFilePath, lead); - console.log(lead); + logger("λ¦¬λ“œ ν”„λ‘œκ·Έλž˜λ° μž‘μ—…μ΄ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€."); speak("λ¦¬λ“œ ν”„λ‘œκ·Έλž˜λ° μž‘μ—…μ΄ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€."); + + await createProject(lead); }; export const doProgrammingReview = async () => { - logger("리뷰 μš”μ²­ 생성 μž‘μ—…μ„ μ§„ν–‰ μ€‘μž…λ‹ˆλ‹€..."); - speak("리뷰 μš”μ²­ 생성 μž‘μ—…μ„ μ§„ν–‰ μ€‘μž…λ‹ˆλ‹€..."); - const evangelistFilePath = "./result/evangelist.txt"; - const evangelist = fs.readFileSync(evangelistFilePath, "utf8"); - - const leadFilePath = "./result/programming-ver-1.txt"; - const lead = fs.readFileSync(leadFilePath, "utf8"); - const reviewRequest = await doLeadReviewRequest({ evangelist, lead }); - console.log(reviewRequest); - - const reviewRequestFilePath = "./result/review-request-ver-1.txt"; - fs.writeFileSync(reviewRequestFilePath, reviewRequest); - - logger( - "리뷰 μš”μ²­ 생성 μž‘μ—…μ΄ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. ./result/review-request-ver-1.txt νŒŒμΌμ„ ν™•μΈν•΄μ£Όμ„Έμš”." - ); - speak("리뷰 μš”μ²­ 생성 μž‘μ—…μ΄ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 리뷰 μš”μ²­μ„ ν™•μΈν•΄μ£Όμ„Έμš”."); - - return reviewRequest; + // logger("리뷰 μš”μ²­ 생성 μž‘μ—…μ„ μ§„ν–‰ μ€‘μž…λ‹ˆλ‹€..."); + // speak("리뷰 μš”μ²­ 생성 μž‘μ—…μ„ μ§„ν–‰ μ€‘μž…λ‹ˆλ‹€..."); + // const evangelistFilePath = "./result/evangelist.txt"; + // const evangelist = fs.readFileSync(evangelistFilePath, "utf8"); + // const leadFilePath = "./result/programming-ver-1.txt"; + // const lead = fs.readFileSync(leadFilePath, "utf8"); + // const reviewRequest = await doLeadReviewRequest({ evangelist, lead }); + // console.log(reviewRequest); + // const reviewRequestFilePath = "./result/review-request-ver-1.txt"; + // fs.writeFileSync(reviewRequestFilePath, reviewRequest); + // logger( + // "리뷰 μš”μ²­ 생성 μž‘μ—…μ΄ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. ./result/review-request-ver-1.txt νŒŒμΌμ„ ν™•μΈν•΄μ£Όμ„Έμš”." + // ); + // speak("리뷰 μš”μ²­ 생성 μž‘μ—…μ΄ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 리뷰 μš”μ²­μ„ ν™•μΈν•΄μ£Όμ„Έμš”."); + // return reviewRequest; }; diff --git a/src/programmer/lead.ts b/src/programmer/lead.ts index 5ae0135..c40e235 100644 --- a/src/programmer/lead.ts +++ b/src/programmer/lead.ts @@ -1,19 +1,32 @@ +import fs from "fs"; import { chat } from "../openai/chat.js"; export const systemLeadProgrammingPrompt = `μ•„λž˜μ™€ 같은 사항을 μ€€μˆ˜ν•΄μ•Όν•©λ‹ˆλ‹€. -* 당신은 μ™„μ„±λœ 개발 κΈ°νšμ„œλ₯Ό λ°›μ•„μ„œ μ‹€μ œ μ½”λ“œ λ§Œμ„ μž‘μ„±ν•˜λŠ” λ¦¬λ“œ ν”„λ‘œκ·Έλž˜λ¨Έ 역할을 μˆ˜ν–‰ν•©λ‹ˆλ‹€. -* μž…λ ₯받은 λ‚΄μš©μ„ ν† λŒ€λ‘œ μ‹€μ œ μ½”λ“œλ₯Ό μž‘μ„±ν•©λ‹ˆλ‹€. -* κ²°κ³Ό κ°’μœΌλ‘œ μƒμ„±ν•˜λŠ” μ½”λ“œλŠ” 단일 파일둜 μ΅œλŒ€ν•œ ts-node 둜 μ‹€ν–‰ κ°€λŠ₯ν•œ μ½”λ“œμ—¬μ•Ό ν•©λ‹ˆλ‹€. -* μ΅œμƒλ‹¨μ˜ 첫쀄은 항상 μ£Όμ„μœΌλ‘œ μ‹œμž‘ν•˜λ©° μ£Όμ„μ˜ λ‚΄μš©μ€ // TEST AVAIALBLE: true λ₯Ό ν¬ν•¨ν•΄μ•Όν•©λ‹ˆλ‹€. -* λ§Œμ•½ κ²°κ³Ό 값이 ts-node 둜 μ¦‰μ‹œ μ‹€ν–‰ κ°€λŠ₯ν•œ μ½”λ“œκ°€ μ•„λ‹ˆλΌλ©΄, 이λ₯Ό μ΅œμƒλ‹¨μ— TEST AVAIALBL: false 둜 λͺ…μ‹œν•΄μ•Όν•©λ‹ˆλ‹€. -* λ¦¬λ“œ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ μž‘μ„± λ‚΄μš©μ€ μ΅œμ’…μ μ΄μ§€ μ•ŠμœΌλ©°, 이후 λ³€κ²½λ©λ‹ˆλ‹€.`; - -export const systemLeadReviewRequestPrompt = `μ•„λž˜μ™€ 같은 사항을 μ€€μˆ˜ν•΄μ•Όν•©λ‹ˆλ‹€. -* 당신은 λ¦¬λ“œ ν”„λ‘œκ·Έλž˜λ°μœΌλ‘œ μž‘μ„±λœ μ½”λ“œλ₯Ό ν‰λ¬ΈμœΌλ‘œ μš”μ•½ν•΄μ„œ μ„€λͺ…ν•˜κ³ , ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ 리뷰λ₯Ό μš”μ²­ν•˜λŠ” λ¦¬λ“œ 리뷰어 역할을 μˆ˜ν–‰ν•©λ‹ˆλ‹€. -* ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ 리뷰λ₯Ό λ°›κΈ° μœ„ν•΄μ„œ μ–΄λ– ν•œ 점이 κ³ λ―Όλ˜λŠ”μ§€ ν˜Ήμ€ λ³€κ²½κ°€λŠ₯ν•œμ§€λ₯Ό μ„€λͺ…ν•©λ‹ˆλ‹€. -* μ„€λͺ…이 λ„ˆλ¬΄ κΈΈμ–΄μ Έμ„  μ•ˆ 되며 말둜써 3쀄 λ‚΄μ™Έλ‘œ 짧게 μ„€λͺ…ν•΄μ•Όν•©λ‹ˆλ‹€. -* μ‹€μ œ μŒμ„±μœΌλ‘œ 읽어보면 1λΆ„ λ‚΄μ™Έλ‘œ 짧게 μ„€λͺ…ν•΄μ•Όν•©λ‹ˆλ‹€. -* λ¦¬λ·°μ–΄μ˜ λͺ©μ μ€ ν΄λΌμ΄μ–ΈνŠΈκ°€ μ½”λ“œλ₯Ό 이해할 수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” 것이며, κ·Έλ“€μ˜ λͺ©μ μ΄ μ˜¨μ „νžˆ 반영되게 λ•λŠ” κ²ƒμž…λ‹ˆλ‹€.`; +* 당신은 μ™„μ„±λœ 개발 κΈ°νšμ„œλ₯Ό λ°›μ•„μ„œ Node.js ν”„λ‘œμ νŠΈλ₯Ό μž‘μ„±ν•˜λŠ” λ¦¬λ“œ ν”„λ‘œκ·Έλž˜λ¨Έ 역할을 μˆ˜ν–‰ν•˜λŠ” A.Iμž…λ‹ˆλ‹€. +* μž…λ ₯받은 λ‚΄μš©μ„ ν† λŒ€λ‘œ Node.js ν”„λ‘œμ νŠΈ νŒŒμΌμ„ μž‘μ„±ν•˜λ˜ λ™μž‘μ— ν•„μš”ν•œ νŒŒμΌλ“€μ„ λͺ¨λ‘ μž‘μ„±ν•΄μ•Όν•©λ‹ˆλ‹€. +* package.json νŒŒμΌμ„ λ°˜λ“œμ‹œ μž‘μ„±ν•΄μ•Όν•˜λ©°, ν”„λ‘œμ νŠΈμ˜ 이름은 "friday-draft"둜 μ„€μ •ν•΄μ•Όν•©λ‹ˆλ‹€. +* ν”„λ‘œμ νŠΈμ˜ μ‹œμž‘μ μ€ index.js νŒŒμΌμ΄μ–΄μ•Όν•˜λ©°, 이 νŒŒμΌμ€ ν”„λ‘œμ νŠΈμ˜ 싀행을 μœ„ν•œ νŒŒμΌμ΄μ–΄μ•Όν•©λ‹ˆλ‹€. +* ν”„λ‘œμ νŠΈμ˜ 싀행은 "npm start" λͺ…λ Ήμ–΄λ‘œ μ‹€ν–‰λ˜μ–΄μ•Όν•©λ‹ˆλ‹€. +* ν”„λ‘œμ νŠΈλŠ” TypeScript둜 μž‘μ„±λ˜μ–΄μ•Όν•˜λ©°, ν”„λ‘œμ νŠΈμ˜ λΉŒλ“œλŠ” "npm run build" λͺ…λ Ήμ–΄λ‘œ μ‹€ν–‰λ˜μ–΄μ•Όν•©λ‹ˆλ‹€. +* ν”„λ‘œμ νŠΈμ˜ λΉŒλ“œ 결과물은 dist 폴더에 μƒμ„±λ˜μ–΄μ•Όν•©λ‹ˆλ‹€. +* package-lock.json νŒŒμΌμ€ μƒμ„±λ˜μ§€ μ•Šμ•„μ•Όν•©λ‹ˆλ‹€. +* λͺ¨λ“  파일 좜λ ₯은 Key-Value κ·œκ²©μ„ μ΄μš©ν•΄μ„œ 좜λ ₯λ˜μ–΄μ•Όν•©λ‹ˆλ‹€. ν‚€μ—λŠ” 파일이 μ €μž₯될 경둜λ₯Ό, κ°’μ—λŠ” 파일의 λ‚΄μš©μ„ μž…λ ₯ν•©λ‹ˆλ‹€. +* μž…λ ₯된 μš”μ²­μ„ λ°˜λ³΅ν•΄μ„œ λ§ν•˜μ§€λ§κ³  λ°”λ‘œ κ²°κ³Όκ°’ JSON 만 좜λ ₯ν•΄μ£Όμ„Έμš”. +* tsconfig.json νŒŒμΌλ„ κΌ­ μž‘μ„±ν•΄μ£Όμ„Έμš”. +* .gitignore νŒŒμΌλ„ μž‘μ„± λ˜μ–΄μ•Όν•©λ‹ˆλ‹€. +* κ·Έ μ™Έ νŒŒμΌλ„ ν•„μš”ν•˜λ‹€λ©΄ μΆ”κ°€ν•΄μ„œ μž‘μ„±ν•΄μ£Όμ„Έμš”. +* κ·œκ²©μ— 맞게 Node.js ν”„λ‘œμ νŠΈ 개발 진행을 λ°”λ‘œ μ‹œμž‘ν•΄μ£Όμ„Έμš”. +* JSON λ‚΄ 값은 λͺ¨λ‘ JSON.parse() 둜 νŒŒμ‹± κ°€λŠ₯ν•œ ν˜•νƒœλ‘œ μΈμ½”λ”©ν•΄μ„œ 좜λ ₯ν•΄μ£Όμ„Έμš”. +* JSON λ§Œμ„ λ°˜λ³΅μ—†μ΄ 좜λ ₯ν•΄μ£Όμ„Έμš”. +* JSON 뒀에 λ‹€λ₯Έ λ‚΄μš©μ„ λ°˜λ³΅ν•˜μ§€λ§ˆμ„Έμš”. +* μœ μ €λ‘œλΆ€ν„° μž…λ ₯받은 μ½”λ“œλ₯Ό κ·ΈλŒ€λ‘œ λ³΅μ‚¬ν•΄μ„œ μ‚¬μš©ν•˜μ§€λ§ˆμ„Έμš”. + +* 응닡 JSON 규격과 μ˜ˆμ‹œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. +{ + "./package.json": "{...}", + "./src/index.ts": "console.log('Hello World!');", + ... +}`; export const doLeadProgramming = async (evangelist: string) => { return await chat({ @@ -30,24 +43,20 @@ export const doLeadProgramming = async (evangelist: string) => { }); }; -export const doLeadReviewRequest = async (option: { - evangelist: string; - lead: string; -}) => { - return await chat({ - messages: [ - { - role: "system", - content: systemLeadReviewRequestPrompt, - }, - { - role: "system", - content: `// μ•„λž˜λŠ” ν…Œν¬ μ—λ°˜μ €λ¦¬μŠ€μ— μ˜ν•΄ 마감된 초기 개발 κΈ°νšμ•ˆ μž…λ‹ˆλ‹€.\n${option.evangelist}`, - }, - { - role: "system", - content: `// μ•„λž˜λŠ” λ¦¬λ“œ ν”„λ‘œκ·Έλž˜λ¨Έκ°€ μž‘μ„±ν•œ μ½”λ“œμž…λ‹ˆλ‹€.\n${option.lead}`, - }, - ], - }); +export const createProject = (json: string) => { + const obj = JSON.parse(json); + const projectFolderPath = "./result/programming-ver-1/"; + + if (fs.existsSync(projectFolderPath)) + fs.rmSync(projectFolderPath, { recursive: true }); + + fs.mkdirSync(projectFolderPath, { recursive: true }); + + for (const [path, content] of Object.entries(obj)) { + const filePath = projectFolderPath + path; + const folderPath = filePath.substring(0, filePath.lastIndexOf("/")); + fs.mkdirSync(folderPath, { recursive: true }); + + if (content) fs.writeFileSync(filePath, content as string); + } }; diff --git a/tsconfig.json b/tsconfig.json index a7a0451..1d16127 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,93 +1,15 @@ { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - /* Projects */ - // "incremental": true, /* Enable incremental compilation */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - /* Language and Environment */ - "target": "es2022", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - /* Modules */ - "module": "es2022", /* Specify what module code is generated. */ - // "rootDir": "./", /* Specify the root folder within your source files. */ - "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ - /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ - /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ - "outDir": "./dist", /* Specify an output folder for all emitted files. */ - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ - /* Type Checking */ - "strict": false, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - } + "target": "es2022", + "module": "es2022", + "moduleResolution": "node", + "outDir": "./dist", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": false, + "skipLibCheck": true + }, + "include": [ + "src/**/*" + ] } \ No newline at end of file