(projectPath: string, project: ProjectSpecBase)
| 230 | } |
| 231 | |
| 232 | export async function prepareManifest(projectPath: string, project: ProjectSpecBase): Promise<void> { |
| 233 | //load and write manifest(project.ts/project.yaml) |
| 234 | const tsPath = defaultTSManifestPath(projectPath); |
| 235 | const yamlPath = defaultYamlManifestPath(projectPath); |
| 236 | let manifestData: string; |
| 237 | |
| 238 | const isTs = fs.existsSync(tsPath); |
| 239 | |
| 240 | if (isTs) { |
| 241 | const tsManifest = (await fs.promises.readFile(tsPath, 'utf8')).toString(); |
| 242 | //adding env config for endpoint. |
| 243 | const formattedEndpoint = `process.env.ENDPOINT!?.split(',') as string[] | string`; |
| 244 | const endpointUpdatedManifestData = findReplace(tsManifest, ENDPOINT_REG, `endpoint: ${formattedEndpoint}`); |
| 245 | const chainIdUpdatedManifestData = findReplace( |
| 246 | endpointUpdatedManifestData, |
| 247 | CHAIN_ID_REG, |
| 248 | `chainId: process.env.CHAIN_ID!` |
| 249 | ); |
| 250 | manifestData = addDotEnvConfigCode(chainIdUpdatedManifestData); |
| 251 | } else { |
| 252 | //load and write manifest(project.yaml) |
| 253 | const yamlManifest = await fs.promises.readFile(yamlPath, 'utf8'); |
| 254 | const data = parseDocument(yamlManifest); |
| 255 | const clonedData = data.clone(); |
| 256 | |
| 257 | const network = clonedData.get('network') as YAMLMap; |
| 258 | network.set('endpoint', project.endpoint); |
| 259 | clonedData.set('name', project.name); |
| 260 | if (isProjectSpecV1_0_0(project)) { |
| 261 | network.set('chainId', project.chainId); |
| 262 | } |
| 263 | manifestData = clonedData.toString(); |
| 264 | } |
| 265 | await fs.promises.writeFile(isTs ? tsPath : yamlPath, manifestData, 'utf8'); |
| 266 | } |
| 267 | |
| 268 | export function addDotEnvConfigCode(manifestData: string): string { |
| 269 | // add dotenv config after imports in project.ts file |
no test coverage detected