[add] typescript logic
Christian Fraß authored 3 years ago
|
1) // import {int} from './types';
2)
3)
4) namespace helpers.database
5) {
6)
7) /**
8) */
9) type type_query = {
10) sql_template : string;
11) arguments : {[name : string] : any};
12) };
13)
14)
15) /**
16) */
17) function resolve_path
18) (
19) path_raw : string
20) ) : string
21) {
22) return ("sql/" + path_raw.replace(new RegExp("\\.", "g"), "/") + ".sql");
23) }
24)
25)
26) /**
27) */
28) function fix_query
29) (
30) query : type_query,
31) ) : type_query
32) {
33) return {
34) "sql_template": query.sql_template.replace
35) (
36) new RegExp(":([0-9a-zA-Z_-]+)", "g"),
37) "$$$1"
38) ),
39) "arguments": (
40) () =>
41) {
42) let arguments_ : {[name : string] : any} = {};
43) Object.keys(query.arguments).forEach
44) (
45) (name) => {arguments_["$" + name] = query.arguments[name];}
46) );
47) return arguments_;
48) }
49) ) (),
50) };
51) }
52)
53)
54) /**
55) */
56) function query_do_free_
57) (
58) query : type_query
59) ) : Promise<void>
60) {
61) const nm_sqlite3 = require("sqlite3");
62) const query_fixed : type_query = fix_query(query);
63) // console.info("---\n" + query_fixed.sql_template + "\n" + JSON.stringify(query_fixed.arguments) + "\n---\n");
64) return (
65) new Promise<void>
66) (
67) (resolve, reject) =>
68) {
|
[mod] helpers:database
Christian Fraß authored 3 years ago
|
69) const database/* : nm_sqlite3.Database*/ = new nm_sqlite3.Database("data.sqlite");
|
[add] typescript logic
Christian Fraß authored 3 years ago
|
70) database.run
71) (
72) query_fixed.sql_template,
73) query_fixed.arguments,
74) function (error)
75) {
76) if (error)
77) {
78) reject(error);
79) }
80) else
81) {
82) resolve(undefined);
83) }
84) }
85) );
86) database.close();
87) }
88) )
89) );
90) }
91)
92)
93) /**
94) */
95) function query_get_free_
96) (
97) query : type_query
98) ) : Promise<Array<type_row>>
99) {
100) const nm_sqlite3 = require("sqlite3");
101) const query_fixed : type_query = fix_query(query);
102) // console.info("---\n" + query_fixed.sql_template + "\n" + JSON.stringify(query_fixed.arguments) + "\n---\n");
103) return (
104) new Promise<Array<type_row>>
105) (
106) (resolve, reject) =>
107) {
|
[mod] helpers:database
Christian Fraß authored 3 years ago
|
108) const database/* : nm_sqlite3.Database*/ = new nm_sqlite3.Database("data.sqlite");
|
[add] typescript logic
Christian Fraß authored 3 years ago
|
109) database.all
110) (
111) query_fixed.sql_template,
112) query_fixed.arguments,
113) function (error, rows)
114) {
115) // console.info({error,rows});
116) if (error)
117) {
118) reject(error);
119) }
120) else
121) {
122) resolve(rows);
123) }
124) }
125) );
126) database.close();
127) }
128) )
129) );
130) }
131)
132)
133) /**
134) */
135) function query_put_free_
136) (
137) query : type_query
138) ) : Promise<int>
139) {
140) const nm_sqlite3 = require("sqlite3");
141) const query_fixed : type_query = fix_query(query);
142) // console.info("---\n" + query_fixed.sql_template + "\n" + JSON.stringify(query_fixed.arguments) + "\n---\n");
143) return (
144) new Promise<int>
145) (
146) (resolve, reject) =>
147) {
|
[mod] helpers:database
Christian Fraß authored 3 years ago
|
148) const database/* : nm_sqlite3.Database*/ = new nm_sqlite3.Database("data.sqlite");
|