Skip to content

Commit 587f09c

Browse files
author
Rodrigo Gomez Palacio
authored
Merge pull request #858 from OneSignal/serviceWorkerParam-fix
`userConfig` service worker param fix
2 parents 8078f41 + 8c64c31 commit 587f09c

File tree

3 files changed

+29
-12
lines changed

3 files changed

+29
-12
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
"build:dev-stag": "./build/scripts/build.sh -f development -t staging"
3838
},
3939
"config": {
40-
"sdkVersion": "151507"
40+
"sdkVersion": "151508"
4141
},
4242
"repository": {
4343
"type": "git",

src/helpers/ConfigHelper.ts

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -489,6 +489,20 @@ export class ConfigHelper {
489489
Ignores dashboard configuration and uses code-based configuration only.
490490
Except injecting some default values for prompts.
491491
*/
492+
const isTopLevelServiceWorkerParamDefined = typeof OneSignal !== 'undefined' &&
493+
!!OneSignal.SERVICE_WORKER_PARAM;
494+
const isTopLevelServiceWorkerPathDefined = typeof OneSignal !== 'undefined' &&
495+
!!OneSignal.SERVICE_WORKER_PATH;
496+
const isTopLevelServiceWorkerUpdaterPathDefined = typeof OneSignal !== 'undefined' &&
497+
!!OneSignal.SERVICE_WORKER_UPDATER_PATH;
498+
499+
const fallbackServiceWorkerParam = isTopLevelServiceWorkerParamDefined ?
500+
OneSignal.SERVICE_WORKER_PARAM : { scope: '/' };
501+
const fallbackServiceWorkerPath = isTopLevelServiceWorkerPathDefined ?
502+
OneSignal.SERVICE_WORKER_PATH : 'OneSignalSDKWorker.js';
503+
const fallbackServiceWorkerUpdaterPath = isTopLevelServiceWorkerUpdaterPathDefined ?
504+
OneSignal.SERVICE_WORKER_UPDATER_PATH : 'OneSignalSDKUpdaterWorker.js';
505+
492506
const config = {
493507
...userConfig,
494508
promptOptions: this.injectDefaultsIntoPromptOptions(
@@ -498,15 +512,12 @@ export class ConfigHelper {
498512
isUsingSubscriptionWorkaround
499513
),
500514
...{
501-
serviceWorkerParam: typeof OneSignal !== 'undefined' && !!OneSignal.SERVICE_WORKER_PARAM
502-
? OneSignal.SERVICE_WORKER_PARAM
503-
: { scope: '/' },
504-
serviceWorkerPath: typeof OneSignal !== 'undefined' && !!OneSignal.SERVICE_WORKER_PATH
505-
? OneSignal.SERVICE_WORKER_PATH
506-
: 'OneSignalSDKWorker.js',
507-
serviceWorkerUpdaterPath: typeof OneSignal !== 'undefined' && !!OneSignal.SERVICE_WORKER_UPDATER_PATH
508-
? OneSignal.SERVICE_WORKER_UPDATER_PATH
509-
: 'OneSignalSDKUpdaterWorker.js',
515+
serviceWorkerParam: !!userConfig.serviceWorkerParam ?
516+
userConfig.serviceWorkerParam : fallbackServiceWorkerParam,
517+
serviceWorkerPath: !!userConfig.serviceWorkerPath ?
518+
userConfig.serviceWorkerPath : fallbackServiceWorkerPath,
519+
serviceWorkerUpdaterPath: !!userConfig.serviceWorkerUpdaterPath ?
520+
userConfig.serviceWorkerUpdaterPath : fallbackServiceWorkerUpdaterPath,
510521
path: !!userConfig.path ? userConfig.path : '/'
511522
},
512523
outcomes: {

test/unit/modules/mergedLegacyConfig.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,20 @@ test('should assign the default service worker file path if not provided', async
2323
t.is(result.userConfig.path, '/');
2424
});
2525

26-
test('should not overwrite a provided service worker file path', async t => {
26+
test('should not overwrite a provided service worker parameters', async t => {
2727
const result = new ConfigManager().getMergedConfig(
2828
{
29-
path: '/existing-path'
29+
path: '/existing-path',
30+
serviceWorkerParam: { scope: '/existing-path' },
31+
serviceWorkerPath: '/existing-path/OneSignalSDKWorker.js',
32+
serviceWorkerUpdaterPath: '/existing-path/OneSignalSDKUpdaterWorker.js'
3033
},
3134
TestEnvironment.getFakeServerAppConfig(ConfigIntegrationKind.Custom)
3235
);
3336
t.is(result.userConfig.path, '/existing-path');
37+
t.deepEqual(result.userConfig.serviceWorkerParam, { scope: '/existing-path' });
38+
t.is(result.userConfig.serviceWorkerPath, '/existing-path/OneSignalSDKWorker.js');
39+
t.is(result.userConfig.serviceWorkerUpdaterPath, '/existing-path/OneSignalSDKUpdaterWorker.js');
3440
});
3541

3642
test('should assign the default service worker registration params if not provided', async t => {

0 commit comments

Comments
 (0)