[{"data":1,"prerenderedAt":1311},["ShallowReactive",2],{"navigation_docs":3,"-proxy-service-defining-services":133,"-proxy-service-defining-services-surround":1308},[4,22,51,62,73,84,99,118],{"title":5,"path":6,"stem":7,"children":8,"page":21},"Get Started","/get-started","0.get-started",[9,13,17],{"title":10,"path":11,"stem":12},"Introduction","/get-started/introduction","0.get-started/0.introduction",{"title":14,"path":15,"stem":16},"Browser Support","/get-started/browser-support","0.get-started/1.browser-support",{"title":18,"path":19,"stem":20},"Contributing","/get-started/contributing","0.get-started/2.contributing",false,{"title":23,"path":24,"stem":25,"children":26,"page":21},"Fake Browser","/fake-browser","fake-browser",[27,31,35,39,43,47],{"title":28,"path":29,"stem":30},"Installation","/fake-browser/installation","fake-browser/0.installation",{"title":32,"path":33,"stem":34},"Testing Frameworks","/fake-browser/testing-frameworks","fake-browser/1.testing-frameworks",{"title":36,"path":37,"stem":38},"Triggering Events","/fake-browser/triggering-events","fake-browser/2.triggering-events",{"title":40,"path":41,"stem":42},"Resetting State","/fake-browser/reseting-state","fake-browser/3.reseting-state",{"title":44,"path":45,"stem":46},"Implemented Apis","/fake-browser/implemented-apis","fake-browser/4.implemented-apis",{"title":48,"path":49,"stem":50},"Api","/fake-browser/api","fake-browser/api",{"title":52,"path":53,"stem":54,"children":55,"page":21},"Isolated Element","/isolated-element","isolated-element",[56,59],{"title":28,"path":57,"stem":58},"/isolated-element/installation","isolated-element/0.installation",{"title":48,"path":60,"stem":61},"/isolated-element/api","isolated-element/api",{"title":63,"path":64,"stem":65,"children":66,"page":21},"Job Scheduler","/job-scheduler","job-scheduler",[67,70],{"title":28,"path":68,"stem":69},"/job-scheduler/installation","job-scheduler/0.installation",{"title":48,"path":71,"stem":72},"/job-scheduler/api","job-scheduler/api",{"title":74,"path":75,"stem":76,"children":77,"page":21},"Match Patterns","/match-patterns","match-patterns",[78,81],{"title":28,"path":79,"stem":80},"/match-patterns/installation","match-patterns/0.installation",{"title":48,"path":82,"stem":83},"/match-patterns/api","match-patterns/api",{"title":85,"path":86,"stem":87,"children":88,"page":21},"Messaging","/messaging","messaging",[89,92,96],{"title":28,"path":90,"stem":91},"/messaging/installation","messaging/0.installation",{"title":93,"path":94,"stem":95},"Protocol Maps","/messaging/protocol-maps","messaging/1.protocol-maps",{"title":48,"path":97,"stem":98},"/messaging/api","messaging/api",{"title":100,"path":101,"stem":102,"children":103,"page":21},"Proxy Service","/proxy-service","proxy-service",[104,107,111,115],{"title":28,"path":105,"stem":106},"/proxy-service/installation","proxy-service/0.installation",{"title":108,"path":109,"stem":110},"Defining Services","/proxy-service/defining-services","proxy-service/1.defining-services",{"title":112,"path":113,"stem":114},"Service Keys","/proxy-service/service-keys","proxy-service/2.service-keys",{"title":48,"path":116,"stem":117},"/proxy-service/api","proxy-service/api",{"title":119,"path":120,"stem":121,"children":122,"page":21},"Storage","/storage","storage",[123,126,130],{"title":28,"path":124,"stem":125},"/storage/installation","storage/0.installation",{"title":127,"path":128,"stem":129},"Typescript","/storage/typescript","storage/1.typescript",{"title":48,"path":131,"stem":132},"/storage/api","storage/api",{"id":134,"title":108,"body":135,"description":161,"extension":1303,"links":1304,"meta":1305,"navigation":205,"path":109,"seo":1306,"stem":110,"__hash__":1307},"docs/proxy-service/1.defining-services.md",{"type":136,"value":137,"toc":1297},"minimark",[138,147,152,155,352,356,359,534,538,541,686,759,816,820,823,1126,1198,1293],[139,140,141,142,146],"p",{},"There are several different ways to define a services, ",[143,144,145],"code",{},"@webext-core/proxy-service"," works with all of them!",[148,149,151],"h2",{"id":150},"class","Class",[139,153,154],{},"Define a class whose methods are available in other JS contexts:",[156,157,162],"pre",{"className":158,"code":159,"language":160,"meta":161,"style":161},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { IDBPDatabase } from 'idb';\n\nclass TodosRepo {\n  constructor(private db: Promise\u003CIDBPDatabase>) {}\n\n  async getAll(): Promise\u003CTodo[]> {\n    const db = await this.db;\n    return await db.getAll('todos');\n  }\n}\n","ts","",[143,163,164,200,207,220,254,259,287,309,340,346],{"__ignoreMap":161},[165,166,169,173,177,181,184,187,190,194,197],"span",{"class":167,"line":168},"line",1,[165,170,172],{"class":171},"s7zQu","import",[165,174,176],{"class":175},"sMK4o"," {",[165,178,180],{"class":179},"sTEyZ"," IDBPDatabase",[165,182,183],{"class":175}," }",[165,185,186],{"class":171}," from",[165,188,189],{"class":175}," '",[165,191,193],{"class":192},"sfazB","idb",[165,195,196],{"class":175},"'",[165,198,199],{"class":175},";\n",[165,201,203],{"class":167,"line":202},2,[165,204,206],{"emptyLinePlaceholder":205},true,"\n",[165,208,210,213,217],{"class":167,"line":209},3,[165,211,150],{"class":212},"spNyl",[165,214,216],{"class":215},"sBMFI"," TodosRepo",[165,218,219],{"class":175}," {\n",[165,221,223,226,229,232,236,239,242,245,248,251],{"class":167,"line":222},4,[165,224,225],{"class":212},"  constructor",[165,227,228],{"class":175},"(",[165,230,231],{"class":212},"private",[165,233,235],{"class":234},"sHdIc"," db",[165,237,238],{"class":175},":",[165,240,241],{"class":215}," Promise",[165,243,244],{"class":175},"\u003C",[165,246,247],{"class":215},"IDBPDatabase",[165,249,250],{"class":175},">)",[165,252,253],{"class":175}," {}\n",[165,255,257],{"class":167,"line":256},5,[165,258,206],{"emptyLinePlaceholder":205},[165,260,262,265,269,272,274,276,279,282,285],{"class":167,"line":261},6,[165,263,264],{"class":212},"  async",[165,266,268],{"class":267},"swJcz"," getAll",[165,270,271],{"class":175},"():",[165,273,241],{"class":215},[165,275,244],{"class":175},[165,277,278],{"class":215},"Todo",[165,280,281],{"class":179},"[]",[165,283,284],{"class":175},">",[165,286,219],{"class":175},[165,288,290,293,295,298,301,304,307],{"class":167,"line":289},7,[165,291,292],{"class":212},"    const",[165,294,235],{"class":179},[165,296,297],{"class":175}," =",[165,299,300],{"class":171}," await",[165,302,303],{"class":175}," this.",[165,305,306],{"class":179},"db",[165,308,199],{"class":175},[165,310,312,315,317,319,322,326,328,330,333,335,338],{"class":167,"line":311},8,[165,313,314],{"class":171},"    return",[165,316,300],{"class":171},[165,318,235],{"class":179},[165,320,321],{"class":175},".",[165,323,325],{"class":324},"s2Zo4","getAll",[165,327,228],{"class":267},[165,329,196],{"class":175},[165,331,332],{"class":192},"todos",[165,334,196],{"class":175},[165,336,337],{"class":267},")",[165,339,199],{"class":175},[165,341,343],{"class":167,"line":342},9,[165,344,345],{"class":175},"  }\n",[165,347,349],{"class":167,"line":348},10,[165,350,351],{"class":175},"}\n",[148,353,355],{"id":354},"object","Object",[139,357,358],{},"Objects can be used as services as well. All functions defined on the object are available in other contexts.",[156,360,362],{"className":158,"code":361,"language":160,"meta":161,"style":161},"import { IDBPDatabase } from 'idb';\n\nexport interface TodosRepo {\n  getAll(): Promise\u003CTodo[]>;\n}\n\nexport function createTodosRepo(dbPromise: Promise\u003CIDBPDatabase>): TodosRepo {\n  return {\n    async getAll() {\n      const db = await dbPromise;\n      return await db.getAll('todos');\n    },\n  };\n}\n",[143,363,364,384,388,400,418,422,426,456,463,475,491,517,523,529],{"__ignoreMap":161},[165,365,366,368,370,372,374,376,378,380,382],{"class":167,"line":168},[165,367,172],{"class":171},[165,369,176],{"class":175},[165,371,180],{"class":179},[165,373,183],{"class":175},[165,375,186],{"class":171},[165,377,189],{"class":175},[165,379,193],{"class":192},[165,381,196],{"class":175},[165,383,199],{"class":175},[165,385,386],{"class":167,"line":202},[165,387,206],{"emptyLinePlaceholder":205},[165,389,390,393,396,398],{"class":167,"line":209},[165,391,392],{"class":171},"export",[165,394,395],{"class":212}," interface",[165,397,216],{"class":215},[165,399,219],{"class":175},[165,401,402,405,407,409,411,413,415],{"class":167,"line":222},[165,403,404],{"class":267},"  getAll",[165,406,271],{"class":175},[165,408,241],{"class":215},[165,410,244],{"class":175},[165,412,278],{"class":215},[165,414,281],{"class":179},[165,416,417],{"class":175},">;\n",[165,419,420],{"class":167,"line":256},[165,421,351],{"class":175},[165,423,424],{"class":167,"line":261},[165,425,206],{"emptyLinePlaceholder":205},[165,427,428,430,433,436,438,441,443,445,447,449,452,454],{"class":167,"line":289},[165,429,392],{"class":171},[165,431,432],{"class":212}," function",[165,434,435],{"class":324}," createTodosRepo",[165,437,228],{"class":175},[165,439,440],{"class":234},"dbPromise",[165,442,238],{"class":175},[165,444,241],{"class":215},[165,446,244],{"class":175},[165,448,247],{"class":215},[165,450,451],{"class":175},">):",[165,453,216],{"class":215},[165,455,219],{"class":175},[165,457,458,461],{"class":167,"line":311},[165,459,460],{"class":171},"  return",[165,462,219],{"class":175},[165,464,465,468,470,473],{"class":167,"line":342},[165,466,467],{"class":212},"    async",[165,469,268],{"class":267},[165,471,472],{"class":175},"()",[165,474,219],{"class":175},[165,476,477,480,482,484,486,489],{"class":167,"line":348},[165,478,479],{"class":212},"      const",[165,481,235],{"class":179},[165,483,297],{"class":175},[165,485,300],{"class":171},[165,487,488],{"class":179}," dbPromise",[165,490,199],{"class":175},[165,492,494,497,499,501,503,505,507,509,511,513,515],{"class":167,"line":493},11,[165,495,496],{"class":171},"      return",[165,498,300],{"class":171},[165,500,235],{"class":179},[165,502,321],{"class":175},[165,504,325],{"class":324},[165,506,228],{"class":267},[165,508,196],{"class":175},[165,510,332],{"class":192},[165,512,196],{"class":175},[165,514,337],{"class":267},[165,516,199],{"class":175},[165,518,520],{"class":167,"line":519},12,[165,521,522],{"class":175},"    },\n",[165,524,526],{"class":167,"line":525},13,[165,527,528],{"class":175},"  };\n",[165,530,532],{"class":167,"line":531},14,[165,533,351],{"class":175},[148,535,537],{"id":536},"function","Function",[139,539,540],{},"If you only need to define a single function, you can!",[156,542,544],{"className":158,"code":543,"language":160,"meta":161,"style":161},"import { IDBPDatabase } from 'idb';\n\nexport type GetAllTodos = () => Promise\u003CTodo[]>;\n\nexport function createGetAllTodos(dbPromise: Promise\u003CIDBPDatabase>) {\n  return async () => {\n    const db = await dbPromise;\n    return await db.getAll('todos');\n  };\n}\n",[143,545,546,566,570,598,602,627,640,654,678,682],{"__ignoreMap":161},[165,547,548,550,552,554,556,558,560,562,564],{"class":167,"line":168},[165,549,172],{"class":171},[165,551,176],{"class":175},[165,553,180],{"class":179},[165,555,183],{"class":175},[165,557,186],{"class":171},[165,559,189],{"class":175},[165,561,193],{"class":192},[165,563,196],{"class":175},[165,565,199],{"class":175},[165,567,568],{"class":167,"line":202},[165,569,206],{"emptyLinePlaceholder":205},[165,571,572,574,577,580,582,585,588,590,592,594,596],{"class":167,"line":209},[165,573,392],{"class":171},[165,575,576],{"class":212}," type",[165,578,579],{"class":215}," GetAllTodos",[165,581,297],{"class":175},[165,583,584],{"class":175}," ()",[165,586,587],{"class":212}," =>",[165,589,241],{"class":215},[165,591,244],{"class":175},[165,593,278],{"class":215},[165,595,281],{"class":179},[165,597,417],{"class":175},[165,599,600],{"class":167,"line":222},[165,601,206],{"emptyLinePlaceholder":205},[165,603,604,606,608,611,613,615,617,619,621,623,625],{"class":167,"line":256},[165,605,392],{"class":171},[165,607,432],{"class":212},[165,609,610],{"class":324}," createGetAllTodos",[165,612,228],{"class":175},[165,614,440],{"class":234},[165,616,238],{"class":175},[165,618,241],{"class":215},[165,620,244],{"class":175},[165,622,247],{"class":215},[165,624,250],{"class":175},[165,626,219],{"class":175},[165,628,629,631,634,636,638],{"class":167,"line":261},[165,630,460],{"class":171},[165,632,633],{"class":212}," async",[165,635,584],{"class":175},[165,637,587],{"class":212},[165,639,219],{"class":175},[165,641,642,644,646,648,650,652],{"class":167,"line":289},[165,643,292],{"class":212},[165,645,235],{"class":179},[165,647,297],{"class":175},[165,649,300],{"class":171},[165,651,488],{"class":179},[165,653,199],{"class":175},[165,655,656,658,660,662,664,666,668,670,672,674,676],{"class":167,"line":311},[165,657,314],{"class":171},[165,659,300],{"class":171},[165,661,235],{"class":179},[165,663,321],{"class":175},[165,665,325],{"class":324},[165,667,228],{"class":267},[165,669,196],{"class":175},[165,671,332],{"class":192},[165,673,196],{"class":175},[165,675,337],{"class":267},[165,677,199],{"class":175},[165,679,680],{"class":167,"line":342},[165,681,528],{"class":175},[165,683,684],{"class":167,"line":348},[165,685,351],{"class":175},[156,687,689],{"className":158,"code":688,"language":160,"meta":161,"style":161},"const db = openDB('todos');\nconst getAllTodos = createGetAllTodos(db);\n\nregisterService('get-all-todos', getAllTodos);\n",[143,690,691,717,733,737],{"__ignoreMap":161},[165,692,693,696,699,702,705,707,709,711,713,715],{"class":167,"line":168},[165,694,695],{"class":212},"const",[165,697,698],{"class":179}," db ",[165,700,701],{"class":175},"=",[165,703,704],{"class":324}," openDB",[165,706,228],{"class":179},[165,708,196],{"class":175},[165,710,332],{"class":192},[165,712,196],{"class":175},[165,714,337],{"class":179},[165,716,199],{"class":175},[165,718,719,721,724,726,728,731],{"class":167,"line":202},[165,720,695],{"class":212},[165,722,723],{"class":179}," getAllTodos ",[165,725,701],{"class":175},[165,727,610],{"class":324},[165,729,730],{"class":179},"(db)",[165,732,199],{"class":175},[165,734,735],{"class":167,"line":209},[165,736,206],{"emptyLinePlaceholder":205},[165,738,739,742,744,746,749,751,754,757],{"class":167,"line":222},[165,740,741],{"class":324},"registerService",[165,743,228],{"class":179},[165,745,196],{"class":175},[165,747,748],{"class":192},"get-all-todos",[165,750,196],{"class":175},[165,752,753],{"class":175},",",[165,755,756],{"class":179}," getAllTodos)",[165,758,199],{"class":175},[156,760,762],{"className":158,"code":761,"language":160,"meta":161,"style":161},"const getAllTodos = createProxyService\u003CGetAllTodos>('get-all-todos');\n\nconst todos = await getAllTodos();\n",[143,763,764,794,798],{"__ignoreMap":161},[165,765,766,768,770,772,775,777,780,782,784,786,788,790,792],{"class":167,"line":168},[165,767,695],{"class":212},[165,769,723],{"class":179},[165,771,701],{"class":175},[165,773,774],{"class":324}," createProxyService",[165,776,244],{"class":175},[165,778,779],{"class":215},"GetAllTodos",[165,781,284],{"class":175},[165,783,228],{"class":179},[165,785,196],{"class":175},[165,787,748],{"class":192},[165,789,196],{"class":175},[165,791,337],{"class":179},[165,793,199],{"class":175},[165,795,796],{"class":167,"line":202},[165,797,206],{"emptyLinePlaceholder":205},[165,799,800,802,805,807,809,812,814],{"class":167,"line":209},[165,801,695],{"class":212},[165,803,804],{"class":179}," todos ",[165,806,701],{"class":175},[165,808,300],{"class":171},[165,810,811],{"class":324}," getAllTodos",[165,813,472],{"class":179},[165,815,199],{"class":175},[148,817,819],{"id":818},"nested-objects","Nested Objects",[139,821,822],{},"If you need to register \"deep\" objects containing multiple services, you can do that as well. You can use classes, objects, and functions at any level.",[156,824,826],{"className":158,"code":825,"language":160,"meta":161,"style":161},"class TodosRepo {\n  constructor(private db: Promise\u003CIDBPDatabase>) {}\n\n  async getAll(): Promise\u003CTodo[]> {\n    return (await this.db).getAll('todos');\n  }\n}\n\nconst createAuthorsRepo = (db: Promise\u003CIDBPDatabase>) => ({\n  async getOne(id: string): Promise\u003CTodo[]> {\n    return (await this.db).getAll('authors', id);\n  },\n});\n\nexport function createApi(db: Promise\u003CIDBPDatabase>) {\n  return {\n    todos: new TodosRepo(db),\n    authors: createAuthorsRepo(db),\n  };\n}\n",[143,827,828,836,858,862,882,914,918,922,926,956,988,1024,1029,1038,1042,1068,1075,1097,1116,1121],{"__ignoreMap":161},[165,829,830,832,834],{"class":167,"line":168},[165,831,150],{"class":212},[165,833,216],{"class":215},[165,835,219],{"class":175},[165,837,838,840,842,844,846,848,850,852,854,856],{"class":167,"line":202},[165,839,225],{"class":212},[165,841,228],{"class":175},[165,843,231],{"class":212},[165,845,235],{"class":234},[165,847,238],{"class":175},[165,849,241],{"class":215},[165,851,244],{"class":175},[165,853,247],{"class":215},[165,855,250],{"class":175},[165,857,253],{"class":175},[165,859,860],{"class":167,"line":209},[165,861,206],{"emptyLinePlaceholder":205},[165,863,864,866,868,870,872,874,876,878,880],{"class":167,"line":222},[165,865,264],{"class":212},[165,867,268],{"class":267},[165,869,271],{"class":175},[165,871,241],{"class":215},[165,873,244],{"class":175},[165,875,278],{"class":215},[165,877,281],{"class":179},[165,879,284],{"class":175},[165,881,219],{"class":175},[165,883,884,886,889,892,894,896,898,900,902,904,906,908,910,912],{"class":167,"line":256},[165,885,314],{"class":171},[165,887,888],{"class":267}," (",[165,890,891],{"class":171},"await",[165,893,303],{"class":175},[165,895,306],{"class":179},[165,897,337],{"class":267},[165,899,321],{"class":175},[165,901,325],{"class":324},[165,903,228],{"class":267},[165,905,196],{"class":175},[165,907,332],{"class":192},[165,909,196],{"class":175},[165,911,337],{"class":267},[165,913,199],{"class":175},[165,915,916],{"class":167,"line":261},[165,917,345],{"class":175},[165,919,920],{"class":167,"line":289},[165,921,351],{"class":175},[165,923,924],{"class":167,"line":311},[165,925,206],{"emptyLinePlaceholder":205},[165,927,928,930,933,935,937,939,941,943,945,947,949,951,953],{"class":167,"line":342},[165,929,695],{"class":212},[165,931,932],{"class":179}," createAuthorsRepo ",[165,934,701],{"class":175},[165,936,888],{"class":175},[165,938,306],{"class":234},[165,940,238],{"class":175},[165,942,241],{"class":215},[165,944,244],{"class":175},[165,946,247],{"class":215},[165,948,250],{"class":175},[165,950,587],{"class":212},[165,952,888],{"class":179},[165,954,955],{"class":175},"{\n",[165,957,958,960,963,965,968,970,973,976,978,980,982,984,986],{"class":167,"line":348},[165,959,264],{"class":212},[165,961,962],{"class":267}," getOne",[165,964,228],{"class":175},[165,966,967],{"class":234},"id",[165,969,238],{"class":175},[165,971,972],{"class":215}," string",[165,974,975],{"class":175},"):",[165,977,241],{"class":215},[165,979,244],{"class":175},[165,981,278],{"class":215},[165,983,281],{"class":179},[165,985,284],{"class":175},[165,987,219],{"class":175},[165,989,990,992,994,996,998,1000,1002,1004,1006,1008,1010,1013,1015,1017,1020,1022],{"class":167,"line":493},[165,991,314],{"class":171},[165,993,888],{"class":267},[165,995,891],{"class":171},[165,997,303],{"class":175},[165,999,306],{"class":179},[165,1001,337],{"class":267},[165,1003,321],{"class":175},[165,1005,325],{"class":324},[165,1007,228],{"class":267},[165,1009,196],{"class":175},[165,1011,1012],{"class":192},"authors",[165,1014,196],{"class":175},[165,1016,753],{"class":175},[165,1018,1019],{"class":179}," id",[165,1021,337],{"class":267},[165,1023,199],{"class":175},[165,1025,1026],{"class":167,"line":519},[165,1027,1028],{"class":175},"  },\n",[165,1030,1031,1034,1036],{"class":167,"line":525},[165,1032,1033],{"class":175},"}",[165,1035,337],{"class":179},[165,1037,199],{"class":175},[165,1039,1040],{"class":167,"line":531},[165,1041,206],{"emptyLinePlaceholder":205},[165,1043,1045,1047,1049,1052,1054,1056,1058,1060,1062,1064,1066],{"class":167,"line":1044},15,[165,1046,392],{"class":171},[165,1048,432],{"class":212},[165,1050,1051],{"class":324}," createApi",[165,1053,228],{"class":175},[165,1055,306],{"class":234},[165,1057,238],{"class":175},[165,1059,241],{"class":215},[165,1061,244],{"class":175},[165,1063,247],{"class":215},[165,1065,250],{"class":175},[165,1067,219],{"class":175},[165,1069,1071,1073],{"class":167,"line":1070},16,[165,1072,460],{"class":171},[165,1074,219],{"class":175},[165,1076,1078,1081,1083,1086,1088,1090,1092,1094],{"class":167,"line":1077},17,[165,1079,1080],{"class":267},"    todos",[165,1082,238],{"class":175},[165,1084,1085],{"class":175}," new",[165,1087,216],{"class":324},[165,1089,228],{"class":267},[165,1091,306],{"class":179},[165,1093,337],{"class":267},[165,1095,1096],{"class":175},",\n",[165,1098,1100,1103,1105,1108,1110,1112,1114],{"class":167,"line":1099},18,[165,1101,1102],{"class":267},"    authors",[165,1104,238],{"class":175},[165,1106,1107],{"class":324}," createAuthorsRepo",[165,1109,228],{"class":267},[165,1111,306],{"class":179},[165,1113,337],{"class":267},[165,1115,1096],{"class":175},[165,1117,1119],{"class":167,"line":1118},19,[165,1120,528],{"class":175},[165,1122,1124],{"class":167,"line":1123},20,[165,1125,351],{"class":175},[156,1127,1129],{"className":158,"code":1128,"language":160,"meta":161,"style":161},"const db = openDB('todos', ...);\nconst api = createApi(db);\n\nregisterService(\"api\", api);\n",[143,1130,1131,1158,1173,1177],{"__ignoreMap":161},[165,1132,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1154,1156],{"class":167,"line":168},[165,1134,695],{"class":212},[165,1136,698],{"class":179},[165,1138,701],{"class":175},[165,1140,704],{"class":324},[165,1142,228],{"class":179},[165,1144,196],{"class":175},[165,1146,332],{"class":192},[165,1148,196],{"class":175},[165,1150,753],{"class":175},[165,1152,1153],{"class":175}," ...",[165,1155,337],{"class":179},[165,1157,199],{"class":175},[165,1159,1160,1162,1165,1167,1169,1171],{"class":167,"line":202},[165,1161,695],{"class":212},[165,1163,1164],{"class":179}," api ",[165,1166,701],{"class":175},[165,1168,1051],{"class":324},[165,1170,730],{"class":179},[165,1172,199],{"class":175},[165,1174,1175],{"class":167,"line":209},[165,1176,206],{"emptyLinePlaceholder":205},[165,1178,1179,1181,1183,1186,1189,1191,1193,1196],{"class":167,"line":222},[165,1180,741],{"class":324},[165,1182,228],{"class":179},[165,1184,1185],{"class":175},"\"",[165,1187,1188],{"class":192},"api",[165,1190,1185],{"class":175},[165,1192,753],{"class":175},[165,1194,1195],{"class":179}," api)",[165,1197,199],{"class":175},[156,1199,1201],{"className":158,"code":1200,"language":160,"meta":161,"style":161},"const api = createProxyService\u003CAPI>('api');\n\nconst todos = await api.todos.getAll();\nconst firstAuthor = await api.authors.getOne(todos.authorId);\n",[143,1202,1203,1232,1236,1261],{"__ignoreMap":161},[165,1204,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1230],{"class":167,"line":168},[165,1206,695],{"class":212},[165,1208,1164],{"class":179},[165,1210,701],{"class":175},[165,1212,774],{"class":324},[165,1214,244],{"class":175},[165,1216,1217],{"class":215},"API",[165,1219,284],{"class":175},[165,1221,228],{"class":179},[165,1223,196],{"class":175},[165,1225,1188],{"class":192},[165,1227,196],{"class":175},[165,1229,337],{"class":179},[165,1231,199],{"class":175},[165,1233,1234],{"class":167,"line":202},[165,1235,206],{"emptyLinePlaceholder":205},[165,1237,1238,1240,1242,1244,1246,1249,1251,1253,1255,1257,1259],{"class":167,"line":209},[165,1239,695],{"class":212},[165,1241,804],{"class":179},[165,1243,701],{"class":175},[165,1245,300],{"class":171},[165,1247,1248],{"class":179}," api",[165,1250,321],{"class":175},[165,1252,332],{"class":179},[165,1254,321],{"class":175},[165,1256,325],{"class":324},[165,1258,472],{"class":179},[165,1260,199],{"class":175},[165,1262,1263,1265,1268,1270,1272,1274,1276,1278,1280,1283,1286,1288,1291],{"class":167,"line":222},[165,1264,695],{"class":212},[165,1266,1267],{"class":179}," firstAuthor ",[165,1269,701],{"class":175},[165,1271,300],{"class":171},[165,1273,1248],{"class":179},[165,1275,321],{"class":175},[165,1277,1012],{"class":179},[165,1279,321],{"class":175},[165,1281,1282],{"class":324},"getOne",[165,1284,1285],{"class":179},"(todos",[165,1287,321],{"class":175},[165,1289,1290],{"class":179},"authorId)",[165,1292,199],{"class":175},[1294,1295,1296],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":161,"searchDepth":202,"depth":202,"links":1298},[1299,1300,1301,1302],{"id":150,"depth":202,"text":151},{"id":354,"depth":202,"text":355},{"id":536,"depth":202,"text":537},{"id":818,"depth":202,"text":819},"md",null,{"toc":205},{"title":108,"description":161},"KDbXfoyf9bEzFzdVAXJpAEvXlE97eDutocgdiCCEQuQ",[1309,1310],{"title":28,"path":105,"stem":106,"description":161,"children":-1},{"title":112,"path":113,"stem":114,"description":161,"children":-1},1779300019969]