本文整理汇总了TypeScript中@orbit/data.KeyMap类的典型用法代码示例。如果您正苦于以下问题:TypeScript KeyMap类的具体用法?TypeScript KeyMap怎么用?TypeScript KeyMap使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了KeyMap类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: test
test('#serializeDocument - can serialize a resource with attributes and a null has-one relationship', function(assert) {
keyMap.pushRecord({ type: 'planet', id: 'p0', keys: { remoteId: 'p1-id' } });
keyMap.pushRecord({ type: 'moon', id: 'm1', keys: { remoteId: 'm1-id' } });
assert.deepEqual(
serializer.serializeDocument(
{
type: 'moon',
id: 'm1',
attributes: {
name: 'Io'
},
relationships: {
planet: {
data: null
}
}
}
),
{
data: {
type: 'moons',
id: 'm1-id',
attributes: {
name: 'Io'
},
relationships: {
planet: { data: null }
}
}
},
'serialized document matches'
);
});
示例2: test
test('#recordId returns a matching orbit id given a resource id', function(assert) {
keyMap.pushRecord({ type: 'planet', id: '1', keys: { remoteId: 'a' } });
keyMap.pushRecord({ type: 'planet', id: '2', keys: { remoteId: 'b' } });
assert.equal(serializer.recordId('planet', 'a'), '1');
assert.equal(serializer.recordId('planet', 'b'), '2');
});
示例3: test
test('#pull - a specific record', async function(assert) {
assert.expect(3);
let earth: Record = {
type: 'planet',
id: 'earth',
attributes: {
name: 'Earth',
classification: 'terrestrial'
}
};
let jupiter: Record = {
type: 'planet',
id: 'jupiter',
keys: {
remoteId: 'p2'
},
attributes: {
name: 'Jupiter',
classification: 'gas giant'
}
};
let io: Record = {
type: 'moon',
id: 'io',
attributes: {
name: 'Io'
}
};
await source.push(t => [
t.addRecord(earth),
t.addRecord(jupiter),
t.addRecord(io)
]);
// reset keyMap to verify that pulling records also adds keys
keyMap.reset();
let transforms = await source.pull(q => q.findRecord(jupiter));
assert.equal(transforms.length, 1, 'one transform returned');
assert.deepEqual(
transforms[0].operations.map(o => o.op),
['updateRecord'],
'operations match expectations'
);
assert.equal(
keyMap.keyToId('planet', 'remoteId', 'p2'),
'jupiter',
'key has been mapped'
);
});
示例4: test
test('#query - a specific record', async function(assert) {
assert.expect(2);
let earth: Record = {
type: 'planet',
id: 'earth',
attributes: {
name: 'Earth',
classification: 'terrestrial'
}
};
let jupiter: Record = {
type: 'planet',
id: 'jupiter',
keys: {
remoteId: 'p2'
},
attributes: {
name: 'Jupiter',
classification: 'gas giant'
}
};
let io: Record = {
type: 'moon',
id: 'io',
attributes: {
name: 'Io'
}
};
await cache.patch(t => [
t.addRecord(earth),
t.addRecord(jupiter),
t.addRecord(io)
]);
// reset keyMap to verify that pulling records also adds keys
keyMap.reset();
let record = await cache.query(q => q.findRecord(jupiter));
assert.deepEqual(record, jupiter, 'query results are expected');
assert.equal(
keyMap.keyToId('planet', 'remoteId', 'p2'),
'jupiter',
'key has been mapped'
);
});
示例5: getRecordFromIndexedDB
test('#push - addRecord', async function(assert) {
assert.expect(2);
let planet: Record = {
type: 'planet',
id: 'jupiter',
keys: {
remoteId: 'j'
},
attributes: {
name: 'Jupiter',
classification: 'gas giant'
}
};
await source.push(t => t.addRecord(planet));
assert.deepEqual(
await getRecordFromIndexedDB(source.cache, planet),
planet,
'indexeddb contains record'
);
assert.equal(
keyMap.keyToId('planet', 'remoteId', 'j'),
'jupiter',
'key has been mapped'
);
});
示例6: test
test('#patch sets data and #records retrieves it', function(assert) {
assert.expect(4);
let cache = new MemoryCache({ schema, keyMap });
const earth: Record = {
type: 'planet',
id: '1',
attributes: { name: 'Earth' },
keys: { remoteId: 'a' }
};
cache.on('patch', (operation, data) => {
assert.deepEqual(operation, {
op: 'addRecord',
record: earth
});
assert.deepEqual(data, earth);
});
cache.patch(t => t.addRecord(earth));
assert.strictEqual(
cache.getRecordSync({ type: 'planet', id: '1' }),
earth,
'objects strictly match'
);
assert.equal(
keyMap.keyToId('planet', 'remoteId', 'a'),
'1',
'key has been mapped'
);
});