Skip to content

Commit 0f0f82a

Browse files
authored
add queryable capability (#4794)
1 parent d032c75 commit 0f0f82a

File tree

6 files changed

+22
-2
lines changed

6 files changed

+22
-2
lines changed

src/runtime/capabilities.ts

+3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export class Capabilities {
1818
}
1919

2020
get isPersistent() { return this.capabilities.has('persistent'); }
21+
get isQueryable() { return this.capabilities.has('queryable'); }
2122
get isTiedToRuntime() { return this.capabilities.has('tied-to-runtime'); }
2223
get isTiedToArc() { return this.capabilities.has('tied-to-arc'); }
2324

@@ -44,4 +45,6 @@ export class Capabilities {
4445
static readonly tiedToArc = new Capabilities(['tied-to-arc']);
4546
static readonly tiedToRuntime = new Capabilities(['tied-to-runtime']);
4647
static readonly persistent = new Capabilities(['persistent']);
48+
static readonly queryable = new Capabilities(['queryable']);
49+
static readonly persistentQueryable = new Capabilities(['persistent', 'queryable']);
4750
}

src/runtime/manifest-ast-nodes.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,7 @@ export interface ParticleConnectionTargetComponents extends BaseNode {
402402

403403
export type RecipeHandleFate = string;
404404

405-
export type RecipeHandleCapability = 'persistent' | 'tied-to-runtime' | 'tied-to-arc';
405+
export type RecipeHandleCapability = 'persistent' | 'queryable' | 'tied-to-runtime' | 'tied-to-arc';
406406

407407
export interface RecipeHandle extends BaseNode {
408408
kind: 'handle';

src/runtime/manifest-parser.pegjs

+1
Original file line numberDiff line numberDiff line change
@@ -1064,6 +1064,7 @@ RecipeHandleFate
10641064

10651065
RecipeHandleCapability
10661066
= 'persistent'
1067+
/ 'queryable'
10671068
/ 'tied-to-runtime'
10681069
/ 'tied-to-arc'
10691070

src/runtime/storageNG/testing/mock-firebase.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ export class MockFirebaseStorageDriverProvider extends FirebaseStorageDriverProv
355355
const {projectId, domain, apiKey} = mockFirebaseStorageKeyOptions;
356356
CapabilitiesResolver.registerKeyCreator(
357357
'firebase',
358-
Capabilities.persistent,
358+
Capabilities.persistentQueryable,
359359
(options: StorageKeyOptions) => new FirebaseStorageKey(projectId, domain, apiKey, options.location()));
360360

361361
}

src/runtime/tests/capabilities-resolver-test.ts

+2
Original file line numberDiff line numberDiff line change
@@ -117,5 +117,7 @@ describe('Capabilities Resolver', () => {
117117
assert.sameMembers([...resolver2.findStorageKeyProtocols(Capabilities.tiedToArc)], ['volatile']);
118118
assert.sameMembers([...resolver2.findStorageKeyProtocols(Capabilities.tiedToRuntime)], ['ramdisk']);
119119
assert.sameMembers([...resolver2.findStorageKeyProtocols(Capabilities.persistent)], ['firebase']);
120+
assert.sameMembers([...resolver2.findStorageKeyProtocols(Capabilities.queryable)], ['firebase']);
121+
assert.sameMembers([...resolver2.findStorageKeyProtocols(Capabilities.persistentQueryable)], ['firebase']);
120122
});
121123
});

src/runtime/tests/capabilities-test.ts

+14
Original file line numberDiff line numberDiff line change
@@ -13,28 +13,42 @@ import {Capabilities} from '../capabilities.js';
1313
describe('Capabilities', () => {
1414
it('verifies same capabilities', () => {
1515
assert.isTrue(Capabilities.persistent.isSame(Capabilities.persistent));
16+
assert.isTrue(Capabilities.queryable.isSame(Capabilities.queryable));
17+
assert.isTrue(Capabilities.persistentQueryable.isSame(
18+
Capabilities.persistentQueryable));
1619
assert.isTrue(Capabilities.tiedToRuntime.isSame(Capabilities.tiedToRuntime));
1720
assert.isTrue(Capabilities.tiedToArc.isSame(Capabilities.tiedToArc));
1821

1922
assert.isFalse(Capabilities.persistent.isSame(Capabilities.tiedToRuntime));
2023
assert.isFalse(Capabilities.tiedToRuntime.isSame(Capabilities.tiedToArc));
2124
assert.isFalse(Capabilities.tiedToArc.isSame(Capabilities.persistent));
25+
assert.isFalse(Capabilities.queryable.isSame(Capabilities.persistentQueryable));
26+
2227

2328
assert.isTrue(new Capabilities(['persistent', 'tied-to-arc']).isSame(
2429
new Capabilities(['persistent', 'tied-to-arc'])));
30+
assert.isTrue(new Capabilities(['persistent', 'queryable']).isSame(
31+
Capabilities.persistentQueryable));
2532
assert.isFalse(new Capabilities(['persistent', 'tied-to-arc']).isSame(Capabilities.persistent));
2633
assert.isFalse(Capabilities.persistent.isSame(
2734
new Capabilities(['persistent', 'tied-to-arc'])));
2835
});
2936

3037
it('verifies contained capabilities', () => {
3138
assert.isTrue(Capabilities.persistent.contains(Capabilities.persistent));
39+
assert.isTrue(Capabilities.queryable.contains(Capabilities.queryable));
40+
assert.isTrue(Capabilities.persistentQueryable.contains(Capabilities.persistentQueryable));
41+
assert.isTrue(Capabilities.persistentQueryable.contains(Capabilities.persistent));
42+
assert.isTrue(Capabilities.persistentQueryable.contains(Capabilities.queryable));
3243
assert.isTrue(Capabilities.tiedToRuntime.contains(Capabilities.tiedToRuntime));
3344
assert.isTrue(Capabilities.tiedToArc.contains(Capabilities.tiedToArc));
3445

3546
assert.isFalse(Capabilities.persistent.contains(Capabilities.tiedToRuntime));
3647
assert.isFalse(Capabilities.tiedToRuntime.contains(Capabilities.tiedToArc));
3748
assert.isFalse(Capabilities.tiedToArc.contains(Capabilities.persistent));
49+
assert.isFalse(Capabilities.persistent.contains(Capabilities.persistentQueryable));
50+
assert.isFalse(Capabilities.queryable.contains(Capabilities.persistentQueryable));
51+
assert.isFalse(Capabilities.queryable.contains(Capabilities.persistent));
3852

3953
assert.isTrue(new Capabilities(['persistent', 'tied-to-arc']).contains(
4054
new Capabilities(['persistent', 'tied-to-arc'])));

0 commit comments

Comments
 (0)