@inappstory/game-center-api 1.0.8 → 1.0.9

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.
@@ -45,15 +45,21 @@ class ResourceManager {
45
45
  const promise = ((resourceForFetch, relatedResources) => {
46
46
  return new Promise(async (resolve, reject) => {
47
47
  const resouceKeys = relatedResources.map(resource => resource.key);
48
- let objectUrl = await this.createObjectUrlByUri(resourceForFetch.getUri(), resouceKeys);
49
- if (objectUrl === null)
50
- objectUrl = await this.createObjectUrlByUri(resourceForFetch.getOriginUri(), resouceKeys);
48
+ const uri = resourceForFetch.getUri();
49
+ const originUri = resourceForFetch.getOriginUri();
50
+ let objectUrl = await this.createObjectUrlByUri(uri, resouceKeys);
51
+ if (objectUrl === null && uri !== originUri)
52
+ objectUrl = await this.createObjectUrlByUri(originUri, resouceKeys);
51
53
  if (objectUrl === null) {
52
- resolve();
54
+ const image = new Image();
55
+ image.onload = () => resolve();
56
+ image.onerror = () => reject(`Can't load resource for [${resouceKeys.join(", ")}]`);
57
+ image.src = originUri;
53
58
  }
54
59
  else {
55
- for (const resource of relatedResources)
60
+ for (const resource of relatedResources) {
56
61
  resource.setCacheUri(objectUrl);
62
+ }
57
63
  resolve();
58
64
  }
59
65
  });
@@ -64,18 +70,18 @@ class ResourceManager {
64
70
  for (const resList of this.resLists)
65
71
  resList["onCacheDone"]();
66
72
  }
67
- async createObjectUrlByUri(src, resouceKeys) {
68
- if (!src)
69
- return null;
73
+ async createObjectUrlByUri(uri, resouceKeys) {
74
+ if (!uri)
75
+ throw `Resource uri for [${resouceKeys.join(", ")}] can't be empty string`;
70
76
  try {
71
- const response = await (0, fetchLocalFile_1.fetchLocalFile)(src);
77
+ const response = await (0, fetchLocalFile_1.fetchLocalFile)(uri);
72
78
  if (response != null)
73
79
  return URL.createObjectURL(await response.blob());
74
80
  else
75
81
  throw "";
76
82
  }
77
83
  catch (err) {
78
- console.warn(`Error to fetch ${src} for related images [${resouceKeys.join(", ")}]`, err);
84
+ console.warn(`Error to fetch ${uri} for related images [${resouceKeys.join(", ")}]`, err);
79
85
  return null;
80
86
  }
81
87
  }
package/lib/index.d.ts CHANGED
@@ -4,7 +4,7 @@ import { getDynamicResourceAsset, getDynamicResourceFont, getProjectFontFamilySt
4
4
  import { sendIasApiRequest } from "./iasApi";
5
5
  import { gameLocalData } from "./localData";
6
6
  import { closeGameReader, createSdkApi, reloadGameReader } from "./sdkApi";
7
- import { gameLoadedSdkCallback } from "./sdkApi/initGame";
7
+ import { gameLoadedSdkCallback, gameLoadFailedSdkCallback } from "./sdkApi/initGame";
8
8
  import { openUrl } from "./sdkApi/openUrl";
9
9
  import { share } from "./sdkApi/share";
10
10
  import { vibrate } from "./sdkApi/vibrate";
@@ -20,7 +20,7 @@ export type { RequestInfo as APIRequestInfo, Response as APIResponse } from "./i
20
20
  export type { Placeholder, GameLaunchConfig };
21
21
  export type { ProjectFontFamily } from "./gameResources";
22
22
  export type { ResourceInterface } from "./ResourceManager";
23
- export { createSdkApi, closeGameReader, gameLoadedSdkCallback, gameLaunchConfig, isIos, isWeb, isAndroid, isDev, getSdkVersion, getSemverSdkVersion, gameLocalData, sendIasApiRequest, openUrl, share, vibrate, getDynamicResourceAsset, getDynamicResourceFont, getProjectFontFamilyStylesheet, getIsDemoMode, getSessionId, getApiBaseUrl, ScreenOrientation, PlaceholderType, fetchLocalFile, openStory, ResourceManager, dynamicResourceAssets, dynamicResourceFonts, staticResourcesImagePlaceholders, StaticResourceList, eventGame, reloadGameReader, };
23
+ export { createSdkApi, closeGameReader, gameLoadedSdkCallback, gameLoadFailedSdkCallback, gameLaunchConfig, isIos, isWeb, isAndroid, isDev, getSdkVersion, getSemverSdkVersion, gameLocalData, sendIasApiRequest, openUrl, share, vibrate, getDynamicResourceAsset, getDynamicResourceFont, getProjectFontFamilyStylesheet, getIsDemoMode, getSessionId, getApiBaseUrl, ScreenOrientation, PlaceholderType, fetchLocalFile, openStory, ResourceManager, dynamicResourceAssets, dynamicResourceFonts, staticResourcesImagePlaceholders, StaticResourceList, eventGame, reloadGameReader, };
24
24
  declare const GameCenterApi: {
25
25
  createSdkApi: ({ mounted, beforeUnmount: beforeUnmountCb, onSdkCloseGameReaderIntent, onPause, onResume, onBackGesture, onAudioFocusChange, filterPlaceholders, }: Partial<{
26
26
  mounted: () => void;
@@ -37,6 +37,7 @@ declare const GameCenterApi: {
37
37
  showClose: boolean;
38
38
  backGesture: boolean;
39
39
  }>> | undefined) => void;
40
+ gameLoadFailedSdkCallback: (reason: string, canTryReload: boolean) => void;
40
41
  gameLaunchConfig: GameLaunchConfig;
41
42
  isIos: any;
42
43
  isWeb: boolean;
package/lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = exports.reloadGameReader = exports.eventGame = exports.StaticResourceList = exports.staticResourcesImagePlaceholders = exports.dynamicResourceFonts = exports.dynamicResourceAssets = exports.ResourceManager = exports.openStory = exports.fetchLocalFile = exports.PlaceholderType = exports.ScreenOrientation = exports.getApiBaseUrl = exports.getSessionId = exports.getIsDemoMode = exports.getProjectFontFamilyStylesheet = exports.getDynamicResourceFont = exports.getDynamicResourceAsset = exports.vibrate = exports.share = exports.openUrl = exports.sendIasApiRequest = exports.gameLocalData = exports.getSemverSdkVersion = exports.getSdkVersion = exports.isDev = exports.isAndroid = exports.isWeb = exports.isIos = exports.gameLaunchConfig = exports.gameLoadedSdkCallback = exports.closeGameReader = exports.createSdkApi = void 0;
3
+ exports.default = exports.reloadGameReader = exports.eventGame = exports.StaticResourceList = exports.staticResourcesImagePlaceholders = exports.dynamicResourceFonts = exports.dynamicResourceAssets = exports.ResourceManager = exports.openStory = exports.fetchLocalFile = exports.PlaceholderType = exports.ScreenOrientation = exports.getApiBaseUrl = exports.getSessionId = exports.getIsDemoMode = exports.getProjectFontFamilyStylesheet = exports.getDynamicResourceFont = exports.getDynamicResourceAsset = exports.vibrate = exports.share = exports.openUrl = exports.sendIasApiRequest = exports.gameLocalData = exports.getSemverSdkVersion = exports.getSdkVersion = exports.isDev = exports.isAndroid = exports.isWeb = exports.isIos = exports.gameLaunchConfig = exports.gameLoadFailedSdkCallback = exports.gameLoadedSdkCallback = exports.closeGameReader = exports.createSdkApi = void 0;
4
4
  const env_1 = require("./env");
5
5
  Object.defineProperty(exports, "getSdkVersion", { enumerable: true, get: function () { return env_1.getSdkVersion; } });
6
6
  Object.defineProperty(exports, "getSemverSdkVersion", { enumerable: true, get: function () { return env_1.getSemverSdkVersion; } });
@@ -31,6 +31,7 @@ Object.defineProperty(exports, "createSdkApi", { enumerable: true, get: function
31
31
  Object.defineProperty(exports, "reloadGameReader", { enumerable: true, get: function () { return sdkApi_1.reloadGameReader; } });
32
32
  const initGame_1 = require("./sdkApi/initGame");
33
33
  Object.defineProperty(exports, "gameLoadedSdkCallback", { enumerable: true, get: function () { return initGame_1.gameLoadedSdkCallback; } });
34
+ Object.defineProperty(exports, "gameLoadFailedSdkCallback", { enumerable: true, get: function () { return initGame_1.gameLoadFailedSdkCallback; } });
34
35
  const openUrl_1 = require("./sdkApi/openUrl");
35
36
  Object.defineProperty(exports, "openUrl", { enumerable: true, get: function () { return openUrl_1.openUrl; } });
36
37
  const share_1 = require("./sdkApi/share");
@@ -52,6 +53,7 @@ const GameCenterApi = {
52
53
  createSdkApi: sdkApi_1.createSdkApi,
53
54
  closeGameReader: sdkApi_1.closeGameReader,
54
55
  gameLoadedSdkCallback: initGame_1.gameLoadedSdkCallback,
56
+ gameLoadFailedSdkCallback: initGame_1.gameLoadFailedSdkCallback,
55
57
  gameLaunchConfig: gameLaunchConfig_1.gameLaunchConfig,
56
58
  isIos: env_1.isIos,
57
59
  isWeb: env_1.isWeb,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inappstory/game-center-api",
3
- "version": "1.0.8",
3
+ "version": "1.0.9",
4
4
  "description": "",
5
5
  "dependencies": {
6
6
  "semver": "^7.3.8",