From 0bdb018ad42f9b52aa948759281ddecfac1b16b4 Mon Sep 17 00:00:00 2001
From: Alexander Skvortsov <sasha.skvortsov109@gmail.com>
Date: Wed, 1 Dec 2021 16:04:15 -0500
Subject: [PATCH] Add meta to ApiPayload interfaces

---
 js/src/common/Model.ts |  4 ++--
 js/src/common/Store.ts | 14 ++++++++------
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/js/src/common/Model.ts b/js/src/common/Model.ts
index 160ec0eb0..e5ddcb190 100644
--- a/js/src/common/Model.ts
+++ b/js/src/common/Model.ts
@@ -1,6 +1,6 @@
 import app from '../common/app';
 import { FlarumRequestOptions } from './Application';
-import Store, { ApiPayloadSingle, ApiResponseSingle } from './Store';
+import Store, { ApiPayloadSingle, ApiResponseSingle, MetaInformation } from './Store';
 
 export interface ModelIdentifier {
   type: string;
@@ -162,7 +162,7 @@ export default abstract class Model {
    */
   save(
     attributes: SaveAttributes,
-    options: Omit<FlarumRequestOptions<ApiPayloadSingle>, 'url'> & { meta?: any } = {}
+    options: Omit<FlarumRequestOptions<ApiPayloadSingle>, 'url'> & { meta?: MetaInformation } = {}
   ): Promise<ApiResponseSingle<this>> {
     const data: ModelData & { id?: string } = {
       type: this.data.type,
diff --git a/js/src/common/Store.ts b/js/src/common/Store.ts
index 6fb375101..57f7320d7 100644
--- a/js/src/common/Store.ts
+++ b/js/src/common/Store.ts
@@ -2,13 +2,15 @@ import app from '../common/app';
 import { FlarumRequestOptions } from './Application';
 import Model, { ModelData, SavedModelData } from './Model';
 
+export interface MetaInformation {
+  [key: string]: any;
+}
+
 export interface ApiQueryParamsSingle {
   fields?: string[];
   include?: string;
   bySlug?: boolean;
-  meta?: {
-    [key: string]: any;
-  };
+  meta?: MetaInformation;
 }
 
 export interface ApiQueryParamsPlural {
@@ -25,9 +27,7 @@ export interface ApiQueryParamsPlural {
     size?: number;
   };
   sort?: string;
-  meta?: {
-    [key: string]: any;
-  };
+  meta?: MetaInformation;
 }
 
 export type ApiQueryParams = ApiQueryParamsPlural | ApiQueryParamsSingle;
@@ -35,6 +35,7 @@ export type ApiQueryParams = ApiQueryParamsPlural | ApiQueryParamsSingle;
 export interface ApiPayloadSingle {
   data: SavedModelData;
   included?: SavedModelData[];
+  meta?: MetaInformation;
 }
 
 export interface ApiPayloadPlural {
@@ -45,6 +46,7 @@ export interface ApiPayloadPlural {
     next?: string;
     prev?: string;
   };
+  meta?: MetaInformation;
 }
 
 export type ApiPayload = ApiPayloadSingle | ApiPayloadPlural;