minip-bridge 1.0.14 → 1.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +7 -1
- package/dist/index.mjs +37 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/api/index.ts +1 -0
- package/src/api/memory-cache.ts +43 -0
- package/src/api/sqlite/core/sqlite-database.ts +1 -1
- package/src/api/sqlite/{core/sqlite-native-api.ts → native-api.ts} +26 -2
package/dist/index.d.mts
CHANGED
|
@@ -209,6 +209,12 @@ declare function openSqliteDB<T>(props: OpenSqliteDBProps): {
|
|
|
209
209
|
migrator?: undefined;
|
|
210
210
|
};
|
|
211
211
|
|
|
212
|
+
declare function getMemoryStorage(key: string): Promise<MResponseWithData<string>>;
|
|
213
|
+
declare function setMemoryStorage(key: string, value: string): Promise<MResponse>;
|
|
214
|
+
declare function setMemoryStorageIfNotExist(key: string, value: string): Promise<MResponseWithData<boolean>>;
|
|
215
|
+
declare function removeMemoryStorage(key: string): Promise<MResponse>;
|
|
216
|
+
declare function clearMemoryStorage(): Promise<MResponse>;
|
|
217
|
+
|
|
212
218
|
interface WebKitCallable {
|
|
213
219
|
postMessage: (data: string) => Promise<string>;
|
|
214
220
|
}
|
|
@@ -222,4 +228,4 @@ declare global {
|
|
|
222
228
|
}
|
|
223
229
|
}
|
|
224
230
|
|
|
225
|
-
export { type AlertAction, type AlertConfig, type AppInfo, type DateAndTimePickerConfig, type HUDType, type MRequest, type MRequestBase, type MRequestWithData, type MResponse, MResponseStatusCode, type MResponseWithData, type MinipSqliteMigratorProps, type MultipleColumnsPickerConfig, type OpenSqliteDBProps, type ShowHUDRequest, type SingleColumnPickerConfig, clearKVStorage, clearKVStorageSync, closeApp, deleteKVStorage, deleteKVStorageSync, disablePullDownRefresh, enablePullDownRefresh, getClipboardData, getDeviceInfo, getDeviceInfoSync, getInstalledAppList, getKVStorage, getKVStorageSync, hideHUD, installApp, navigateBack, navigateTo, onPullDownRefresh, openSettings, openSqliteDB, openWebsite, previewImage, previewVideo, redirectTo, scanQRCode, setClipboardData, setKVStorage, setKVStorageSync, setNavigationBarColor, setNavigationBarTitle, showAlert, showAppDetail, showHUD, showPicker, startPullDownRefresh, stopPullDownRefresh, vibrate };
|
|
231
|
+
export { type AlertAction, type AlertConfig, type AppInfo, type DateAndTimePickerConfig, type HUDType, type MRequest, type MRequestBase, type MRequestWithData, type MResponse, MResponseStatusCode, type MResponseWithData, type MinipSqliteMigratorProps, type MultipleColumnsPickerConfig, type OpenSqliteDBProps, type ShowHUDRequest, type SingleColumnPickerConfig, clearKVStorage, clearKVStorageSync, clearMemoryStorage, closeApp, deleteKVStorage, deleteKVStorageSync, disablePullDownRefresh, enablePullDownRefresh, getClipboardData, getDeviceInfo, getDeviceInfoSync, getInstalledAppList, getKVStorage, getKVStorageSync, getMemoryStorage, hideHUD, installApp, navigateBack, navigateTo, onPullDownRefresh, openSettings, openSqliteDB, openWebsite, previewImage, previewVideo, redirectTo, removeMemoryStorage, scanQRCode, setClipboardData, setKVStorage, setKVStorageSync, setMemoryStorage, setMemoryStorageIfNotExist, setNavigationBarColor, setNavigationBarTitle, showAlert, showAppDetail, showHUD, showPicker, startPullDownRefresh, stopPullDownRefresh, vibrate };
|
package/dist/index.mjs
CHANGED
|
@@ -290,7 +290,7 @@ function getDeviceInfoSync() {
|
|
|
290
290
|
// src/api/sqlite/index.ts
|
|
291
291
|
import { Kysely as Kysely2, Migrator } from "kysely";
|
|
292
292
|
|
|
293
|
-
// src/api/sqlite/
|
|
293
|
+
// src/api/sqlite/native-api.ts
|
|
294
294
|
function sqliteOpenDB(path) {
|
|
295
295
|
return bridge_default.callNative({
|
|
296
296
|
api: "sqliteOpenDB",
|
|
@@ -498,12 +498,44 @@ function openSqliteDB(props) {
|
|
|
498
498
|
return { db };
|
|
499
499
|
}
|
|
500
500
|
|
|
501
|
+
// src/api/memory-cache.ts
|
|
502
|
+
function getMemoryStorage(key) {
|
|
503
|
+
return bridge_default.callNative({
|
|
504
|
+
api: "getMemoryStorage",
|
|
505
|
+
data: { key }
|
|
506
|
+
});
|
|
507
|
+
}
|
|
508
|
+
function setMemoryStorage(key, value) {
|
|
509
|
+
return bridge_default.callNative({
|
|
510
|
+
api: "setMemoryStorage",
|
|
511
|
+
data: { key, value }
|
|
512
|
+
});
|
|
513
|
+
}
|
|
514
|
+
function setMemoryStorageIfNotExist(key, value) {
|
|
515
|
+
return bridge_default.callNative({
|
|
516
|
+
api: "setMemoryStorageIfNotExist",
|
|
517
|
+
data: { key, value }
|
|
518
|
+
});
|
|
519
|
+
}
|
|
520
|
+
function removeMemoryStorage(key) {
|
|
521
|
+
return bridge_default.callNative({
|
|
522
|
+
api: "removeMemoryStorage",
|
|
523
|
+
data: { key }
|
|
524
|
+
});
|
|
525
|
+
}
|
|
526
|
+
function clearMemoryStorage() {
|
|
527
|
+
return bridge_default.callNative({
|
|
528
|
+
api: "clearMemoryStorage"
|
|
529
|
+
});
|
|
530
|
+
}
|
|
531
|
+
|
|
501
532
|
// src/index.ts
|
|
502
533
|
export * from "kysely";
|
|
503
534
|
export {
|
|
504
535
|
MResponseStatusCode,
|
|
505
536
|
clearKVStorage,
|
|
506
537
|
clearKVStorageSync,
|
|
538
|
+
clearMemoryStorage,
|
|
507
539
|
closeApp,
|
|
508
540
|
deleteKVStorage,
|
|
509
541
|
deleteKVStorageSync,
|
|
@@ -515,6 +547,7 @@ export {
|
|
|
515
547
|
getInstalledAppList,
|
|
516
548
|
getKVStorage,
|
|
517
549
|
getKVStorageSync,
|
|
550
|
+
getMemoryStorage,
|
|
518
551
|
hideHUD,
|
|
519
552
|
installApp,
|
|
520
553
|
navigateBack,
|
|
@@ -526,10 +559,13 @@ export {
|
|
|
526
559
|
previewImage,
|
|
527
560
|
previewVideo,
|
|
528
561
|
redirectTo,
|
|
562
|
+
removeMemoryStorage,
|
|
529
563
|
scanQRCode,
|
|
530
564
|
setClipboardData,
|
|
531
565
|
setKVStorage,
|
|
532
566
|
setKVStorageSync,
|
|
567
|
+
setMemoryStorage,
|
|
568
|
+
setMemoryStorageIfNotExist,
|
|
533
569
|
setNavigationBarColor,
|
|
534
570
|
setNavigationBarTitle,
|
|
535
571
|
showAlert,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/model/response/index.ts","../src/bridge/index.ts","../src/api/route.ts","../src/api/app.ts","../src/api/ui.ts","../src/api/kvstorage.ts","../src/api/device.ts","../src/api/sqlite/index.ts","../src/api/sqlite/core/sqlite-native-api.ts","../src/api/sqlite/core/sqlite-database.ts","../src/api/sqlite/core/sqlite-dialect.ts","../src/api/sqlite/core/sqlite-driver.ts","../src/api/sqlite/core/sqlite-connection.ts","../src/index.ts"],"sourcesContent":["export enum MResponseStatusCode {\r\n SUCCESS = 0,\r\n FAILED = 7,\r\n}\r\n\r\nexport interface MResponse {\r\n /**\r\n * Integer, 0 for succeeded, other for failed.\r\n * Auto reject in promise when failed.\r\n */\r\n code: MResponseStatusCode;\r\n /**\r\n * Error msg or other info.\r\n */\r\n msg?: string;\r\n\r\n isSuccess(): boolean;\r\n}\r\n\r\nexport interface MResponseWithData<T> extends MResponse {\r\n data: T;\r\n hasData(): boolean;\r\n}\r\n","import { MResponseStatusCode } from \"../model\";\r\nimport { MRequest } from \"../model/request\";\r\n\r\ninterface WebKitCallable {\r\n postMessage: (data: string) => Promise<string>;\r\n}\r\ndeclare global {\r\n interface Window {\r\n webkit?: {\r\n messageHandlers?: {\r\n MinipNativeInteraction?: WebKitCallable;\r\n };\r\n };\r\n }\r\n}\r\n\r\nlet jsBridge: {\r\n callNative: <T>(req?: MRequest<T>) => Promise<any>;\r\n callNativeSync: <T>(req?: MRequest<T>) => any;\r\n};\r\n\r\n// apple webkit\r\nif (window.webkit?.messageHandlers?.MinipNativeInteraction) {\r\n const _callNative = window.webkit.messageHandlers.MinipNativeInteraction;\r\n jsBridge = {\r\n callNative(req) {\r\n return _callNative\r\n .postMessage(JSON.stringify(req))\r\n .then((res) => JSON.parse(res))\r\n .then((res) => {\r\n if (res.code === MResponseStatusCode.SUCCESS) {\r\n res.isSuccess = () => true;\r\n const hashData = res.data !== null && res.data !== undefined;\r\n res.hasData = () => hashData;\r\n return res;\r\n } else {\r\n throw new Error(res.msg ?? \"Unknown error, res: \");\r\n }\r\n });\r\n },\r\n callNativeSync(req) {\r\n const res = prompt(JSON.stringify(req));\r\n if (res) {\r\n const r = JSON.parse(res);\r\n r.isSuccess = () => true;\r\n const hashData = r.data !== null && r.data !== undefined;\r\n r.hasData = () => hashData;\r\n return r;\r\n }\r\n return {\r\n code: MResponseStatusCode.FAILED,\r\n msg: \"Unknown error\",\r\n isSuccess: () => false,\r\n hasData: () => false,\r\n };\r\n },\r\n };\r\n}\r\n// error\r\nelse {\r\n jsBridge = {\r\n callNative() {\r\n return new Promise((_, reject) => {\r\n reject(\"Cannot find JavaScript Bridge!!!\");\r\n });\r\n },\r\n callNativeSync() {\r\n return {\r\n code: MResponseStatusCode.FAILED,\r\n msg: \"Cannot find JavaScript Bridge!!!\",\r\n };\r\n },\r\n };\r\n}\r\n\r\nexport default jsBridge;\r\n","import jsBridge from \"../bridge\";\r\nimport { MResponse } from \"../model\";\r\n\r\nexport function navigateTo(data: {\r\n page: string;\r\n title?: string;\r\n}): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"navigateTo\",\r\n data: data,\r\n });\r\n}\r\n\r\nexport function navigateBack(delta: number = 1): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"navigateBack\",\r\n data: {\r\n delta,\r\n },\r\n });\r\n}\r\n\r\nexport function redirectTo(data: {\r\n page: string;\r\n title?: string;\r\n}): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"redirectTo\",\r\n data: data,\r\n });\r\n}\r\n\r\nexport function openWebsite(url: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"openWebsite\",\r\n data: { url },\r\n });\r\n}\r\n\r\nexport function openSettings(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"openSettings\",\r\n });\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport { AppInfo, MResponse, MResponseWithData } from \"../model\";\r\n\r\nexport function closeApp(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"closeApp\",\r\n });\r\n}\r\n\r\nexport function showAppDetail(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"showAppDetail\",\r\n });\r\n}\r\n\r\nexport function installApp(url: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"installApp\",\r\n data: {\r\n url,\r\n },\r\n });\r\n}\r\n\r\nexport function getInstalledAppList(): Promise<MResponseWithData<AppInfo[]>> {\r\n return jsBridge.callNative({\r\n api: \"getInstalledAppList\",\r\n });\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport {\r\n AlertConfig,\r\n DateAndTimePickerConfig,\r\n MResponse,\r\n MResponseWithData,\r\n MultipleColumnsPickerConfig,\r\n ShowHUDRequest,\r\n SingleColumnPickerConfig,\r\n} from \"../model\";\r\n\r\n// navigation bar\r\n\r\nexport function setNavigationBarTitle(title: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"setNavigationBarTitle\",\r\n data: {\r\n title,\r\n },\r\n });\r\n}\r\n\r\nexport function setNavigationBarColor(config: {\r\n foregroundColor: string;\r\n backgroundColor: string;\r\n}): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"setNavigationBarColor\",\r\n data: config,\r\n });\r\n}\r\n\r\n// pulldown refresh\r\n\r\nexport function enablePullDownRefresh(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"enablePullDownRefresh\",\r\n });\r\n}\r\n\r\nexport function disablePullDownRefresh(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"disablePullDownRefresh\",\r\n });\r\n}\r\n\r\nexport function onPullDownRefresh(callback: (e: Event) => any) {\r\n window.addEventListener(\"pulldownrefresh\", callback);\r\n}\r\n\r\nexport function startPullDownRefresh(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"startPullDownRefresh\",\r\n });\r\n}\r\n\r\nexport function stopPullDownRefresh(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"stopPullDownRefresh\",\r\n });\r\n}\r\n\r\n// HUD\r\n\r\nexport function showHUD(req: ShowHUDRequest): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"showHUD\",\r\n data: req,\r\n });\r\n}\r\n\r\nexport function hideHUD(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"hideHUD\",\r\n });\r\n}\r\n\r\n// alert\r\nexport function showAlert(\r\n config: AlertConfig,\r\n): Promise<MResponseWithData<string>> {\r\n return jsBridge.callNative({\r\n api: \"showAlert\",\r\n data: config,\r\n });\r\n}\r\n\r\n// media\r\nexport function previewImage(url: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"previewImage\",\r\n data: {\r\n url,\r\n },\r\n });\r\n}\r\n\r\nexport function previewVideo(url: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"previewVideo\",\r\n data: {\r\n url,\r\n },\r\n });\r\n}\r\n\r\n// picker\r\nexport function showPicker(\r\n type: \"singleColumn\",\r\n data: SingleColumnPickerConfig,\r\n): Promise<MResponseWithData<number | null | undefined>>;\r\nexport function showPicker(\r\n type: \"multipleColumns\",\r\n data: MultipleColumnsPickerConfig,\r\n): Promise<MResponseWithData<number[] | null | undefined>>;\r\nexport function showPicker(\r\n type: \"date\" | \"time\",\r\n data: DateAndTimePickerConfig,\r\n): Promise<MResponseWithData<string | null | undefined>>;\r\n\r\nexport function showPicker(\r\n type: \"singleColumn\" | \"multipleColumns\" | \"date\" | \"time\",\r\n data:\r\n | SingleColumnPickerConfig\r\n | MultipleColumnsPickerConfig\r\n | DateAndTimePickerConfig,\r\n): Promise<MResponseWithData<number | number[] | string | null | undefined>> {\r\n let res;\r\n if (\r\n (type === \"time\" || type === \"date\") &&\r\n !(data as DateAndTimePickerConfig).dateFormat\r\n ) {\r\n res = jsBridge.callNative({\r\n api: \"showPicker\",\r\n data: {\r\n type,\r\n data: {\r\n ...data,\r\n dateFormat: type === \"date\" ? \"yyyy-MM-dd\" : \"HH:mm:ss\",\r\n },\r\n },\r\n });\r\n } else {\r\n res = jsBridge.callNative({\r\n api: \"showPicker\",\r\n data: { type, data },\r\n });\r\n }\r\n return res;\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport { MResponse, MResponseWithData } from \"../model\";\r\n\r\n// async methods\r\n\r\nexport function getKVStorage(key: string): Promise<MResponseWithData<string>> {\r\n return jsBridge.callNative({\r\n api: \"getKVStorage\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function setKVStorage(key: string, value: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"setKVStorage\",\r\n data: { key, value },\r\n });\r\n}\r\n\r\nexport function deleteKVStorage(key: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"deleteKVStorage\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function clearKVStorage(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"clearKVStorage\",\r\n });\r\n}\r\n\r\n// sync methods\r\n\r\nexport function getKVStorageSync(key: string): MResponseWithData<string> {\r\n return jsBridge.callNativeSync({\r\n api: \"getKVStorageSync\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function setKVStorageSync(key: string, value: string): MResponse {\r\n return jsBridge.callNativeSync({\r\n api: \"setKVStorageSync\",\r\n data: { key, value },\r\n });\r\n}\r\n\r\nexport function deleteKVStorageSync(key: string): MResponse {\r\n return jsBridge.callNativeSync({\r\n api: \"deleteKVStorageSync\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function clearKVStorageSync(): MResponse {\r\n return jsBridge.callNativeSync({\r\n api: \"clearKVStorageSync\",\r\n });\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport { MResponse, MResponseWithData } from \"../model\";\r\nimport { DeviceInfo } from \"../model/deviceinfo\";\r\n\r\n/**\r\n *\r\n * @param type medium as default\r\n */\r\nexport function vibrate(\r\n type?: \"light\" | \"medium\" | \"heavy\",\r\n): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"vibrate\",\r\n data: {\r\n type: type ?? \"medium\",\r\n },\r\n });\r\n}\r\n\r\nexport function getClipboardData(): Promise<MResponseWithData<string>> {\r\n return jsBridge.callNative({\r\n api: \"getClipboardData\",\r\n });\r\n}\r\n\r\nexport function setClipboardData(\r\n data: string,\r\n): Promise<MResponseWithData<string>> {\r\n return jsBridge.callNative({\r\n api: \"setClipboardData\",\r\n data: {\r\n data,\r\n },\r\n });\r\n}\r\n\r\nexport function scanQRCode(): Promise<\r\n MResponseWithData<string | undefined | null>\r\n> {\r\n return jsBridge.callNative({ api: \"scanQRCode\" });\r\n}\r\n\r\nexport function getDeviceInfo(): Promise<MResponseWithData<DeviceInfo>> {\r\n return jsBridge.callNative({ api: \"getDeviceInfo\" });\r\n}\r\n\r\nexport function getDeviceInfoSync(): MResponseWithData<DeviceInfo> {\r\n return jsBridge.callNativeSync({ api: \"getDeviceInfoSync\" });\r\n}\r\n","import { Kysely, Migrator, MigratorProps } from \"kysely\";\r\nimport { MinipSqliteDatabase } from \"./core/sqlite-database\";\r\nimport { MinipSqliteDialect } from \"./core/sqlite-dialect\";\r\n\r\nexport interface MinipSqliteMigratorProps extends Omit<MigratorProps, \"db\"> {}\r\n\r\nexport interface OpenSqliteDBProps {\r\n path: string;\r\n debug?: boolean;\r\n migratorProps?: MinipSqliteMigratorProps;\r\n}\r\n\r\nexport function openSqliteDB<T>(props: OpenSqliteDBProps) {\r\n const dialect = new MinipSqliteDialect({\r\n database: new MinipSqliteDatabase(props.path, props.debug ?? false),\r\n });\r\n const db = new Kysely<T>({\r\n dialect,\r\n });\r\n\r\n if (props.migratorProps) {\r\n const migrator = new Migrator({\r\n db,\r\n ...props.migratorProps,\r\n });\r\n return {\r\n db,\r\n migrator,\r\n };\r\n }\r\n\r\n return { db };\r\n}\r\n","import jsBridge from \"../../../bridge\";\r\nimport { MResponse, MResponseWithData } from \"../../../model\";\r\n\r\nexport function sqliteOpenDB(\r\n path: string,\r\n): Promise<MResponseWithData<{ dbKey: number }>> {\r\n return jsBridge.callNative({\r\n api: \"sqliteOpenDB\",\r\n data: {\r\n path,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteCloseDB(dbKey: number): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"sqliteCloseDB\",\r\n data: {\r\n dbKey,\r\n },\r\n });\r\n}\r\n\r\nexport function sqlitePrepare(\r\n dbKey: number,\r\n sql: string,\r\n): Promise<MResponseWithData<{ stmtKey: number; reader: boolean }>> {\r\n return jsBridge.callNative({\r\n api: \"sqlitePrepare\",\r\n data: {\r\n dbKey,\r\n sql,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteStatementAll(\r\n dbKey: number,\r\n stmtKey: number,\r\n parameters: ReadonlyArray<unknown>,\r\n): Promise<MResponseWithData<unknown[]>> {\r\n return jsBridge.callNative({\r\n api: \"sqliteStatementAll\",\r\n data: {\r\n dbKey,\r\n stmtKey,\r\n parameters,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteStatementRun(\r\n dbKey: number,\r\n stmtKey: number,\r\n parameters: ReadonlyArray<unknown>,\r\n): Promise<\r\n MResponseWithData<{\r\n changes: number | bigint;\r\n lastInsertRowid: number | bigint;\r\n }>\r\n> {\r\n return jsBridge.callNative({\r\n api: \"sqliteStatementRun\",\r\n data: {\r\n dbKey,\r\n stmtKey,\r\n parameters,\r\n },\r\n });\r\n}\r\n","import { MinipSqliteStatement } from \"./sqlite-statement\";\r\nimport {\r\n sqliteCloseDB,\r\n sqliteOpenDB,\r\n sqlitePrepare,\r\n sqliteStatementAll,\r\n sqliteStatementRun,\r\n} from \"./sqlite-native-api\";\r\n\r\nexport class MinipSqliteDatabase {\r\n path: string;\r\n id: number;\r\n debug: boolean;\r\n constructor(path: string, debug: boolean) {\r\n this.path = path;\r\n this.id = -1;\r\n this.debug = debug;\r\n }\r\n async close(): Promise<void> {\r\n if (this.id === -1) return;\r\n await sqliteCloseDB(this.id);\r\n }\r\n async prepare(sql: string): Promise<MinipSqliteStatement> {\r\n if (this.id === -1) {\r\n const res = await sqliteOpenDB(this.path);\r\n this.id = res.data.dbKey;\r\n }\r\n\r\n const dbKey = this.id;\r\n const stmtRes = await sqlitePrepare(dbKey, sql);\r\n\r\n const stmtKey = stmtRes.data.stmtKey;\r\n const reader = stmtRes.data.reader;\r\n\r\n return {\r\n reader: reader,\r\n all(parameters) {\r\n return sqliteStatementAll(dbKey, stmtKey, parameters).then(\r\n (res) => res.data,\r\n );\r\n },\r\n run(parameters) {\r\n return sqliteStatementRun(dbKey, stmtKey, parameters).then(\r\n (res) => res.data,\r\n );\r\n },\r\n iterate(parameters) {\r\n throw \"Not implemented\";\r\n },\r\n };\r\n }\r\n}\r\n","import {\r\n DatabaseIntrospector,\r\n Dialect,\r\n DialectAdapter,\r\n Driver,\r\n Kysely,\r\n QueryCompiler,\r\n SqliteAdapter,\r\n SqliteIntrospector,\r\n SqliteQueryCompiler,\r\n} from \"kysely\";\r\nimport { MinipSqliteDialectConfig } from \"./sqlite-dialect-config\";\r\nimport { MinipSqliteDriver } from \"./sqlite-driver\";\r\n\r\nexport class MinipSqliteDialect implements Dialect {\r\n readonly #config: MinipSqliteDialectConfig;\r\n\r\n constructor(config: MinipSqliteDialectConfig) {\r\n this.#config = config;\r\n }\r\n\r\n createDriver(): Driver {\r\n return new MinipSqliteDriver(this.#config);\r\n }\r\n createQueryCompiler(): QueryCompiler {\r\n return new SqliteQueryCompiler();\r\n }\r\n createAdapter(): DialectAdapter {\r\n return new SqliteAdapter();\r\n }\r\n createIntrospector(db: Kysely<any>): DatabaseIntrospector {\r\n return new SqliteIntrospector(db);\r\n }\r\n}\r\n","import {\r\n CompiledQuery,\r\n DatabaseConnection,\r\n Driver,\r\n TransactionSettings,\r\n} from \"kysely\";\r\nimport { MinipSqliteDialectConfig } from \"./sqlite-dialect-config\";\r\nimport { MinipSqliteConnection } from \"./sqlite-connection\";\r\nimport { MinipSqliteDatabase } from \"./sqlite-database\";\r\n\r\nexport class MinipSqliteDriver implements Driver {\r\n readonly #config: MinipSqliteDialectConfig;\r\n\r\n #db?: MinipSqliteDatabase;\r\n #connection?: MinipSqliteConnection;\r\n\r\n constructor(config: MinipSqliteDialectConfig) {\r\n this.#config = config;\r\n }\r\n\r\n async init() {\r\n this.#db = this.#config.database;\r\n this.#connection = new MinipSqliteConnection(this.#db);\r\n if (this.#config.onCreateConnection) {\r\n await this.#config.onCreateConnection(this.#connection);\r\n }\r\n }\r\n async acquireConnection(): Promise<MinipSqliteConnection> {\r\n return this.#connection!;\r\n }\r\n async beginTransaction(\r\n connection: DatabaseConnection,\r\n settings: TransactionSettings,\r\n ): Promise<void> {\r\n await connection.executeQuery(CompiledQuery.raw(\"begin\"));\r\n }\r\n async commitTransaction(connection: DatabaseConnection): Promise<void> {\r\n await connection.executeQuery(CompiledQuery.raw(\"commit\"));\r\n }\r\n async rollbackTransaction(connection: DatabaseConnection): Promise<void> {\r\n await connection.executeQuery(CompiledQuery.raw(\"rollback\"));\r\n }\r\n async releaseConnection(connection: DatabaseConnection): Promise<void> {}\r\n async destroy(): Promise<void> {\r\n this.#db?.close();\r\n }\r\n}\r\n","import { CompiledQuery, DatabaseConnection, QueryResult } from \"kysely\";\r\nimport { MinipSqliteDatabase } from \"./sqlite-database\";\r\n\r\nexport class MinipSqliteConnection implements DatabaseConnection {\r\n readonly #db: MinipSqliteDatabase;\r\n\r\n constructor(db: MinipSqliteDatabase) {\r\n this.#db = db;\r\n }\r\n async executeQuery<R>(compiledQuery: CompiledQuery): Promise<QueryResult<R>> {\r\n const { sql, parameters } = compiledQuery;\r\n if (this.#db.debug) {\r\n console.debug(sql, parameters);\r\n }\r\n const stmt = await this.#db.prepare(sql);\r\n\r\n if (stmt.reader) {\r\n return {\r\n rows: (await stmt.all(parameters)) as R[],\r\n };\r\n } else {\r\n const { changes, lastInsertRowid } = await stmt.run(parameters);\r\n\r\n const numAffectedRows =\r\n changes !== undefined && changes !== null ? BigInt(changes) : undefined;\r\n\r\n return {\r\n numUpdatedOrDeletedRows: numAffectedRows,\r\n numAffectedRows,\r\n insertId:\r\n lastInsertRowid !== undefined && lastInsertRowid !== null\r\n ? BigInt(lastInsertRowid)\r\n : undefined,\r\n rows: [],\r\n };\r\n }\r\n }\r\n streamQuery<R>(\r\n compiledQuery: CompiledQuery,\r\n chunkSize?: number,\r\n ): AsyncIterableIterator<QueryResult<R>> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n}\r\n","export * from \"./api\";\r\nexport * from \"./model\";\r\nexport * from \"./bridge\";\r\n\r\nexport * from \"kysely\";\r\n"],"mappings":"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","names":["MResponseStatusCode","Kysely","Kysely"]}
|
|
1
|
+
{"version":3,"sources":["../src/model/response/index.ts","../src/bridge/index.ts","../src/api/route.ts","../src/api/app.ts","../src/api/ui.ts","../src/api/kvstorage.ts","../src/api/device.ts","../src/api/sqlite/index.ts","../src/api/sqlite/native-api.ts","../src/api/sqlite/core/sqlite-database.ts","../src/api/sqlite/core/sqlite-dialect.ts","../src/api/sqlite/core/sqlite-driver.ts","../src/api/sqlite/core/sqlite-connection.ts","../src/api/memory-cache.ts","../src/index.ts"],"sourcesContent":["export enum MResponseStatusCode {\r\n SUCCESS = 0,\r\n FAILED = 7,\r\n}\r\n\r\nexport interface MResponse {\r\n /**\r\n * Integer, 0 for succeeded, other for failed.\r\n * Auto reject in promise when failed.\r\n */\r\n code: MResponseStatusCode;\r\n /**\r\n * Error msg or other info.\r\n */\r\n msg?: string;\r\n\r\n isSuccess(): boolean;\r\n}\r\n\r\nexport interface MResponseWithData<T> extends MResponse {\r\n data: T;\r\n hasData(): boolean;\r\n}\r\n","import { MResponseStatusCode } from \"../model\";\r\nimport { MRequest } from \"../model/request\";\r\n\r\ninterface WebKitCallable {\r\n postMessage: (data: string) => Promise<string>;\r\n}\r\ndeclare global {\r\n interface Window {\r\n webkit?: {\r\n messageHandlers?: {\r\n MinipNativeInteraction?: WebKitCallable;\r\n };\r\n };\r\n }\r\n}\r\n\r\nlet jsBridge: {\r\n callNative: <T>(req?: MRequest<T>) => Promise<any>;\r\n callNativeSync: <T>(req?: MRequest<T>) => any;\r\n};\r\n\r\n// apple webkit\r\nif (window.webkit?.messageHandlers?.MinipNativeInteraction) {\r\n const _callNative = window.webkit.messageHandlers.MinipNativeInteraction;\r\n jsBridge = {\r\n callNative(req) {\r\n return _callNative\r\n .postMessage(JSON.stringify(req))\r\n .then((res) => JSON.parse(res))\r\n .then((res) => {\r\n if (res.code === MResponseStatusCode.SUCCESS) {\r\n res.isSuccess = () => true;\r\n const hashData = res.data !== null && res.data !== undefined;\r\n res.hasData = () => hashData;\r\n return res;\r\n } else {\r\n throw new Error(res.msg ?? \"Unknown error, res: \");\r\n }\r\n });\r\n },\r\n callNativeSync(req) {\r\n const res = prompt(JSON.stringify(req));\r\n if (res) {\r\n const r = JSON.parse(res);\r\n r.isSuccess = () => true;\r\n const hashData = r.data !== null && r.data !== undefined;\r\n r.hasData = () => hashData;\r\n return r;\r\n }\r\n return {\r\n code: MResponseStatusCode.FAILED,\r\n msg: \"Unknown error\",\r\n isSuccess: () => false,\r\n hasData: () => false,\r\n };\r\n },\r\n };\r\n}\r\n// error\r\nelse {\r\n jsBridge = {\r\n callNative() {\r\n return new Promise((_, reject) => {\r\n reject(\"Cannot find JavaScript Bridge!!!\");\r\n });\r\n },\r\n callNativeSync() {\r\n return {\r\n code: MResponseStatusCode.FAILED,\r\n msg: \"Cannot find JavaScript Bridge!!!\",\r\n };\r\n },\r\n };\r\n}\r\n\r\nexport default jsBridge;\r\n","import jsBridge from \"../bridge\";\r\nimport { MResponse } from \"../model\";\r\n\r\nexport function navigateTo(data: {\r\n page: string;\r\n title?: string;\r\n}): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"navigateTo\",\r\n data: data,\r\n });\r\n}\r\n\r\nexport function navigateBack(delta: number = 1): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"navigateBack\",\r\n data: {\r\n delta,\r\n },\r\n });\r\n}\r\n\r\nexport function redirectTo(data: {\r\n page: string;\r\n title?: string;\r\n}): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"redirectTo\",\r\n data: data,\r\n });\r\n}\r\n\r\nexport function openWebsite(url: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"openWebsite\",\r\n data: { url },\r\n });\r\n}\r\n\r\nexport function openSettings(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"openSettings\",\r\n });\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport { AppInfo, MResponse, MResponseWithData } from \"../model\";\r\n\r\nexport function closeApp(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"closeApp\",\r\n });\r\n}\r\n\r\nexport function showAppDetail(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"showAppDetail\",\r\n });\r\n}\r\n\r\nexport function installApp(url: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"installApp\",\r\n data: {\r\n url,\r\n },\r\n });\r\n}\r\n\r\nexport function getInstalledAppList(): Promise<MResponseWithData<AppInfo[]>> {\r\n return jsBridge.callNative({\r\n api: \"getInstalledAppList\",\r\n });\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport {\r\n AlertConfig,\r\n DateAndTimePickerConfig,\r\n MResponse,\r\n MResponseWithData,\r\n MultipleColumnsPickerConfig,\r\n ShowHUDRequest,\r\n SingleColumnPickerConfig,\r\n} from \"../model\";\r\n\r\n// navigation bar\r\n\r\nexport function setNavigationBarTitle(title: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"setNavigationBarTitle\",\r\n data: {\r\n title,\r\n },\r\n });\r\n}\r\n\r\nexport function setNavigationBarColor(config: {\r\n foregroundColor: string;\r\n backgroundColor: string;\r\n}): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"setNavigationBarColor\",\r\n data: config,\r\n });\r\n}\r\n\r\n// pulldown refresh\r\n\r\nexport function enablePullDownRefresh(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"enablePullDownRefresh\",\r\n });\r\n}\r\n\r\nexport function disablePullDownRefresh(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"disablePullDownRefresh\",\r\n });\r\n}\r\n\r\nexport function onPullDownRefresh(callback: (e: Event) => any) {\r\n window.addEventListener(\"pulldownrefresh\", callback);\r\n}\r\n\r\nexport function startPullDownRefresh(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"startPullDownRefresh\",\r\n });\r\n}\r\n\r\nexport function stopPullDownRefresh(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"stopPullDownRefresh\",\r\n });\r\n}\r\n\r\n// HUD\r\n\r\nexport function showHUD(req: ShowHUDRequest): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"showHUD\",\r\n data: req,\r\n });\r\n}\r\n\r\nexport function hideHUD(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"hideHUD\",\r\n });\r\n}\r\n\r\n// alert\r\nexport function showAlert(\r\n config: AlertConfig,\r\n): Promise<MResponseWithData<string>> {\r\n return jsBridge.callNative({\r\n api: \"showAlert\",\r\n data: config,\r\n });\r\n}\r\n\r\n// media\r\nexport function previewImage(url: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"previewImage\",\r\n data: {\r\n url,\r\n },\r\n });\r\n}\r\n\r\nexport function previewVideo(url: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"previewVideo\",\r\n data: {\r\n url,\r\n },\r\n });\r\n}\r\n\r\n// picker\r\nexport function showPicker(\r\n type: \"singleColumn\",\r\n data: SingleColumnPickerConfig,\r\n): Promise<MResponseWithData<number | null | undefined>>;\r\nexport function showPicker(\r\n type: \"multipleColumns\",\r\n data: MultipleColumnsPickerConfig,\r\n): Promise<MResponseWithData<number[] | null | undefined>>;\r\nexport function showPicker(\r\n type: \"date\" | \"time\",\r\n data: DateAndTimePickerConfig,\r\n): Promise<MResponseWithData<string | null | undefined>>;\r\n\r\nexport function showPicker(\r\n type: \"singleColumn\" | \"multipleColumns\" | \"date\" | \"time\",\r\n data:\r\n | SingleColumnPickerConfig\r\n | MultipleColumnsPickerConfig\r\n | DateAndTimePickerConfig,\r\n): Promise<MResponseWithData<number | number[] | string | null | undefined>> {\r\n let res;\r\n if (\r\n (type === \"time\" || type === \"date\") &&\r\n !(data as DateAndTimePickerConfig).dateFormat\r\n ) {\r\n res = jsBridge.callNative({\r\n api: \"showPicker\",\r\n data: {\r\n type,\r\n data: {\r\n ...data,\r\n dateFormat: type === \"date\" ? \"yyyy-MM-dd\" : \"HH:mm:ss\",\r\n },\r\n },\r\n });\r\n } else {\r\n res = jsBridge.callNative({\r\n api: \"showPicker\",\r\n data: { type, data },\r\n });\r\n }\r\n return res;\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport { MResponse, MResponseWithData } from \"../model\";\r\n\r\n// async methods\r\n\r\nexport function getKVStorage(key: string): Promise<MResponseWithData<string>> {\r\n return jsBridge.callNative({\r\n api: \"getKVStorage\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function setKVStorage(key: string, value: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"setKVStorage\",\r\n data: { key, value },\r\n });\r\n}\r\n\r\nexport function deleteKVStorage(key: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"deleteKVStorage\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function clearKVStorage(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"clearKVStorage\",\r\n });\r\n}\r\n\r\n// sync methods\r\n\r\nexport function getKVStorageSync(key: string): MResponseWithData<string> {\r\n return jsBridge.callNativeSync({\r\n api: \"getKVStorageSync\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function setKVStorageSync(key: string, value: string): MResponse {\r\n return jsBridge.callNativeSync({\r\n api: \"setKVStorageSync\",\r\n data: { key, value },\r\n });\r\n}\r\n\r\nexport function deleteKVStorageSync(key: string): MResponse {\r\n return jsBridge.callNativeSync({\r\n api: \"deleteKVStorageSync\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function clearKVStorageSync(): MResponse {\r\n return jsBridge.callNativeSync({\r\n api: \"clearKVStorageSync\",\r\n });\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport { MResponse, MResponseWithData } from \"../model\";\r\nimport { DeviceInfo } from \"../model/deviceinfo\";\r\n\r\n/**\r\n *\r\n * @param type medium as default\r\n */\r\nexport function vibrate(\r\n type?: \"light\" | \"medium\" | \"heavy\",\r\n): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"vibrate\",\r\n data: {\r\n type: type ?? \"medium\",\r\n },\r\n });\r\n}\r\n\r\nexport function getClipboardData(): Promise<MResponseWithData<string>> {\r\n return jsBridge.callNative({\r\n api: \"getClipboardData\",\r\n });\r\n}\r\n\r\nexport function setClipboardData(\r\n data: string,\r\n): Promise<MResponseWithData<string>> {\r\n return jsBridge.callNative({\r\n api: \"setClipboardData\",\r\n data: {\r\n data,\r\n },\r\n });\r\n}\r\n\r\nexport function scanQRCode(): Promise<\r\n MResponseWithData<string | undefined | null>\r\n> {\r\n return jsBridge.callNative({ api: \"scanQRCode\" });\r\n}\r\n\r\nexport function getDeviceInfo(): Promise<MResponseWithData<DeviceInfo>> {\r\n return jsBridge.callNative({ api: \"getDeviceInfo\" });\r\n}\r\n\r\nexport function getDeviceInfoSync(): MResponseWithData<DeviceInfo> {\r\n return jsBridge.callNativeSync({ api: \"getDeviceInfoSync\" });\r\n}\r\n","import { Kysely, Migrator, MigratorProps } from \"kysely\";\r\nimport { MinipSqliteDatabase } from \"./core/sqlite-database\";\r\nimport { MinipSqliteDialect } from \"./core/sqlite-dialect\";\r\n\r\nexport interface MinipSqliteMigratorProps extends Omit<MigratorProps, \"db\"> {}\r\n\r\nexport interface OpenSqliteDBProps {\r\n path: string;\r\n debug?: boolean;\r\n migratorProps?: MinipSqliteMigratorProps;\r\n}\r\n\r\nexport function openSqliteDB<T>(props: OpenSqliteDBProps) {\r\n const dialect = new MinipSqliteDialect({\r\n database: new MinipSqliteDatabase(props.path, props.debug ?? false),\r\n });\r\n const db = new Kysely<T>({\r\n dialect,\r\n });\r\n\r\n if (props.migratorProps) {\r\n const migrator = new Migrator({\r\n db,\r\n ...props.migratorProps,\r\n });\r\n return {\r\n db,\r\n migrator,\r\n };\r\n }\r\n\r\n return { db };\r\n}\r\n","import jsBridge from \"../../bridge\";\r\nimport { MResponse, MResponseWithData } from \"../../model\";\r\n\r\nexport function sqliteOpenDB(\r\n path: string,\r\n): Promise<MResponseWithData<{ dbKey: number }>> {\r\n return jsBridge.callNative({\r\n api: \"sqliteOpenDB\",\r\n data: {\r\n path,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteCloseDB(dbKey: number): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"sqliteCloseDB\",\r\n data: {\r\n dbKey,\r\n },\r\n });\r\n}\r\n\r\nexport function sqlitePrepare(\r\n dbKey: number,\r\n sql: string,\r\n): Promise<MResponseWithData<{ stmtKey: number; reader: boolean }>> {\r\n return jsBridge.callNative({\r\n api: \"sqlitePrepare\",\r\n data: {\r\n dbKey,\r\n sql,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteStatementAll(\r\n dbKey: number,\r\n stmtKey: number,\r\n parameters: ReadonlyArray<unknown>,\r\n): Promise<MResponseWithData<unknown[]>> {\r\n return jsBridge.callNative({\r\n api: \"sqliteStatementAll\",\r\n data: {\r\n dbKey,\r\n stmtKey,\r\n parameters,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteStatementRun(\r\n dbKey: number,\r\n stmtKey: number,\r\n parameters: ReadonlyArray<unknown>,\r\n): Promise<\r\n MResponseWithData<{\r\n changes: number | bigint;\r\n lastInsertRowid: number | bigint;\r\n }>\r\n> {\r\n return jsBridge.callNative({\r\n api: \"sqliteStatementRun\",\r\n data: {\r\n dbKey,\r\n stmtKey,\r\n parameters,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteExecute(\r\n dbKey: number,\r\n sql: string,\r\n parameters: ReadonlyArray<unknown>,\r\n): Promise<\r\n MResponseWithData<{\r\n reader: boolean;\r\n runRes?: {\r\n changes: number | bigint;\r\n lastInsertRowid: number | bigint;\r\n };\r\n entityData?: unknown[];\r\n }>\r\n> {\r\n return jsBridge.callNative({\r\n api: \"sqliteExecute\",\r\n data: {\r\n dbKey,\r\n sql,\r\n parameters,\r\n },\r\n });\r\n}\r\n","import { MinipSqliteStatement } from \"./sqlite-statement\";\r\nimport {\r\n sqliteCloseDB,\r\n sqliteOpenDB,\r\n sqlitePrepare,\r\n sqliteStatementAll,\r\n sqliteStatementRun,\r\n} from \"../native-api\";\r\n\r\nexport class MinipSqliteDatabase {\r\n path: string;\r\n id: number;\r\n debug: boolean;\r\n constructor(path: string, debug: boolean) {\r\n this.path = path;\r\n this.id = -1;\r\n this.debug = debug;\r\n }\r\n async close(): Promise<void> {\r\n if (this.id === -1) return;\r\n await sqliteCloseDB(this.id);\r\n }\r\n async prepare(sql: string): Promise<MinipSqliteStatement> {\r\n if (this.id === -1) {\r\n const res = await sqliteOpenDB(this.path);\r\n this.id = res.data.dbKey;\r\n }\r\n\r\n const dbKey = this.id;\r\n const stmtRes = await sqlitePrepare(dbKey, sql);\r\n\r\n const stmtKey = stmtRes.data.stmtKey;\r\n const reader = stmtRes.data.reader;\r\n\r\n return {\r\n reader: reader,\r\n all(parameters) {\r\n return sqliteStatementAll(dbKey, stmtKey, parameters).then(\r\n (res) => res.data,\r\n );\r\n },\r\n run(parameters) {\r\n return sqliteStatementRun(dbKey, stmtKey, parameters).then(\r\n (res) => res.data,\r\n );\r\n },\r\n iterate(parameters) {\r\n throw \"Not implemented\";\r\n },\r\n };\r\n }\r\n}\r\n","import {\r\n DatabaseIntrospector,\r\n Dialect,\r\n DialectAdapter,\r\n Driver,\r\n Kysely,\r\n QueryCompiler,\r\n SqliteAdapter,\r\n SqliteIntrospector,\r\n SqliteQueryCompiler,\r\n} from \"kysely\";\r\nimport { MinipSqliteDialectConfig } from \"./sqlite-dialect-config\";\r\nimport { MinipSqliteDriver } from \"./sqlite-driver\";\r\n\r\nexport class MinipSqliteDialect implements Dialect {\r\n readonly #config: MinipSqliteDialectConfig;\r\n\r\n constructor(config: MinipSqliteDialectConfig) {\r\n this.#config = config;\r\n }\r\n\r\n createDriver(): Driver {\r\n return new MinipSqliteDriver(this.#config);\r\n }\r\n createQueryCompiler(): QueryCompiler {\r\n return new SqliteQueryCompiler();\r\n }\r\n createAdapter(): DialectAdapter {\r\n return new SqliteAdapter();\r\n }\r\n createIntrospector(db: Kysely<any>): DatabaseIntrospector {\r\n return new SqliteIntrospector(db);\r\n }\r\n}\r\n","import {\r\n CompiledQuery,\r\n DatabaseConnection,\r\n Driver,\r\n TransactionSettings,\r\n} from \"kysely\";\r\nimport { MinipSqliteDialectConfig } from \"./sqlite-dialect-config\";\r\nimport { MinipSqliteConnection } from \"./sqlite-connection\";\r\nimport { MinipSqliteDatabase } from \"./sqlite-database\";\r\n\r\nexport class MinipSqliteDriver implements Driver {\r\n readonly #config: MinipSqliteDialectConfig;\r\n\r\n #db?: MinipSqliteDatabase;\r\n #connection?: MinipSqliteConnection;\r\n\r\n constructor(config: MinipSqliteDialectConfig) {\r\n this.#config = config;\r\n }\r\n\r\n async init() {\r\n this.#db = this.#config.database;\r\n this.#connection = new MinipSqliteConnection(this.#db);\r\n if (this.#config.onCreateConnection) {\r\n await this.#config.onCreateConnection(this.#connection);\r\n }\r\n }\r\n async acquireConnection(): Promise<MinipSqliteConnection> {\r\n return this.#connection!;\r\n }\r\n async beginTransaction(\r\n connection: DatabaseConnection,\r\n settings: TransactionSettings,\r\n ): Promise<void> {\r\n await connection.executeQuery(CompiledQuery.raw(\"begin\"));\r\n }\r\n async commitTransaction(connection: DatabaseConnection): Promise<void> {\r\n await connection.executeQuery(CompiledQuery.raw(\"commit\"));\r\n }\r\n async rollbackTransaction(connection: DatabaseConnection): Promise<void> {\r\n await connection.executeQuery(CompiledQuery.raw(\"rollback\"));\r\n }\r\n async releaseConnection(connection: DatabaseConnection): Promise<void> {}\r\n async destroy(): Promise<void> {\r\n this.#db?.close();\r\n }\r\n}\r\n","import { CompiledQuery, DatabaseConnection, QueryResult } from \"kysely\";\r\nimport { MinipSqliteDatabase } from \"./sqlite-database\";\r\n\r\nexport class MinipSqliteConnection implements DatabaseConnection {\r\n readonly #db: MinipSqliteDatabase;\r\n\r\n constructor(db: MinipSqliteDatabase) {\r\n this.#db = db;\r\n }\r\n async executeQuery<R>(compiledQuery: CompiledQuery): Promise<QueryResult<R>> {\r\n const { sql, parameters } = compiledQuery;\r\n if (this.#db.debug) {\r\n console.debug(sql, parameters);\r\n }\r\n const stmt = await this.#db.prepare(sql);\r\n\r\n if (stmt.reader) {\r\n return {\r\n rows: (await stmt.all(parameters)) as R[],\r\n };\r\n } else {\r\n const { changes, lastInsertRowid } = await stmt.run(parameters);\r\n\r\n const numAffectedRows =\r\n changes !== undefined && changes !== null ? BigInt(changes) : undefined;\r\n\r\n return {\r\n numUpdatedOrDeletedRows: numAffectedRows,\r\n numAffectedRows,\r\n insertId:\r\n lastInsertRowid !== undefined && lastInsertRowid !== null\r\n ? BigInt(lastInsertRowid)\r\n : undefined,\r\n rows: [],\r\n };\r\n }\r\n }\r\n streamQuery<R>(\r\n compiledQuery: CompiledQuery,\r\n chunkSize?: number,\r\n ): AsyncIterableIterator<QueryResult<R>> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport { MResponse, MResponseWithData } from \"../model\";\r\n\r\nexport function getMemoryStorage(\r\n key: string,\r\n): Promise<MResponseWithData<string>> {\r\n return jsBridge.callNative({\r\n api: \"getMemoryStorage\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function setMemoryStorage(\r\n key: string,\r\n value: string,\r\n): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"setMemoryStorage\",\r\n data: { key, value },\r\n });\r\n}\r\nexport function setMemoryStorageIfNotExist(\r\n key: string,\r\n value: string,\r\n): Promise<MResponseWithData<boolean>> {\r\n return jsBridge.callNative({\r\n api: \"setMemoryStorageIfNotExist\",\r\n data: { key, value },\r\n });\r\n}\r\n\r\nexport function removeMemoryStorage(key: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"removeMemoryStorage\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function clearMemoryStorage(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"clearMemoryStorage\",\r\n });\r\n}\r\n","export * from \"./api\";\r\nexport * from \"./model\";\r\nexport * from \"./bridge\";\r\n\r\nexport * from \"kysely\";\r\n"],"mappings":"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","names":["MResponseStatusCode","Kysely","Kysely"]}
|
package/package.json
CHANGED
package/src/api/index.ts
CHANGED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import jsBridge from "../bridge";
|
|
2
|
+
import { MResponse, MResponseWithData } from "../model";
|
|
3
|
+
|
|
4
|
+
export function getMemoryStorage(
|
|
5
|
+
key: string,
|
|
6
|
+
): Promise<MResponseWithData<string>> {
|
|
7
|
+
return jsBridge.callNative({
|
|
8
|
+
api: "getMemoryStorage",
|
|
9
|
+
data: { key },
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function setMemoryStorage(
|
|
14
|
+
key: string,
|
|
15
|
+
value: string,
|
|
16
|
+
): Promise<MResponse> {
|
|
17
|
+
return jsBridge.callNative({
|
|
18
|
+
api: "setMemoryStorage",
|
|
19
|
+
data: { key, value },
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
export function setMemoryStorageIfNotExist(
|
|
23
|
+
key: string,
|
|
24
|
+
value: string,
|
|
25
|
+
): Promise<MResponseWithData<boolean>> {
|
|
26
|
+
return jsBridge.callNative({
|
|
27
|
+
api: "setMemoryStorageIfNotExist",
|
|
28
|
+
data: { key, value },
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function removeMemoryStorage(key: string): Promise<MResponse> {
|
|
33
|
+
return jsBridge.callNative({
|
|
34
|
+
api: "removeMemoryStorage",
|
|
35
|
+
data: { key },
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function clearMemoryStorage(): Promise<MResponse> {
|
|
40
|
+
return jsBridge.callNative({
|
|
41
|
+
api: "clearMemoryStorage",
|
|
42
|
+
});
|
|
43
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import jsBridge from "
|
|
2
|
-
import { MResponse, MResponseWithData } from "
|
|
1
|
+
import jsBridge from "../../bridge";
|
|
2
|
+
import { MResponse, MResponseWithData } from "../../model";
|
|
3
3
|
|
|
4
4
|
export function sqliteOpenDB(
|
|
5
5
|
path: string,
|
|
@@ -68,3 +68,27 @@ export function sqliteStatementRun(
|
|
|
68
68
|
},
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
|
+
|
|
72
|
+
export function sqliteExecute(
|
|
73
|
+
dbKey: number,
|
|
74
|
+
sql: string,
|
|
75
|
+
parameters: ReadonlyArray<unknown>,
|
|
76
|
+
): Promise<
|
|
77
|
+
MResponseWithData<{
|
|
78
|
+
reader: boolean;
|
|
79
|
+
runRes?: {
|
|
80
|
+
changes: number | bigint;
|
|
81
|
+
lastInsertRowid: number | bigint;
|
|
82
|
+
};
|
|
83
|
+
entityData?: unknown[];
|
|
84
|
+
}>
|
|
85
|
+
> {
|
|
86
|
+
return jsBridge.callNative({
|
|
87
|
+
api: "sqliteExecute",
|
|
88
|
+
data: {
|
|
89
|
+
dbKey,
|
|
90
|
+
sql,
|
|
91
|
+
parameters,
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
}
|