Representation of a Script to load and execute, used by ScriptManager.
When adding resolvers to ScriptManager in ScriptManager.shared.addResolver(...), you can use
Script.getDevServerURL(...), Script.getFileSystemURL(...) or Script.getRemoteURL(...)
to create a url for the script.
Other methods are designed for internal use only.
• new Script(scriptId, caller, locator, cache?)
Constructs new representation of a script.
internal
| Name | Type | Default value | Description | 
|---|---|---|---|
scriptId | 
string | 
undefined | 
- | 
caller | 
undefined | string | 
undefined | 
- | 
locator | 
NormalizedScriptLocator | 
undefined | 
Normalized locator data. | 
cache | 
boolean | 
true | 
Flag whether use cache or not, true by default. | 
packages/repack/src/modules/ScriptManager/Script.ts:131
• Readonly cache: boolean = true
• Readonly caller: undefined | string
• Readonly locator: NormalizedScriptLocator
• Readonly scriptId: string
▪ Static DEFAULT_TIMEOUT: number = 30000
packages/repack/src/modules/ScriptManager/Script.ts:20
▸ checkIfCacheDataOutdated(cachedData): boolean
Check if previous cached data is the same as the new one.
internal
| Name | Type | Description | 
|---|---|---|
cachedData | 
Pick<NormalizedScriptLocator, "method" | "url" | "query" | "headers" | "body"> | 
Cached data for the same script. | 
boolean
packages/repack/src/modules/ScriptManager/Script.ts:186
▸ getCacheData(): Object
Get object to store in cache.
internal
Object
| Name | Type | 
|---|---|
body | 
undefined | string | 
headers | 
undefined | Record<string, string> | 
method | 
"GET" | "POST" | 
query | 
undefined | string | 
url | 
string | 
packages/repack/src/modules/ScriptManager/Script.ts:208
▸ shouldRefetch(cachedData): boolean
Check if the script should be fetched again or reused, based on previous cached data.
internal
| Name | Type | Description | 
|---|---|---|
cachedData | 
Pick<NormalizedScriptLocator, "method" | "url" | "query" | "headers" | "body"> | 
Cached data for the same script. | 
boolean
packages/repack/src/modules/ScriptManager/Script.ts:166
▸ shouldUpdateCache(cachedData): boolean
Check if the script was already cached and cache should be updated with new data.
internal
| Name | Type | Description | 
|---|---|---|
cachedData | 
Pick<NormalizedScriptLocator, "method" | "url" | "query" | "headers" | "body"> | 
Cached data for the same script. | 
boolean
packages/repack/src/modules/ScriptManager/Script.ts:145
▸ toObject(): Object
Object
| Name | Type | 
|---|---|
cache | 
boolean | 
caller | 
undefined | string | 
locator | 
NormalizedScriptLocator | 
scriptId | 
string | 
packages/repack/src/modules/ScriptManager/Script.ts:218
▸ Static from(key, locator, fetch): Script
Create new instance of Script from non-normalized script locator data.
internal
| Name | Type | Description | 
|---|---|---|
key | 
Object | 
- | 
key.caller? | 
string | 
- | 
key.scriptId | 
string | 
- | 
locator | 
ScriptLocator | 
Non-normalized locator data. | 
fetch | 
boolean | 
Initial flag for whether script should be fetched or not. | 
packages/repack/src/modules/ScriptManager/Script.ts:70
▸ Static getDevServerURL(scriptId): (webpackContext: WebpackContext) => string
Get URL of a script hosted on development server.
| Name | Type | Description | 
|---|---|---|
scriptId | 
string | 
Id of the script. | 
fn
▸ (webpackContext): string
| Name | Type | 
|---|---|
webpackContext | 
WebpackContext | 
string
packages/repack/src/modules/ScriptManager/Script.ts:27
▸ Static getFileSystemURL(scriptId): (webpackContext: WebpackContext) => string
Get URL of a script stored on filesystem on the target mobile device.
| Name | Type | Description | 
|---|---|---|
scriptId | 
string | 
Id of the script. | 
fn
▸ (webpackContext): string
| Name | Type | 
|---|---|
webpackContext | 
WebpackContext | 
string
packages/repack/src/modules/ScriptManager/Script.ts:37
▸ Static getRemoteURL(url, options?): string | (webpackContext: WebpackContext) => string
Get URL of a script hosted on a remote server.
By default .chunk.bundle extension will be added to the URL.
If your script has different extension, you should pass { excludeExtension: true } as 2nd argument.
| Name | Type | Description | 
|---|---|---|
url | 
string | 
A URL to remote location where the script is stored. | 
options | 
Object | 
Additional options. | 
options.excludeExtension? | 
boolean | 
- | 
string | (webpackContext: WebpackContext) => string