當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript data.KeyMap類代碼示例

本文整理匯總了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'
      );
    });
開發者ID:SmuliS,項目名稱:orbit.js,代碼行數:34,代碼來源:jsonapi-serializer-test.ts

示例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');
    });
開發者ID:orbitjs,項目名稱:orbit.js,代碼行數:7,代碼來源:jsonapi-serializer-test.ts

示例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'
    );
  });
開發者ID:orbitjs,項目名稱:orbit.js,代碼行數:56,代碼來源:source-test.ts

示例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'
    );
  });
開發者ID:orbitjs,項目名稱:orbit.js,代碼行數:51,代碼來源:cache-test.ts

示例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'
    );
  });
開發者ID:orbitjs,項目名稱:orbit.js,代碼行數:28,代碼來源:source-test.ts

示例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'
    );
  });
開發者ID:orbitjs,項目名稱:orbit.js,代碼行數:33,代碼來源:memory-cache-test.ts


注:本文中的@orbit/data.KeyMap類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。