Skip to content

Commit 91a0182

Browse files
authored
Merge pull request #175 from karthik2804/kv/add_json_helpers
add json helpers to kv store
2 parents 6bfdce6 + 635d8a5 commit 91a0182

File tree

1 file changed

+32
-6
lines changed

1 file changed

+32
-6
lines changed

spin-sdk/src/modules/spinSdk.ts

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@ interface KvStore {
99
delete: (key: string) => void
1010
exists: (key: string) => boolean
1111
get: (key: string) => ArrayBuffer | null
12+
getJson: (key: string) => any
1213
getKeys: () => Array<string>
1314
set: (key: string, value: ArrayBuffer | string) => void
15+
setJson: (key: string, value: any) => void
1416
}
1517

1618
type SqliteParam = number | string | ArrayBuffer
@@ -90,22 +92,46 @@ declare global {
9092
}
9193
}
9294

95+
const kv = {
96+
open: (name: string) => {
97+
let store = __internal__.spin_sdk.kv.open(name)
98+
store.getJson = (key: string) => {
99+
return JSON.parse(new TextDecoder().decode(store.get(key)))
100+
}
101+
store.setJson = (key: string, value: any) => {
102+
store.set(key, JSON.stringify(value))
103+
}
104+
return store
105+
},
106+
openDefault: () => {
107+
let store = kv.open("default")
108+
return store
109+
}
110+
111+
}
93112

94113
/** features
95114
*/
96115
/** @deprecated */
97-
const spinSdk: SpinSdk = __internal__.spin_sdk
98-
spinSdk.utils = utils
99-
spinSdk.Router = () => {
100-
return router()
116+
const spinSdk: SpinSdk = {
117+
config: __internal__.spin_sdk.config,
118+
redis: __internal__.spin_sdk.redis,
119+
kv: kv,
120+
mysql: __internal__.spin_sdk.mysql,
121+
pg: __internal__.spin_sdk.pg,
122+
sqlite: __internal__.spin_sdk.sqlite,
123+
utils: utils,
124+
Router: () => {
125+
return router()
126+
}
101127
}
102128

103129
const Config = __internal__.spin_sdk.config
104130
const Redis = __internal__.spin_sdk.redis
105-
const Kv = __internal__.spin_sdk.kv
131+
const Kv = kv
106132
const Mysql = __internal__.spin_sdk.mysql
107133
const Pg = __internal__.spin_sdk.pg
108134
const Sqlite = __internal__.spin_sdk.sqlite
109135

110-
export { spinSdk, SpinSdk}
136+
export { spinSdk, SpinSdk }
111137
export { Config, Redis, Kv, router, Mysql, Pg, Sqlite }

0 commit comments

Comments
 (0)