skapi-js 0.0.2 → 0.0.4
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/README.md +3 -7
- package/dist/skapi.js +1 -1
- package/dist/skapi.js.map +1 -1
- package/index.html +90 -0
- package/package.json +1 -1
- package/src/skapi.ts +3 -32
- package/src/utils.ts +2 -2
package/index.html
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
<html>
|
|
2
|
+
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<script src="dist/skapi.js"></script>
|
|
6
|
+
</head>
|
|
7
|
+
|
|
8
|
+
<body>
|
|
9
|
+
<div>Signup</div>
|
|
10
|
+
<form onsubmit="skapi.signup(this,{response: log, onerror:log});return false;">
|
|
11
|
+
<input name='email' placeholder="email" />
|
|
12
|
+
<br>
|
|
13
|
+
<input name='password' placeholder="password" />
|
|
14
|
+
<br>
|
|
15
|
+
<input name='name' placeholder="name" />
|
|
16
|
+
<br>
|
|
17
|
+
<input name='gender' placeholder="gender" />
|
|
18
|
+
<br>
|
|
19
|
+
<p>Gender public</p>
|
|
20
|
+
<input name="gender_public" type="checkbox">
|
|
21
|
+
<br>
|
|
22
|
+
<input type=submit></input>
|
|
23
|
+
</form>
|
|
24
|
+
|
|
25
|
+
<h1>Raffina 방명록</h1>
|
|
26
|
+
|
|
27
|
+
<div>Login</div>
|
|
28
|
+
<form onsubmit="skapi.login(this,{response: log, onerror:log});return false;">
|
|
29
|
+
<input name='email' placeholder="email" />
|
|
30
|
+
<br>
|
|
31
|
+
<input name='password' placeholder="password" />
|
|
32
|
+
<br>
|
|
33
|
+
<input type=submit></input>
|
|
34
|
+
</form>
|
|
35
|
+
|
|
36
|
+
<form onsubmit="skapi.uploadUserData(this,{response: log, onerror:log});return false;">
|
|
37
|
+
<textarea name='aboutme' placeholder="aboutme"></textarea>
|
|
38
|
+
<input type=submit></input>
|
|
39
|
+
</form>
|
|
40
|
+
<br>
|
|
41
|
+
|
|
42
|
+
<br>
|
|
43
|
+
<div>Post 방명록</div>
|
|
44
|
+
<form onsubmit="skapi.postRecord(this,{table:'friendsPost', access_group:0, response: log, onerror:log});return false;">
|
|
45
|
+
<input name='title' placeholder="name" />
|
|
46
|
+
<br>
|
|
47
|
+
<textarea name="comment" placeholder="comment"></textarea>
|
|
48
|
+
<br>
|
|
49
|
+
<input type="file" name="myPhoto"></textarea>
|
|
50
|
+
<br>
|
|
51
|
+
<input type=submit></input>
|
|
52
|
+
</form>
|
|
53
|
+
<hr>
|
|
54
|
+
<button onclick="getRecords()">Get Post</button>
|
|
55
|
+
<div id="postdiv"></div>
|
|
56
|
+
</body>
|
|
57
|
+
<script>
|
|
58
|
+
let skapi = new Skapi(
|
|
59
|
+
'us31la69ajk61c015d77ea',
|
|
60
|
+
'7aa4ffe1-1b06-4375-9be2-47d89da9d206'
|
|
61
|
+
);
|
|
62
|
+
function log(v) {
|
|
63
|
+
console.log(v);
|
|
64
|
+
alert(v.toString());
|
|
65
|
+
}
|
|
66
|
+
async function getRecords() {
|
|
67
|
+
let p = await skapi.getRecords({
|
|
68
|
+
table: 'friendsPost',
|
|
69
|
+
access_group: 0
|
|
70
|
+
});
|
|
71
|
+
console.log({ p });
|
|
72
|
+
for(let post of p.list) {
|
|
73
|
+
let d = document.createElement('div');
|
|
74
|
+
d.innerHTML = `
|
|
75
|
+
<h1>${post.data.title}</h1>
|
|
76
|
+
<img src="${post.data?.myPhoto?.url}">
|
|
77
|
+
<p>${post.data.comment}</p>
|
|
78
|
+
<hr>
|
|
79
|
+
`
|
|
80
|
+
postdiv.append(d);
|
|
81
|
+
}
|
|
82
|
+
return p;
|
|
83
|
+
}
|
|
84
|
+
</script>
|
|
85
|
+
<style>
|
|
86
|
+
h1 {
|
|
87
|
+
color: blue;
|
|
88
|
+
}
|
|
89
|
+
</style>
|
|
90
|
+
</html>
|
package/package.json
CHANGED
package/src/skapi.ts
CHANGED
|
@@ -1008,7 +1008,7 @@ export default class Skapi {
|
|
|
1008
1008
|
}
|
|
1009
1009
|
|
|
1010
1010
|
let requestKey = this.load_startKey_keys({
|
|
1011
|
-
params:
|
|
1011
|
+
params: data,
|
|
1012
1012
|
url: isExternalUrl || url,
|
|
1013
1013
|
refresh: isForm ? true : refresh // should not use startKey when post is a form
|
|
1014
1014
|
}); // returns requrestKey | cached data
|
|
@@ -1118,35 +1118,6 @@ export default class Skapi {
|
|
|
1118
1118
|
}
|
|
1119
1119
|
}
|
|
1120
1120
|
|
|
1121
|
-
let toHash = (() => {
|
|
1122
|
-
if (params && typeof params === 'object' && Object.keys(params).length) {
|
|
1123
|
-
// hash request parameters
|
|
1124
|
-
let paramsHash = JSON.parse(JSON.stringify(params));
|
|
1125
|
-
|
|
1126
|
-
function orderObjectKeys(obj: Record<string, any>) {
|
|
1127
|
-
function sortObject(obj: Record<string, any>): Record<string, any> {
|
|
1128
|
-
if (typeof obj === 'object' && obj) {
|
|
1129
|
-
return Object.keys(obj).sort().reduce((res, key) => ((res as any)[key] = obj[key], res), {});
|
|
1130
|
-
}
|
|
1131
|
-
return obj;
|
|
1132
|
-
};
|
|
1133
|
-
|
|
1134
|
-
let _obj = sortObject(obj);
|
|
1135
|
-
for (let k in _obj) {
|
|
1136
|
-
if (_obj[k] && typeof _obj[k] === 'object') {
|
|
1137
|
-
_obj[k] = sortObject(obj[k]);
|
|
1138
|
-
}
|
|
1139
|
-
}
|
|
1140
|
-
|
|
1141
|
-
return _obj;
|
|
1142
|
-
}
|
|
1143
|
-
|
|
1144
|
-
return JSON.stringify(orderObjectKeys(paramsHash)) + url + this.service;
|
|
1145
|
-
}
|
|
1146
|
-
|
|
1147
|
-
return url + this.service;
|
|
1148
|
-
})();
|
|
1149
|
-
|
|
1150
1121
|
// let hashedParams = createHash('sha256').update(toHash).digest('hex');
|
|
1151
1122
|
let hashedParams = sha256((() => {
|
|
1152
1123
|
if (params && typeof params === 'object' && Object.keys(params).length) {
|
|
@@ -1216,7 +1187,7 @@ export default class Skapi {
|
|
|
1216
1187
|
if (last_startKey_key) {
|
|
1217
1188
|
// use last start key
|
|
1218
1189
|
|
|
1219
|
-
if (last_startKey_key === 'end') {
|
|
1190
|
+
if (last_startKey_key === '"end"') { // cached startKeys are stringified
|
|
1220
1191
|
return {
|
|
1221
1192
|
list: [],
|
|
1222
1193
|
startKey: 'end',
|
|
@@ -3265,7 +3236,7 @@ export default class Skapi {
|
|
|
3265
3236
|
auth: true
|
|
3266
3237
|
};
|
|
3267
3238
|
|
|
3268
|
-
if (option
|
|
3239
|
+
if (option?.private) {
|
|
3269
3240
|
Object.assign(opt, { meta: { '__private__': option.private } });
|
|
3270
3241
|
}
|
|
3271
3242
|
|
package/src/utils.ts
CHANGED
|
@@ -298,8 +298,8 @@ function checkParams(
|
|
|
298
298
|
val = _params;
|
|
299
299
|
}
|
|
300
300
|
|
|
301
|
-
if (val === undefined) {
|
|
302
|
-
throw errToThrow
|
|
301
|
+
if (val === undefined && errToThrow) {
|
|
302
|
+
throw errToThrow;
|
|
303
303
|
}
|
|
304
304
|
|
|
305
305
|
return val;
|