@websolutespa/bom-mixer-store 1.4.3 → 1.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @websolutespa/bom-mixer-store
2
2
 
3
+ ## 1.4.5
4
+
5
+ ### Patch Changes
6
+
7
+ - Fixing: decorateSchema
8
+
9
+ ## 1.4.4
10
+
11
+ ### Patch Changes
12
+
13
+ - Added: Schema decorator
14
+ - Modified: RemoteMenuService, RemotePageService, RemoteService
15
+ - Updated dependencies
16
+ - @websolutespa/bom-core@0.6.5
17
+
3
18
  ## 1.4.3
4
19
 
5
20
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -41,6 +41,13 @@ declare const SERVICE_DEFAULT_DEPTH = 2;
41
41
  declare function decorateRelation_<T extends ISchema = ISchema>(store: IStore, item: T, params?: QueryParams): Promise<T>;
42
42
  declare function decorateRelations_<T extends ISchema = ISchema>(store: IStore, items: T[], params?: QueryParams): Promise<T[]>;
43
43
 
44
+ declare function decorateSchema_<T extends ISchema = ISchema>(store: IStore, item: T, schema: string): Promise<T | T & {
45
+ schema: string;
46
+ }>;
47
+ declare function decorateSchemas_<T extends ISchema = ISchema>(store: IStore, items: T[], schema: string): Promise<(T & {
48
+ schema: string;
49
+ })[]>;
50
+
44
51
  declare function getLocalApiUrl(pathname: string): string;
45
52
  declare function localApiFetch<T = unknown>(pathname: string, options?: ApiRequestOptions, serviceOptions?: {
46
53
  locale: string;
@@ -210,4 +217,4 @@ declare function findRoute(store: IStore, pathname: string, href: string): Promi
210
217
 
211
218
  declare function getStore<T extends IStore>(): Promise<T>;
212
219
 
213
- export { ApiRequestOptions, BuildStrategy, COLLECTIONS, IApiHandler, ICrudMethod, IField, IHandler, KNOWN_COLLECTIONS, MAX_INT, MOCK_COLLECTIONS, MapTo, MockMenuService, MockPageService, MockService, NextPhase, RemoteMenuService, RemotePageService, RemoteService, SERVICE_DEFAULT_DEPTH, STATIC_COLLECTIONS, StaticService, StaticServiceConfig, StaticServiceSrc, StoreStrategy, apiHandler, buildStrategy, collectionDelete, collectionGet, collectionPatch, collectionPost, decorateHref_, decorateHrefs_, decorateMenu_, decorateMenus_, decorateNav_, decorateNavs_, decorateRelation_, decorateRelations_, decorateStaticRelation_, decorateStaticRelations_, defaultApiRequestOptions, errorHandler, findRoute, fromCache, getDefaultApiRequestOptions, getLocalApiUrl, getMockStore, getMockStoreFromData_, getRemoteStore, getStore, isApiRequest, isNextRequest, isStaticRequest, localApiDelete, localApiFetch, localApiGet, localApiPatch, localApiPost, localApiPut, localizeItem_, localizeItems_, mockApiDelete, mockApiFetch, mockApiGet, mockApiPatch, mockApiPost, mockApiPut, mockHandler, nextPhase, remoteApiDelete, remoteApiFetch, remoteApiGet, remoteApiPatch, remoteApiPost, remoteApiPut, routePost, staticCollections, storeApiDelete, storeApiGet, storeApiPatch, storeApiPost, storeApiPut, storeCacheDuration, storeHandler, storeIndexHandler, storeStrategy };
220
+ export { ApiRequestOptions, BuildStrategy, COLLECTIONS, IApiHandler, ICrudMethod, IField, IHandler, KNOWN_COLLECTIONS, MAX_INT, MOCK_COLLECTIONS, MapTo, MockMenuService, MockPageService, MockService, NextPhase, RemoteMenuService, RemotePageService, RemoteService, SERVICE_DEFAULT_DEPTH, STATIC_COLLECTIONS, StaticService, StaticServiceConfig, StaticServiceSrc, StoreStrategy, apiHandler, buildStrategy, collectionDelete, collectionGet, collectionPatch, collectionPost, decorateHref_, decorateHrefs_, decorateMenu_, decorateMenus_, decorateNav_, decorateNavs_, decorateRelation_, decorateRelations_, decorateSchema_, decorateSchemas_, decorateStaticRelation_, decorateStaticRelations_, defaultApiRequestOptions, errorHandler, findRoute, fromCache, getDefaultApiRequestOptions, getLocalApiUrl, getMockStore, getMockStoreFromData_, getRemoteStore, getStore, isApiRequest, isNextRequest, isStaticRequest, localApiDelete, localApiFetch, localApiGet, localApiPatch, localApiPost, localApiPut, localizeItem_, localizeItems_, mockApiDelete, mockApiFetch, mockApiGet, mockApiPatch, mockApiPost, mockApiPut, mockHandler, nextPhase, remoteApiDelete, remoteApiFetch, remoteApiGet, remoteApiPatch, remoteApiPost, remoteApiPut, routePost, staticCollections, storeApiDelete, storeApiGet, storeApiPatch, storeApiPost, storeApiPut, storeCacheDuration, storeHandler, storeIndexHandler, storeStrategy };
package/dist/index.js CHANGED
@@ -60,6 +60,8 @@ __export(src_exports, {
60
60
  decorateNavs_: () => decorateNavs_,
61
61
  decorateRelation_: () => decorateRelation_,
62
62
  decorateRelations_: () => decorateRelations_,
63
+ decorateSchema_: () => decorateSchema_,
64
+ decorateSchemas_: () => decorateSchemas_,
63
65
  decorateStaticRelation_: () => decorateStaticRelation_,
64
66
  decorateStaticRelations_: () => decorateStaticRelations_,
65
67
  defaultApiRequestOptions: () => defaultApiRequestOptions,
@@ -509,6 +511,16 @@ function collectRelations_(item, relations = []) {
509
511
  return relations;
510
512
  }
511
513
 
514
+ // src/decorators/schema.ts
515
+ async function decorateSchema_(store, item, schema) {
516
+ return { ...item, schema: item.schema || schema };
517
+ }
518
+ async function decorateSchemas_(store, items, schema) {
519
+ return items.map((item) => {
520
+ return { ...item, schema: item.schema || schema };
521
+ });
522
+ }
523
+
512
524
  // src/local/local.api.ts
513
525
  var import_bom_core5 = require("@websolutespa/bom-core");
514
526
  var API_URL = process.env.NEXT_PUBLIC_URL === "https://" ? process.env.NEXT_PUBLIC_MOCK_FALLBACK_URL : process.env.NEXT_PUBLIC_URL;
@@ -1350,10 +1362,14 @@ var RemoteService = class {
1350
1362
  return await this.decorateOne_(item, {});
1351
1363
  }
1352
1364
  async decorateOne_(item, params = {}) {
1353
- return item;
1365
+ let decoratedItem = item;
1366
+ decoratedItem = await decorateSchema_(this.store, decoratedItem, this.key);
1367
+ return decoratedItem;
1354
1368
  }
1355
1369
  async decorateMany_(items, params = {}) {
1356
- return items;
1370
+ let decoratedItems = items;
1371
+ decoratedItems = await decorateSchemas_(this.store, decoratedItems, this.key);
1372
+ return decoratedItems;
1357
1373
  }
1358
1374
  };
1359
1375
 
@@ -1362,6 +1378,7 @@ var RemoteMenuService = class extends RemoteService {
1362
1378
  async decorateOne_(item, params = {}) {
1363
1379
  const store = this.store;
1364
1380
  let decoratedItem = item;
1381
+ decoratedItem = await decorateSchema_(store, decoratedItem, this.key);
1365
1382
  decoratedItem = await localizeItem_(item, params);
1366
1383
  if (params.market && params.locale) {
1367
1384
  decoratedItem = await decorateMenu_(store, decoratedItem, {
@@ -1374,6 +1391,7 @@ var RemoteMenuService = class extends RemoteService {
1374
1391
  async decorateMany_(items, params = {}) {
1375
1392
  const store = this.store;
1376
1393
  let decoratedItems = items;
1394
+ decoratedItems = await decorateSchemas_(store, decoratedItems, this.key);
1377
1395
  decoratedItems = await localizeItems_(items, params);
1378
1396
  if (params.market && params.locale) {
1379
1397
  decoratedItems = await decorateMenus_(store, decoratedItems, {
@@ -1390,6 +1408,8 @@ var RemotePageService = class extends RemoteService {
1390
1408
  async decorateOne_(item, params = {}) {
1391
1409
  const store = this.store;
1392
1410
  let decoratedItem = item;
1411
+ decoratedItem = await decorateSchema_(store, decoratedItem, this.key);
1412
+ decoratedItem = await decorateHref_(store, decoratedItem, params);
1393
1413
  decoratedItem = await decorateNav_(store, decoratedItem, params);
1394
1414
  decoratedItem = await decorateRelation_(store, decoratedItem, {
1395
1415
  market: params.market,
@@ -1401,6 +1421,8 @@ var RemotePageService = class extends RemoteService {
1401
1421
  async decorateMany_(items, params = {}) {
1402
1422
  const store = this.store;
1403
1423
  let decoratedItems = items;
1424
+ decoratedItems = await decorateSchemas_(store, decoratedItems, this.key);
1425
+ decoratedItems = await decorateHrefs_(store, decoratedItems, params);
1404
1426
  decoratedItems = await decorateNavs_(store, decoratedItems, params);
1405
1427
  decoratedItems = await decorateRelations_(store, decoratedItems, {
1406
1428
  market: params.market,
@@ -1905,6 +1927,8 @@ async function storeApiDelete(url, options = {}) {
1905
1927
  decorateNavs_,
1906
1928
  decorateRelation_,
1907
1929
  decorateRelations_,
1930
+ decorateSchema_,
1931
+ decorateSchemas_,
1908
1932
  decorateStaticRelation_,
1909
1933
  decorateStaticRelations_,
1910
1934
  defaultApiRequestOptions,
package/dist/index.mjs CHANGED
@@ -408,6 +408,16 @@ function collectRelations_(item, relations = []) {
408
408
  return relations;
409
409
  }
410
410
 
411
+ // src/decorators/schema.ts
412
+ async function decorateSchema_(store, item, schema) {
413
+ return { ...item, schema: item.schema || schema };
414
+ }
415
+ async function decorateSchemas_(store, items, schema) {
416
+ return items.map((item) => {
417
+ return { ...item, schema: item.schema || schema };
418
+ });
419
+ }
420
+
411
421
  // src/local/local.api.ts
412
422
  import { httpFetch, isBrowser, merge } from "@websolutespa/bom-core";
413
423
  var API_URL = process.env.NEXT_PUBLIC_URL === "https://" ? process.env.NEXT_PUBLIC_MOCK_FALLBACK_URL : process.env.NEXT_PUBLIC_URL;
@@ -1249,10 +1259,14 @@ var RemoteService = class {
1249
1259
  return await this.decorateOne_(item, {});
1250
1260
  }
1251
1261
  async decorateOne_(item, params = {}) {
1252
- return item;
1262
+ let decoratedItem = item;
1263
+ decoratedItem = await decorateSchema_(this.store, decoratedItem, this.key);
1264
+ return decoratedItem;
1253
1265
  }
1254
1266
  async decorateMany_(items, params = {}) {
1255
- return items;
1267
+ let decoratedItems = items;
1268
+ decoratedItems = await decorateSchemas_(this.store, decoratedItems, this.key);
1269
+ return decoratedItems;
1256
1270
  }
1257
1271
  };
1258
1272
 
@@ -1261,6 +1275,7 @@ var RemoteMenuService = class extends RemoteService {
1261
1275
  async decorateOne_(item, params = {}) {
1262
1276
  const store = this.store;
1263
1277
  let decoratedItem = item;
1278
+ decoratedItem = await decorateSchema_(store, decoratedItem, this.key);
1264
1279
  decoratedItem = await localizeItem_(item, params);
1265
1280
  if (params.market && params.locale) {
1266
1281
  decoratedItem = await decorateMenu_(store, decoratedItem, {
@@ -1273,6 +1288,7 @@ var RemoteMenuService = class extends RemoteService {
1273
1288
  async decorateMany_(items, params = {}) {
1274
1289
  const store = this.store;
1275
1290
  let decoratedItems = items;
1291
+ decoratedItems = await decorateSchemas_(store, decoratedItems, this.key);
1276
1292
  decoratedItems = await localizeItems_(items, params);
1277
1293
  if (params.market && params.locale) {
1278
1294
  decoratedItems = await decorateMenus_(store, decoratedItems, {
@@ -1289,6 +1305,8 @@ var RemotePageService = class extends RemoteService {
1289
1305
  async decorateOne_(item, params = {}) {
1290
1306
  const store = this.store;
1291
1307
  let decoratedItem = item;
1308
+ decoratedItem = await decorateSchema_(store, decoratedItem, this.key);
1309
+ decoratedItem = await decorateHref_(store, decoratedItem, params);
1292
1310
  decoratedItem = await decorateNav_(store, decoratedItem, params);
1293
1311
  decoratedItem = await decorateRelation_(store, decoratedItem, {
1294
1312
  market: params.market,
@@ -1300,6 +1318,8 @@ var RemotePageService = class extends RemoteService {
1300
1318
  async decorateMany_(items, params = {}) {
1301
1319
  const store = this.store;
1302
1320
  let decoratedItems = items;
1321
+ decoratedItems = await decorateSchemas_(store, decoratedItems, this.key);
1322
+ decoratedItems = await decorateHrefs_(store, decoratedItems, params);
1303
1323
  decoratedItems = await decorateNavs_(store, decoratedItems, params);
1304
1324
  decoratedItems = await decorateRelations_(store, decoratedItems, {
1305
1325
  market: params.market,
@@ -1803,6 +1823,8 @@ export {
1803
1823
  decorateNavs_,
1804
1824
  decorateRelation_,
1805
1825
  decorateRelations_,
1826
+ decorateSchema_,
1827
+ decorateSchemas_,
1806
1828
  decorateStaticRelation_,
1807
1829
  decorateStaticRelations_,
1808
1830
  defaultApiRequestOptions,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@websolutespa/bom-mixer-store",
3
- "version": "1.4.3",
3
+ "version": "1.4.5",
4
4
  "description": "Mixer Store module of the BOM Repository",
5
5
  "keywords": [
6
6
  "bom",
@@ -3,4 +3,5 @@ export * from './localize';
3
3
  export * from './menu';
4
4
  export * from './nav';
5
5
  export * from './relation';
6
+ export * from './schema';
6
7
 
@@ -0,0 +1,11 @@
1
+ import { ISchema, IStore } from '@websolutespa/bom-core';
2
+
3
+ export async function decorateSchema_<T extends ISchema = ISchema>(store: IStore, item: T, schema: string): Promise<T | T & { schema: string }> {
4
+ return { ...item, schema: item.schema || schema };
5
+ }
6
+
7
+ export async function decorateSchemas_<T extends ISchema = ISchema>(store: IStore, items: T[], schema: string): Promise<(T & { schema: string })[]> {
8
+ return items.map(item => {
9
+ return { ...item, schema: item.schema || schema };
10
+ });
11
+ }
@@ -8,7 +8,6 @@ export class MockMenuService<T extends IEntity = IEntity> extends MockService<T>
8
8
  const store = this.store;
9
9
  let decoratedItem = item;
10
10
  decoratedItem = await localizeItem_(item, params);
11
- // decoratedItem = await decorateHref_<B>(store, decoratedItem, params);
12
11
  if (params.market && params.locale) {
13
12
  decoratedItem = await decorateMenu_(store, decoratedItem as any as IUndecoratedMenu, {
14
13
  market: params.market,
@@ -22,7 +21,6 @@ export class MockMenuService<T extends IEntity = IEntity> extends MockService<T>
22
21
  const store = this.store;
23
22
  let decoratedItems = items;
24
23
  decoratedItems = await localizeItems_(items, params);
25
- // decoratedItems = await decorateHrefs_<B>(store, decoratedItems, params);
26
24
  if (params.market && params.locale) {
27
25
  decoratedItems = await decorateMenus_(store, decoratedItems as any as IUndecoratedMenu[], {
28
26
  market: params.market,
@@ -1,5 +1,5 @@
1
1
  import { IEntity, IUndecoratedMenu, QueryParams } from '@websolutespa/bom-core';
2
- import { decorateMenu_, decorateMenus_, localizeItem_, localizeItems_ } from '../decorators';
2
+ import { decorateMenu_, decorateMenus_, decorateSchema_, decorateSchemas_, localizeItem_, localizeItems_ } from '../decorators';
3
3
  import { RemoteService } from './remote.service';
4
4
 
5
5
  export class RemoteMenuService<T extends IEntity = IEntity> extends RemoteService<T> {
@@ -7,9 +7,10 @@ export class RemoteMenuService<T extends IEntity = IEntity> extends RemoteServic
7
7
  protected override async decorateOne_<B extends T = T>(item: B, params: QueryParams = {}): Promise<B> {
8
8
  const store = this.store;
9
9
  let decoratedItem = item;
10
+ decoratedItem = await decorateSchema_<B>(store, decoratedItem, this.key);
10
11
  decoratedItem = await localizeItem_(item, params);
11
12
  if (params.market && params.locale) {
12
- decoratedItem = await decorateMenu_(store, decoratedItem as any as IUndecoratedMenu, {
13
+ decoratedItem = await decorateMenu_(store, decoratedItem as IUndecoratedMenu, {
13
14
  market: params.market,
14
15
  locale: params.locale,
15
16
  }) as any;
@@ -20,9 +21,10 @@ export class RemoteMenuService<T extends IEntity = IEntity> extends RemoteServic
20
21
  protected override async decorateMany_<B extends T = T>(items: B[], params: QueryParams = {}): Promise<B[]> {
21
22
  const store = this.store;
22
23
  let decoratedItems = items;
24
+ decoratedItems = await decorateSchemas_<B>(store, decoratedItems, this.key);
23
25
  decoratedItems = await localizeItems_(items, params);
24
26
  if (params.market && params.locale) {
25
- decoratedItems = await decorateMenus_(store, decoratedItems as any as IUndecoratedMenu[], {
27
+ decoratedItems = await decorateMenus_(store, decoratedItems as IUndecoratedMenu[], {
26
28
  market: params.market,
27
29
  locale: params.locale,
28
30
  }) as any[];
@@ -1,5 +1,5 @@
1
1
  import { IEntity, QueryParams } from '@websolutespa/bom-core';
2
- import { decorateNav_, decorateNavs_, decorateRelation_, decorateRelations_ } from '../decorators';
2
+ import { decorateHref_, decorateHrefs_, decorateNav_, decorateNavs_, decorateRelation_, decorateRelations_, decorateSchema_, decorateSchemas_ } from '../decorators';
3
3
  import { RemoteService } from './remote.service';
4
4
 
5
5
  export class RemotePageService<T extends IEntity = IEntity> extends RemoteService<T> {
@@ -7,7 +7,8 @@ export class RemotePageService<T extends IEntity = IEntity> extends RemoteServic
7
7
  protected override async decorateOne_<B extends T = T>(item: B, params: QueryParams = {}): Promise<B> {
8
8
  const store = this.store;
9
9
  let decoratedItem = item;
10
- // decoratedItem = await decorateHref_<B>(store, decoratedItem, params);
10
+ decoratedItem = await decorateSchema_<B>(store, decoratedItem, this.key);
11
+ decoratedItem = await decorateHref_<B>(store, decoratedItem, params);
11
12
  decoratedItem = await decorateNav_<B>(store, decoratedItem, params);
12
13
  decoratedItem = await decorateRelation_<B>(store, decoratedItem, {
13
14
  market: params.market,
@@ -20,7 +21,8 @@ export class RemotePageService<T extends IEntity = IEntity> extends RemoteServic
20
21
  protected override async decorateMany_<B extends T = T>(items: B[], params: QueryParams = {}): Promise<B[]> {
21
22
  const store = this.store;
22
23
  let decoratedItems = items;
23
- // decoratedItems = await decorateHrefs_<B>(store, decoratedItems, params);
24
+ decoratedItems = await decorateSchemas_<B>(store, decoratedItems, this.key);
25
+ decoratedItems = await decorateHrefs_<B>(store, decoratedItems, params);
24
26
  decoratedItems = await decorateNavs_<B>(store, decoratedItems, params);
25
27
  decoratedItems = await decorateRelations_<B>(store, decoratedItems, {
26
28
  market: params.market,
@@ -1,4 +1,5 @@
1
1
  import { IEntity, IEquatable, IPagedResult, IQuerable, IStore, qsSerialize, QueryParams } from '@websolutespa/bom-core';
2
+ import { decorateSchema_, decorateSchemas_ } from '../decorators';
2
3
  import { remoteApiDelete, remoteApiGet, remoteApiPost, remoteApiPut } from './remote.api';
3
4
 
4
5
  /**
@@ -92,10 +93,14 @@ export class RemoteService<T extends IEntity = IEntity> implements IQuerable<T>
92
93
  }
93
94
 
94
95
  protected async decorateOne_<B extends T = T>(item: B, params: QueryParams = {}): Promise<B> {
95
- return item;
96
+ let decoratedItem = item;
97
+ decoratedItem = await decorateSchema_<B>(this.store, decoratedItem, this.key);
98
+ return decoratedItem;
96
99
  }
97
100
 
98
101
  protected async decorateMany_<B extends T = T>(items: B[], params: QueryParams = {}): Promise<B[]> {
99
- return items;
102
+ let decoratedItems = items;
103
+ decoratedItems = await decorateSchemas_<B>(this.store, decoratedItems, this.key);
104
+ return decoratedItems;
100
105
  }
101
106
  }