15
15
16
16
import type {
17
17
Ack ,
18
- AddUserActivityRequest ,
19
- AddUserExternalAssociationRequest ,
20
- AdvanceExternalPipelineIngestionProgress ,
21
- CreateEdgeArgs ,
22
- CreateNodeArgs ,
18
+ EdgeCreateArgs ,
19
+ NodeCreateArgs ,
23
20
Eid ,
24
21
NewNodeResponse ,
25
22
Nid ,
26
23
NodeBatch ,
27
24
NodeBatchRequestBody ,
28
25
NodeEdges ,
29
- NodePatchRequest ,
30
26
OriginId ,
31
27
StorageApi ,
32
28
TEdge ,
@@ -36,6 +32,16 @@ import type {
36
32
TotalUserActivity ,
37
33
UserExternalPipelineId ,
38
34
UserExternalPipelineIngestionProgress ,
35
+ NodeGetArgs ,
36
+ NodeGetByOriginArgs ,
37
+ NodeUpdateArgs ,
38
+ EdgeGetArgs ,
39
+ ActivityExternalAddArgs ,
40
+ ActivityExternalGetArgs ,
41
+ ActivityAssociationRecordArgs ,
42
+ ActivityAssociationGetArgs ,
43
+ ExternalIngestionAdvanceArgs ,
44
+ ExternalIngestionGetArgs ,
39
45
} from 'smuggler-api'
40
46
import { INodeIterator , NodeUtil , EdgeUtil , NodeType } from 'smuggler-api'
41
47
import { v4 as uuidv4 } from 'uuid'
@@ -265,7 +271,7 @@ function generateEid(): Eid {
265
271
266
272
async function createNode (
267
273
store : YekLavStore ,
268
- args : CreateNodeArgs
274
+ args : NodeCreateArgs
269
275
) : Promise < NewNodeResponse > {
270
276
// TODO[snikitin@outlook .com] Below keys must become functional somehow.
271
277
// const _created_via: NodeCreatedVia | undefined = args.created_via
@@ -349,13 +355,10 @@ async function createNode(
349
355
return { nid : node . nid }
350
356
}
351
357
352
- async function getNode ( {
353
- store,
354
- nid,
355
- } : {
356
- store : YekLavStore
357
- nid : Nid
358
- } ) : Promise < TNode > {
358
+ async function getNode (
359
+ store : YekLavStore ,
360
+ { nid } : NodeGetArgs
361
+ ) : Promise < TNode > {
359
362
const yek : NidToNodeYek = { yek : { kind : 'nid->node' , key : nid } }
360
363
const lav : NidToNodeLav | undefined = await store . get ( yek )
361
364
if ( lav == null ) {
@@ -365,13 +368,10 @@ async function getNode({
365
368
return NodeUtil . fromJson ( value )
366
369
}
367
370
368
- async function getNodesByOrigin ( {
369
- store,
370
- origin,
371
- } : {
372
- store : YekLavStore
373
- origin : OriginId
374
- } ) : Promise < TNode [ ] > {
371
+ async function getNodesByOrigin (
372
+ store : YekLavStore ,
373
+ { origin } : NodeGetByOriginArgs
374
+ ) : Promise < TNode [ ] > {
375
375
const yek : OriginToNidYek = { yek : { kind : 'origin->nid' , key : origin } }
376
376
const lav : OriginToNidLav | undefined = await store . get ( yek )
377
377
if ( lav == null ) {
@@ -387,9 +387,9 @@ async function getNodesByOrigin({
387
387
388
388
async function getNodeBatch (
389
389
store : YekLavStore ,
390
- req : NodeBatchRequestBody
390
+ args : NodeBatchRequestBody
391
391
) : Promise < NodeBatch > {
392
- const yeks : NidToNodeYek [ ] = req . nids . map ( ( nid : Nid ) : NidToNodeYek => {
392
+ const yeks : NidToNodeYek [ ] = args . nids . map ( ( nid : Nid ) : NidToNodeYek => {
393
393
return { yek : { kind : 'nid->node' , key : nid } }
394
394
} )
395
395
const lavs : NidToNodeLav [ ] = await store . get ( yeks )
@@ -400,7 +400,7 @@ async function getNodeBatch(
400
400
401
401
async function updateNode (
402
402
store : YekLavStore ,
403
- args : { nid : Nid } & NodePatchRequest
403
+ args : NodeUpdateArgs
404
404
) : Promise < Ack > {
405
405
const yek : NidToNodeYek = { yek : { kind : 'nid->node' , key : args . nid } }
406
406
const lav : NidToNodeLav | undefined = await store . get ( yek )
@@ -460,7 +460,7 @@ class Iterator implements INodeIterator {
460
460
461
461
async function createEdge (
462
462
store : YekLavStore ,
463
- args : CreateEdgeArgs
463
+ args : EdgeCreateArgs
464
464
) : Promise < TEdge > {
465
465
// TODO[snikitin@outlook .com] Evaluate if ownership support is needed
466
466
// and implement if yes
@@ -501,7 +501,7 @@ async function createEdge(
501
501
502
502
async function getNodeAllEdges (
503
503
store : YekLavStore ,
504
- nid : string
504
+ { nid } : EdgeGetArgs
505
505
) : Promise < NodeEdges > {
506
506
const yek : NidToEdgeYek = { yek : { kind : 'nid->edge' , key : nid } }
507
507
const lav : NidToEdgeLav | undefined = await store . get ( yek )
@@ -521,10 +521,11 @@ async function getNodeAllEdges(
521
521
522
522
async function addExternalUserActivity (
523
523
store : YekLavStore ,
524
- origin : OriginId ,
525
- activity : AddUserActivityRequest
524
+ { origin, activity } : ActivityExternalAddArgs
526
525
) : Promise < TotalUserActivity > {
527
- const total : TotalUserActivity = await getExternalUserActivity ( store , origin )
526
+ const total : TotalUserActivity = await getExternalUserActivity ( store , {
527
+ origin,
528
+ } )
528
529
if ( 'visit' in activity ) {
529
530
if ( activity . visit == null ) {
530
531
return total
@@ -555,7 +556,7 @@ async function addExternalUserActivity(
555
556
556
557
async function getExternalUserActivity (
557
558
store : YekLavStore ,
558
- origin : OriginId
559
+ { origin } : ActivityExternalGetArgs
559
560
) : Promise < TotalUserActivity > {
560
561
const yek : OriginToActivityYek = {
561
562
yek : { kind : 'origin->activity' , key : origin } ,
@@ -573,7 +574,7 @@ async function getExternalUserActivity(
573
574
574
575
async function getUserIngestionProgress (
575
576
store : YekLavStore ,
576
- epid : UserExternalPipelineId
577
+ { epid } : ExternalIngestionGetArgs
577
578
) : Promise < UserExternalPipelineIngestionProgress > {
578
579
const yek : ExtPipelineYek = {
579
580
yek : { kind : 'ext-pipe->progress' , key : epid } ,
@@ -594,11 +595,10 @@ async function getUserIngestionProgress(
594
595
595
596
async function advanceUserIngestionProgress (
596
597
store : YekLavStore ,
597
- epid : UserExternalPipelineId ,
598
- new_progress : AdvanceExternalPipelineIngestionProgress
598
+ { epid, new_progress } : ExternalIngestionAdvanceArgs
599
599
) : Promise < Ack > {
600
600
const progress : UserExternalPipelineIngestionProgress =
601
- await getUserIngestionProgress ( store , epid )
601
+ await getUserIngestionProgress ( store , { epid } )
602
602
progress . ingested_until = new_progress . ingested_until
603
603
604
604
const yek : ExtPipelineYek = {
@@ -627,22 +627,15 @@ export function makeBrowserExtStorageApi(
627
627
628
628
return {
629
629
node : {
630
- get : ( { nid } : { nid : string ; signal ?: AbortSignal } ) =>
631
- getNode ( { store, nid } ) ,
632
- getByOrigin : ( { origin } : { origin : OriginId ; signal ?: AbortSignal } ) =>
633
- getNodesByOrigin ( { store, origin } ) ,
634
- update : (
635
- args : { nid : string } & NodePatchRequest ,
636
- _signal ?: AbortSignal
637
- ) => updateNode ( store , args ) ,
638
- create : ( args : CreateNodeArgs , _signal ?: AbortSignal ) =>
639
- createNode ( store , args ) ,
630
+ get : ( args : NodeGetArgs ) => getNode ( store , args ) ,
631
+ getByOrigin : ( args : NodeGetByOriginArgs ) => getNodesByOrigin ( store , args ) ,
632
+ update : ( args : NodeUpdateArgs ) => updateNode ( store , args ) ,
633
+ create : ( args : NodeCreateArgs ) => createNode ( store , args ) ,
640
634
iterate : ( ) => new Iterator ( store ) ,
641
635
delete : throwUnimplementedError ( 'node.delete' ) ,
642
636
bulkDelete : throwUnimplementedError ( 'node.bulkdDelete' ) ,
643
637
batch : {
644
- get : ( req : NodeBatchRequestBody , _signal ?: AbortSignal ) =>
645
- getNodeBatch ( store , req ) ,
638
+ get : ( args : NodeBatchRequestBody ) => getNodeBatch ( store , args ) ,
646
639
} ,
647
640
url : throwUnimplementedError ( 'node.url' ) ,
648
641
} ,
@@ -663,48 +656,32 @@ export function makeBrowserExtStorageApi(
663
656
} ,
664
657
} ,
665
658
edge : {
666
- create : ( args : CreateEdgeArgs ) => createEdge ( store , args ) ,
667
- get : ( nid : string , _signal ?: AbortSignal ) => getNodeAllEdges ( store , nid ) ,
659
+ create : ( args : EdgeCreateArgs ) => createEdge ( store , args ) ,
660
+ get : ( args : EdgeGetArgs ) => getNodeAllEdges ( store , args ) ,
668
661
sticky : throwUnimplementedError ( 'edge.sticky' ) ,
669
662
delete : throwUnimplementedError ( 'edge.delete' ) ,
670
663
} ,
671
664
activity : {
672
665
external : {
673
- add : (
674
- origin : OriginId ,
675
- activity : AddUserActivityRequest ,
676
- _signal ?: AbortSignal
677
- ) => addExternalUserActivity ( store , origin , activity ) ,
678
- get : ( origin : OriginId , _signal ?: AbortSignal ) =>
679
- getExternalUserActivity ( store , origin ) ,
666
+ add : ( args : ActivityExternalAddArgs ) =>
667
+ addExternalUserActivity ( store , args ) ,
668
+ get : ( args : ActivityExternalGetArgs ) =>
669
+ getExternalUserActivity ( store , args ) ,
680
670
} ,
681
671
association : {
682
672
// TODO[snikitin@outlook .com] Replace stubs with real implementation
683
- record : (
684
- _origin : {
685
- from : OriginId
686
- to : OriginId
687
- } ,
688
- _body : AddUserExternalAssociationRequest ,
689
- _signal ?: AbortSignal
690
- ) => Promise . resolve ( { ack : true } ) ,
691
- get : (
692
- _args : {
693
- origin : OriginId
694
- } ,
695
- _signal ?: AbortSignal
696
- ) => Promise . resolve ( { from : [ ] , to : [ ] } ) ,
673
+ record : ( _args : ActivityAssociationRecordArgs ) =>
674
+ Promise . resolve ( { ack : true } ) ,
675
+ get : ( _args : ActivityAssociationGetArgs ) =>
676
+ Promise . resolve ( { from : [ ] , to : [ ] } ) ,
697
677
} ,
698
678
} ,
699
679
external : {
700
680
ingestion : {
701
- get : ( epid : UserExternalPipelineId , _signal ?: AbortSignal ) =>
702
- getUserIngestionProgress ( store , epid ) ,
703
- advance : (
704
- epid : UserExternalPipelineId ,
705
- new_progress : AdvanceExternalPipelineIngestionProgress ,
706
- _signal ?: AbortSignal
707
- ) => advanceUserIngestionProgress ( store , epid , new_progress ) ,
681
+ get : ( args : ExternalIngestionGetArgs ) =>
682
+ getUserIngestionProgress ( store , args ) ,
683
+ advance : ( args : ExternalIngestionAdvanceArgs ) =>
684
+ advanceUserIngestionProgress ( store , args ) ,
708
685
} ,
709
686
} ,
710
687
}
0 commit comments