All files / kernel-browser-runtime/src/rpc-handlers execute-db-query.ts

100% Statements 3/3
100% Branches 0/0
100% Functions 1/1
100% Lines 3/3

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35              5x                                 5x             2x      
import type { MethodSpec, Handler } from '@metamask/kernel-rpc-methods';
import { array, object, record, string } from '@metamask/superstruct';
 
export const executeDBQuerySpec: MethodSpec<
  'executeDBQuery',
  { sql: string },
  Promise<Record<string, string>[]>
> = {
  method: 'executeDBQuery',
  params: object({
    sql: string(),
  }),
  result: array(record(string(), string())),
} as const;
 
export type ExecuteDBQueryHooks = {
  executeDBQuery: (sql: string) => Record<string, string>[];
};
 
export const executeDBQueryHandler: Handler<
  'executeDBQuery',
  { sql: string },
  Promise<Record<string, string>[]>,
  ExecuteDBQueryHooks
> = {
  ...executeDBQuerySpec,
  hooks: { executeDBQuery: true },
  implementation: async (
    { executeDBQuery }: ExecuteDBQueryHooks,
    params: { sql: string },
  ): Promise<Record<string, string>[]> => {
    return executeDBQuery(params.sql);
  },
};