(
sql: string,
params: ReadonlyArray<unknown> = [],
values = false
)
| 142 | yield* Effect.addFinalizer(() => Effect.sync(() => db.close())) |
| 143 | |
| 144 | const run = ( |
| 145 | sql: string, |
| 146 | params: ReadonlyArray<unknown> = [] |
| 147 | ) => |
| 148 | Effect.withFiber<Array<any>, SqlError>((fiber) => { |
| 149 | if (fiber.getRef(AsyncQuery)) { |
| 150 | return Effect.map( |
| 151 | Effect.tryPromise({ |
| 152 | try: () => db.execute(sql, params as Array<any>), |
| 153 | catch: (cause) => |
| 154 | new SqlError({ reason: classifyError(cause, "Failed to execute statement (async)", "execute") }) |
| 155 | }), |
| 156 | (result) => result.rows |
| 157 | ) |
| 158 | } |
| 159 | return Effect.try({ |
| 160 | try: () => db.executeSync(sql, params as Array<any>).rows, |
| 161 | catch: (cause) => new SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") }) |
| 162 | }) |
| 163 | }) |
| 164 | |
| 165 | const runValues = ( |
| 166 | sql: string, |
| 167 | params: ReadonlyArray<unknown> = [] |
| 168 | ) => |
| 169 | Effect.withFiber<Array<any>, SqlError>((fiber) => { |
| 170 | if (fiber.getRef(AsyncQuery)) { |
no test coverage detected