import assert from 'assert'
import Transaction from './Transaction.mjs'
+import logjson from './index.mjs'
class LazyValue {
constructor(transaction, ptr_len) {
throw new Error('not implemented')
}
+ async get_json(key, default_value) {
+ return /*await*/ logjson.logjson_to_json(
+ await this.get(key, default_value)
+ )
+ }
+
set(key, value) {
throw new Error('not implemented')
}
+ set_json(key, value) {
+ this.set(key, this.transaction.json_to_logjson(value))
+ }
+
delete(key) {
throw new Error('not implemented')
}
import LazyValue from './LazyValue.mjs'
import LazyArray from './LazyArray.mjs'
import LazyObject from './LazyObject.mjs'
+import logjson from './index.mjs'
class Transaction {
constructor(database, value) {
return this.value
}
+ async get_json(default_value) {
+ return /*await*/ logjson.logjson_to_json(
+ await this.get(default_value)
+ )
+ }
+
set(value) {
this.dirty = true
assert(
this.value = value
}
+ set_json(value) {
+ this.set(this.json_to_logjson(value))
+ }
+
async commit() {
//console.log('commit transaction', this.serial)
assert(this.value !== undefined)
let database = new logjson.Database()
await database.open(process.argv[3])
let transaction = await database.Transaction()
-transaction.set(
- transaction.json_to_logjson(
- JSON.parse(
- (await fsPromises.readFile(process.argv[2])).toString('utf-8')
- )
- )
+transaction.set_json(
+ JSON.parse((await fsPromises.readFile(process.argv[2])).toString('utf-8'))
)
transaction.commit()
await database.close()
await fsPromises.writeFile(
process.argv[3],
Buffer.from(
- JSON.stringify(
- await logjson.logjson_to_json(await transaction.get()),
- null,
- 2
- ) + '\n',
+ JSON.stringify(await transaction.get_json(), null, 2) + '\n',
'utf-8'
)
)
await database.open('a.logjson')
let transaction = await database.Transaction()
-transaction.set(
- transaction.json_to_logjson(
- JSON.parse(await fsPromises.readFile('random.json', 'utf-8'))
- )
+transaction.set_json(
+ JSON.parse(await fsPromises.readFile('random.json', 'utf-8'))
)
await transaction.commit()
await fsPromises.writeFile(
'a.json',
Buffer.from(
- JSON.stringify(
- await logjson.logjson_to_json(await transaction.get()),
- null,
- 2
- ) + '\n',
+ JSON.stringify(await transaction.get_json(), null, 2) + '\n',
'utf-8'
)
)
await fsPromises.writeFile(
'b.json',
Buffer.from(
- JSON.stringify(
- await logjson.logjson_to_json(await transaction.get()),
- null,
- 2
- ) + '\n',
+ JSON.stringify(await transaction.get_json(), null, 2) + '\n',
'utf-8'
)
)
'c.json',
Buffer.from(
JSON.stringify(
- await logjson.logjson_to_json(await transaction.get()),
+ await transaction.get_json(),
null,
2
) + '\n',
await fsPromises.writeFile(
'd.json',
Buffer.from(
- JSON.stringify(
- await logjson.logjson_to_json(await transaction.get()),
- null,
- 2
- ) + '\n',
+ JSON.stringify(await transaction.get_json(), null, 2) + '\n',
'utf-8'
)
)