| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 3ddc5cd commit 5652da6
4 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -192,6 +192,14 @@ added: v23.5.0 | |||
| 192 | 192 | This method is used to create SQLite user-defined functions. This method is a | |
| 193 | 193 | wrapper around [`sqlite3_create_function_v2()`][]. | |
| 194 | 194 | ||
| 195 | + ### `database.isOpen` | ||
| 196 | + | ||
| 197 | + <!-- YAML | ||
| 198 | + added: REPLACEME | ||
| 199 | + --> | ||
| 200 | + | ||
| 201 | + * {boolean} Whether the database is currently open or not. | ||
| 202 | + | ||
| 195 | 203 | ### `database.open()` | |
| 196 | 204 | ||
| 197 | 205 | <!-- YAML | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -767,6 +767,12 @@ void DatabaseSync::Open(const FunctionCallbackInfo<Value>& args) { | |||
| 767 | 767 | db->Open(); | |
| 768 | 768 | } | |
| 769 | 769 | ||
| 770 | + void DatabaseSync::IsOpenGetter(const FunctionCallbackInfo<Value>& args) { | ||
| 771 | + DatabaseSync* db; | ||
| 772 | + ASSIGN_OR_RETURN_UNWRAP(&db, args.This()); | ||
| 773 | + args.GetReturnValue().Set(db->IsOpen()); | ||
| 774 | + } | ||
| 775 | + | ||
| 770 | 776 | void DatabaseSync::Close(const FunctionCallbackInfo<Value>& args) { | |
| 771 | 777 | DatabaseSync* db; | |
| 772 | 778 | ASSIGN_OR_RETURN_UNWRAP(&db, args.This()); | |
@@ -2247,6 +2253,10 @@ static void Initialize(Local<Object> target, | |||
| 2247 | 2253 | DatabaseSync::EnableLoadExtension); | |
| 2248 | 2254 | SetProtoMethod( | |
| 2249 | 2255 | isolate, db_tmpl, "loadExtension", DatabaseSync::LoadExtension); | |
| 2256 | + SetSideEffectFreeGetter(isolate, | ||
| 2257 | + db_tmpl, | ||
| 2258 | + FIXED_ONE_BYTE_STRING(isolate, "isOpen"), | ||
| 2259 | + DatabaseSync::IsOpenGetter); | ||
| 2250 | 2260 | SetConstructorFunction(context, target, "DatabaseSync", db_tmpl); | |
| 2251 | 2261 | SetConstructorFunction(context, | |
| 2252 | 2262 | target, | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -55,6 +55,7 @@ class DatabaseSync : public BaseObject { | |||
| 55 | 55 | void MemoryInfo(MemoryTracker* tracker) const override; | |
| 56 | 56 | static void New(const v8::FunctionCallbackInfo<v8::Value>& args); | |
| 57 | 57 | static void Open(const v8::FunctionCallbackInfo<v8::Value>& args); | |
| 58 | + static void IsOpenGetter(const v8::FunctionCallbackInfo<v8::Value>& args); | ||
| 58 | 59 | static void Close(const v8::FunctionCallbackInfo<v8::Value>& args); | |
| 59 | 60 | static void Prepare(const v8::FunctionCallbackInfo<v8::Value>& args); | |
| 60 | 61 | static void Exec(const v8::FunctionCallbackInfo<v8::Value>& args); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -172,41 +172,50 @@ suite('DatabaseSync.prototype.open()', () => { | |||
| 172 | 172 | const db = new DatabaseSync(dbPath, { open: false }); | |
| 173 | 173 | t.after(() => { db.close(); }); | |
| 174 | 174 | ||
| 175 | + t.assert.strictEqual(db.isOpen, false); | ||
| 175 | 176 | t.assert.strictEqual(existsSync(dbPath), false); | |
| 176 | 177 | t.assert.strictEqual(db.open(), undefined); | |
| 178 | + t.assert.strictEqual(db.isOpen, true); | ||
| 177 | 179 | t.assert.strictEqual(existsSync(dbPath), true); | |
| 178 | 180 | }); | |
| 179 | 181 | ||
| 180 | 182 | test('throws if database is already open', (t) => { | |
| 181 | 183 | const db = new DatabaseSync(nextDb(), { open: false }); | |
| 182 | 184 | t.after(() => { db.close(); }); | |
| 183 | 185 | ||
| 186 | + t.assert.strictEqual(db.isOpen, false); | ||
| 184 | 187 | db.open(); | |
| 188 | + t.assert.strictEqual(db.isOpen, true); | ||
| 185 | 189 | t.assert.throws(() => { | |
| 186 | 190 | db.open(); | |
| 187 | 191 | }, { | |
| 188 | 192 | code: 'ERR_INVALID_STATE', | |
| 189 | 193 | message: /database is already open/, | |
| 190 | 194 | }); | |
| 195 | + t.assert.strictEqual(db.isOpen, true); | ||
| 191 | 196 | }); | |
| 192 | 197 | }); | |
| 193 | 198 | ||
| 194 | 199 | suite('DatabaseSync.prototype.close()', () => { | |
| 195 | 200 | test('closes an open database connection', (t) => { | |
| 196 | 201 | const db = new DatabaseSync(nextDb()); | |
| 197 | 202 | ||
| 203 | + t.assert.strictEqual(db.isOpen, true); | ||
| 198 | 204 | t.assert.strictEqual(db.close(), undefined); | |
| 205 | + t.assert.strictEqual(db.isOpen, false); | ||
| 199 | 206 | }); | |
| 200 | 207 | ||
| 201 | 208 | test('throws if database is not open', (t) => { | |
| 202 | 209 | const db = new DatabaseSync(nextDb(), { open: false }); | |
| 203 | 210 | ||
| 211 | + t.assert.strictEqual(db.isOpen, false); | ||
| 204 | 212 | t.assert.throws(() => { | |
| 205 | 213 | db.close(); | |
| 206 | 214 | }, { | |
| 207 | 215 | code: 'ERR_INVALID_STATE', | |
| 208 | 216 | message: /database is not open/, | |
| 209 | 217 | }); | |
| 218 | + t.assert.strictEqual(db.isOpen, false); | ||
| 210 | 219 | }); | |
| 211 | 220 | }); | |
| 212 | 221 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments