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