@layerfig/config
Version:
Layer and runtime-validate type-safe configs for JavaScript apps.
1 lines • 2.51 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","names":["Source","fileName: string","#fileName","#getFileExtension","filePath: string"],"sources":["../../../src/sources/file.ts"],"sourcesContent":["import path from \"node:path\";\nimport { readIfExist } from \"../utils\";\nimport { type LoadSourceOptions, Source } from \"./source\";\n\nconst APP_ROOT_PATH = process.cwd();\n\nexport class FileSource extends Source {\n\t#fileName: string;\n\n\tconstructor(fileName: string) {\n\t\tsuper();\n\t\tthis.#fileName = fileName;\n\t}\n\n\tloadSource({\n\t\trelativeConfigFolderPath,\n\t\tparser,\n\t\tslotPrefix,\n\t\truntimeEnv,\n\t}: LoadSourceOptions): Record<string, unknown> {\n\t\tconst absoluteConfigFolderPath = path.join(\n\t\t\tAPP_ROOT_PATH,\n\t\t\trelativeConfigFolderPath,\n\t\t);\n\n\t\tconst absoluteFilePath = path.resolve(\n\t\t\tabsoluteConfigFolderPath,\n\t\t\tthis.#fileName,\n\t\t);\n\t\tconst fileExtension = this.#getFileExtension(absoluteFilePath);\n\n\t\tif (parser.acceptsExtension(fileExtension) === false) {\n\t\t\tthrow new Error(\n\t\t\t\t`\".${fileExtension}\" file is not supported by this parser. Accepted files are: \"${parser.acceptedFileExtensions.join(\n\t\t\t\t\t\", \",\n\t\t\t\t)}\"`,\n\t\t\t);\n\t\t}\n\n\t\tconst fileContentResult = readIfExist(absoluteFilePath);\n\n\t\tif (fileContentResult.ok === false) {\n\t\t\tthrow new Error(fileContentResult.error);\n\t\t}\n\n\t\tconst finalContent = this.maybeReplaceSlotFromValue({\n\t\t\tvalue: fileContentResult.data,\n\t\t\tslotPrefix,\n\t\t\truntimeEnv,\n\t\t});\n\n\t\tconst parserResult = parser.load(finalContent);\n\n\t\tif (!parserResult.ok) {\n\t\t\tthrow parserResult.error;\n\t\t}\n\n\t\treturn parserResult.data;\n\t}\n\n\t#getFileExtension(filePath: string): string {\n\t\treturn path.extname(filePath).slice(1);\n\t}\n}\n"],"mappings":";;;;;;AAIA,MAAM,gBAAgB,QAAQ,KAAK;AAEnC,IAAa,aAAb,cAAgCA,sBAAO;CACtC;CAEA,YAAYC,UAAkB;AAC7B,SAAO;AACP,OAAKC,YAAY;CACjB;CAED,WAAW,EACV,0BACA,QACA,YACA,YACmB,EAA2B;EAC9C,MAAM,2BAA2B,kBAAK,KACrC,eACA,yBACA;EAED,MAAM,mBAAmB,kBAAK,QAC7B,0BACA,KAAKA,UACL;EACD,MAAM,gBAAgB,KAAKC,kBAAkB,iBAAiB;AAE9D,MAAI,OAAO,iBAAiB,cAAc,KAAK,MAC9C,OAAM,IAAI,OACR,IAAI,cAAc,+DAA+D,OAAO,uBAAuB,KAC/G,KACA,CAAC;EAIJ,MAAM,oBAAoB,0BAAY,iBAAiB;AAEvD,MAAI,kBAAkB,OAAO,MAC5B,OAAM,IAAI,MAAM,kBAAkB;EAGnC,MAAM,eAAe,KAAK,0BAA0B;GACnD,OAAO,kBAAkB;GACzB;GACA;EACA,EAAC;EAEF,MAAM,eAAe,OAAO,KAAK,aAAa;AAE9C,OAAK,aAAa,GACjB,OAAM,aAAa;AAGpB,SAAO,aAAa;CACpB;CAED,kBAAkBC,UAA0B;AAC3C,SAAO,kBAAK,QAAQ,SAAS,CAAC,MAAM,EAAE;CACtC;AACD"}