react-native-nitro-sqlite
Version:
Fast SQLite library for React Native built using Nitro Modules
45 lines (44 loc) • 1.47 kB
JavaScript
import { isNitroSQLiteNull, isSimpleNullHandlingEnabled } from "../nullHandling.js";
import { HybridNitroSQLite } from "../nitro.js";
import { replaceWithNativeNullValue } from "../nullHandling.js";
export function execute(dbName, query, params) {
const transformedParams = isSimpleNullHandlingEnabled() ? toNativeQueryParams(params) : params;
const nativeResult = HybridNitroSQLite.execute(dbName, query, transformedParams);
const result = buildJsQueryResult(nativeResult);
return result;
}
export async function executeAsync(dbName, query, params) {
const transformedParams = isSimpleNullHandlingEnabled() ? toNativeQueryParams(params) : params;
const nativeResult = await HybridNitroSQLite.executeAsync(dbName, query, transformedParams);
const result = buildJsQueryResult(nativeResult);
return result;
}
function toNativeQueryParams(params) {
return params?.map(param => replaceWithNativeNullValue(param));
}
function buildJsQueryResult({
insertId,
rowsAffected,
results
}) {
let data = results;
if (isSimpleNullHandlingEnabled()) {
data = results.map(row => Object.fromEntries(Object.entries(row).map(([key, value]) => {
if (isNitroSQLiteNull(value)) {
return [key, null];
}
return [key, value];
})));
}
return {
insertId,
rowsAffected,
rows: {
_array: data,
length: data.length,
item: idx => data[idx]
}
};
}
//# sourceMappingURL=execute.js.map
;