| 225 | } |
| 226 | |
| 227 | export function useProject( |
| 228 | project: Partial< |
| 229 | Project & { customEnvironments?: CustomEnvironment[] } |
| 230 | > = defaultProject, |
| 231 | projectEnvs: ProjectEnvVariable[] = envs |
| 232 | ) { |
| 233 | client.scenario.get(`/:version/projects/${project.name}`, (_req, res) => { |
| 234 | res.json(project); |
| 235 | }); |
| 236 | client.scenario.get(`/:version/projects/${project.id}`, (_req, res) => { |
| 237 | res.json(project); |
| 238 | }); |
| 239 | client.scenario.patch(`/:version/projects/${project.id}`, (req, res) => { |
| 240 | Object.assign(project, req.body); |
| 241 | res.json(project); |
| 242 | }); |
| 243 | client.scenario.get(`/v9/projects/${project.name}`, (_req, res) => { |
| 244 | res.json(project); |
| 245 | }); |
| 246 | client.scenario.get(`/v9/projects/${project.id}`, (_req, res) => { |
| 247 | res.json(project); |
| 248 | }); |
| 249 | client.scenario.get( |
| 250 | `/v3/env/pull/${project.id}/:target?/:gitBranch?`, |
| 251 | (req, res) => { |
| 252 | const target = |
| 253 | typeof req.params.target === 'string' |
| 254 | ? parseEnvironment(req.params.target) |
| 255 | : undefined; |
| 256 | if (target) { |
| 257 | projectEnvs = projectEnvs.filter(env => { |
| 258 | if (!env.target) return false; |
| 259 | |
| 260 | // Ensure `target` matches |
| 261 | const targets = Array.isArray(env.target) ? env.target : [env.target]; |
| 262 | const matchingTarget = targets.includes(target); |
| 263 | if (!matchingTarget) return false; |
| 264 | |
| 265 | // Ensure `gitBranch` matches |
| 266 | if (!env.gitBranch) return true; |
| 267 | return req.params.gitBranch === env.gitBranch; |
| 268 | }); |
| 269 | } |
| 270 | const allEnvs = Object.entries( |
| 271 | exposeSystemEnvs( |
| 272 | projectEnvs, |
| 273 | systemEnvs.map(env => env.key), |
| 274 | project.autoExposeSystemEnvs, |
| 275 | undefined, |
| 276 | target |
| 277 | ) |
| 278 | ); |
| 279 | |
| 280 | const env: Record<string, string> = {}; |
| 281 | |
| 282 | allEnvs.forEach(([k, v]) => { |
| 283 | env[k] = v ?? ''; |
| 284 | }); |