@24i/smartapps-bigscreen-rnv-build-engine 0.12.1 → 0.12.2-alpha.1693
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/dist/src/__tests__/engine.spec.js +3 -3
- package/dist/src/__tests__/resolvers/resolveBaseUrl.spec.js +9 -10
- package/dist/src/__tests__/utils/replaceRelevantStringsInConfig/replaceTemplateString.spec.js +0 -1
- package/dist/src/engine.js +12 -9
- package/dist/src/scripts/generateDeployUrls/generateDeployUrls.js +4 -3
- package/dist/src/sdks/sdk-tizen/sdkTizen.js +9 -9
- package/dist/src/sdks/sdk-webos/sdkWebos.js +9 -9
- package/dist/src/sdks/sdk-webpack/sdkWebpack.js +3 -3
- package/dist/src/tasks/task.rnv.package.js +2 -9
- package/dist/src/tasks/task.rnv.project.configure.js +15 -11
- package/dist/src/tasks/task.rnv.start.js +3 -3
- package/dist/templates/platforms/_shared/webpack.base.js +84 -87
- package/package.json +5 -4
|
@@ -31,9 +31,9 @@ describe('engine config', () => {
|
|
|
31
31
|
describe('platform properties', () => {
|
|
32
32
|
it('has defined platform specific file extensions for each platform', () => {
|
|
33
33
|
Object.values(constants_1.Platforms).forEach((platform) => {
|
|
34
|
-
const {
|
|
35
|
-
expect(
|
|
36
|
-
const customExtensions =
|
|
34
|
+
const { extensions } = engine_1.default.platforms[platform];
|
|
35
|
+
expect(extensions).toBeInstanceOf(Array);
|
|
36
|
+
const customExtensions = extensions
|
|
37
37
|
.filter((extension) => !configuredFileExtensions.includes(extension));
|
|
38
38
|
expect(customExtensions.length)
|
|
39
39
|
.toBeGreaterThanOrEqual(configuredFileExtensions.length);
|
|
@@ -8,6 +8,13 @@ describe('resolveBaseUrl', () => {
|
|
|
8
8
|
const bucketName = 'test-bucket';
|
|
9
9
|
const flavour = 'test_flavour';
|
|
10
10
|
const packageVersion = '1.0.0';
|
|
11
|
+
const expectEmptyStringOutputForEachPlatformAndSchemeByFlavour = (customFlavour) => {
|
|
12
|
+
Object.values(constants_1.Platforms).forEach((platform) => {
|
|
13
|
+
Object.values(constants_1.BuildSchemes).forEach((scheme) => {
|
|
14
|
+
expect((0, resolveBaseUrl_1.resolveBaseUrl)({ platform, scheme, flavour: customFlavour })).toBe('');
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
};
|
|
11
18
|
afterEach(() => {
|
|
12
19
|
jest.clearAllMocks();
|
|
13
20
|
jest.resetAllMocks();
|
|
@@ -23,22 +30,14 @@ describe('resolveBaseUrl', () => {
|
|
|
23
30
|
},
|
|
24
31
|
},
|
|
25
32
|
});
|
|
26
|
-
|
|
27
|
-
Object.values(constants_1.BuildSchemes).forEach((scheme) => {
|
|
28
|
-
expect((0, resolveBaseUrl_1.resolveBaseUrl)({ platform, scheme, flavour })).toBe('');
|
|
29
|
-
});
|
|
30
|
-
});
|
|
33
|
+
expectEmptyStringOutputForEachPlatformAndSchemeByFlavour(flavour);
|
|
31
34
|
});
|
|
32
35
|
it('returns empty string when c.buildConfig.common.deploy.aws3.bucketName is not set', () => {
|
|
33
36
|
resolveGenericRnvConfig_1.getBaseConfig.mockReturnValue({
|
|
34
37
|
runtime: {},
|
|
35
38
|
buildConfig: { common: { packageVersion } },
|
|
36
39
|
});
|
|
37
|
-
|
|
38
|
-
Object.values(constants_1.BuildSchemes).forEach((scheme) => {
|
|
39
|
-
expect((0, resolveBaseUrl_1.resolveBaseUrl)({ platform, scheme, flavour })).toBe('');
|
|
40
|
-
});
|
|
41
|
-
});
|
|
40
|
+
expectEmptyStringOutputForEachPlatformAndSchemeByFlavour(flavour);
|
|
42
41
|
});
|
|
43
42
|
describe('resolving baseUrl for configured schemes', () => {
|
|
44
43
|
const bucketUrl = `http://${bucketName}.s3.amazonaws.com`;
|
package/dist/src/__tests__/utils/replaceRelevantStringsInConfig/replaceTemplateString.spec.js
CHANGED
|
@@ -52,7 +52,6 @@ describe('replaceTemplateString', () => {
|
|
|
52
52
|
expect((0, replaceTemplateString_1.replaceTemplateString)(rnvC, '{{configProps.deploy.notExistingProp}}')).toBe('');
|
|
53
53
|
});
|
|
54
54
|
it('returns correct value from rnv c object for pattern on input', () => {
|
|
55
|
-
expect((0, replaceTemplateString_1.replaceTemplateString)({ buildConfig: { projectName: 'prj' } }, '{{c.buildConfig.projectName}}')).toBe('prj');
|
|
56
55
|
expect((0, replaceTemplateString_1.replaceTemplateString)({
|
|
57
56
|
buildConfig: {
|
|
58
57
|
projectName: '{{c.buildConfig.common.id}}',
|
package/dist/src/engine.js
CHANGED
|
@@ -40,7 +40,10 @@ const generateEngineExtensions = (platformExtensions) => {
|
|
|
40
40
|
return output;
|
|
41
41
|
};
|
|
42
42
|
exports.default = {
|
|
43
|
-
initializeRuntimeConfig: (c) =>
|
|
43
|
+
initializeRuntimeConfig: (c) => {
|
|
44
|
+
rnv_1.FileUtils.configureFilesystem(rnv_1.Common.getConfigProp, rnv_1.Resolver.doResolve, rnv_1.Utils.isSystemWin);
|
|
45
|
+
return rnv_1.Config.initializeConfig(c);
|
|
46
|
+
},
|
|
44
47
|
tasks: rnv_1.EngineManager.generateEngineTasks(engineTasks_1.engineTaskList),
|
|
45
48
|
config: CNF,
|
|
46
49
|
projectDirName: 'project',
|
|
@@ -48,42 +51,42 @@ exports.default = {
|
|
|
48
51
|
ejectPlatform: null,
|
|
49
52
|
platforms: {
|
|
50
53
|
[constants_1.Platforms.ENTONE]: {
|
|
51
|
-
|
|
54
|
+
extensions: generateEngineExtensions(['entone']),
|
|
52
55
|
defaultPort: 8094,
|
|
53
56
|
isWebHosted: true,
|
|
54
57
|
},
|
|
55
58
|
[constants_1.Platforms.HBBTV]: {
|
|
56
|
-
|
|
59
|
+
extensions: generateEngineExtensions(['hbbtv.tv']),
|
|
57
60
|
defaultPort: 8095,
|
|
58
61
|
isWebHosted: true,
|
|
59
62
|
},
|
|
60
63
|
[constants_1.Platforms.KREATV]: {
|
|
61
|
-
|
|
64
|
+
extensions: generateEngineExtensions(['kreatv']),
|
|
62
65
|
defaultPort: 8096,
|
|
63
66
|
isWebHosted: true,
|
|
64
67
|
},
|
|
65
68
|
[constants_1.Platforms.SAPHI]: {
|
|
66
|
-
|
|
69
|
+
extensions: generateEngineExtensions(['saphi.tv']),
|
|
67
70
|
defaultPort: 8097,
|
|
68
71
|
isWebHosted: true,
|
|
69
72
|
},
|
|
70
73
|
[constants_1.Platforms.TIZEN]: {
|
|
71
|
-
|
|
74
|
+
extensions: generateEngineExtensions(['tizen.tv']),
|
|
72
75
|
defaultPort: 8087,
|
|
73
76
|
isWebHosted: true,
|
|
74
77
|
},
|
|
75
78
|
[constants_1.Platforms.WEBOS]: {
|
|
76
|
-
|
|
79
|
+
extensions: generateEngineExtensions(['webos.tv']),
|
|
77
80
|
defaultPort: 8088,
|
|
78
81
|
isWebHosted: true,
|
|
79
82
|
},
|
|
80
83
|
[constants_1.Platforms.WEBTV]: {
|
|
81
|
-
|
|
84
|
+
extensions: generateEngineExtensions(['webtv']),
|
|
82
85
|
defaultPort: 8080,
|
|
83
86
|
isWebHosted: true,
|
|
84
87
|
},
|
|
85
88
|
[constants_1.Platforms.XBOX]: {
|
|
86
|
-
|
|
89
|
+
extensions: generateEngineExtensions(['xbox']),
|
|
87
90
|
defaultPort: 8098,
|
|
88
91
|
isWebHosted: true,
|
|
89
92
|
},
|
|
@@ -44,6 +44,7 @@ const makeTableMarkdownByScheme = (rnvC, scheme) => {
|
|
|
44
44
|
const formattedTableData = (0, formatTableDataSpaces_1.formatTableDataSpaces)(tableData);
|
|
45
45
|
return tableDataToMarkdown(formattedTableData);
|
|
46
46
|
};
|
|
47
|
+
const deployedEachTimeIntoTheSamePath = '> Deployed each time into the same path.';
|
|
47
48
|
const makeMarkdownFileContentRows = (rnvC) => ([
|
|
48
49
|
`# ${rnvC.buildConfig.projectName}`,
|
|
49
50
|
'## Deploy URLs',
|
|
@@ -51,20 +52,20 @@ const makeMarkdownFileContentRows = (rnvC) => ([
|
|
|
51
52
|
'---',
|
|
52
53
|
'### Latest `development` builds',
|
|
53
54
|
'> Latest builds against the development git branch.',
|
|
54
|
-
|
|
55
|
+
deployedEachTimeIntoTheSamePath,
|
|
55
56
|
'',
|
|
56
57
|
makeTableMarkdownByScheme(rnvC, constants_1.BuildSchemes.DEV_LATEST),
|
|
57
58
|
'',
|
|
58
59
|
'---',
|
|
59
60
|
'### Latest `release candidate` builds',
|
|
60
61
|
'> Latest builds against the release candidate git branch.',
|
|
61
|
-
|
|
62
|
+
deployedEachTimeIntoTheSamePath,
|
|
62
63
|
'',
|
|
63
64
|
makeTableMarkdownByScheme(rnvC, constants_1.BuildSchemes.RC_LATEST),
|
|
64
65
|
'---',
|
|
65
66
|
'### Latest `release` builds',
|
|
66
67
|
'> Latest builds against the release git branch.',
|
|
67
|
-
|
|
68
|
+
deployedEachTimeIntoTheSamePath,
|
|
68
69
|
'',
|
|
69
70
|
makeTableMarkdownByScheme(rnvC, constants_1.BuildSchemes.RELEASE_LATEST),
|
|
70
71
|
'---',
|
|
@@ -26,6 +26,7 @@ const os = __importStar(require("os"));
|
|
|
26
26
|
const semver = __importStar(require("semver"));
|
|
27
27
|
const child_process_1 = require("child_process");
|
|
28
28
|
const rnv_1 = require("rnv");
|
|
29
|
+
const sdk_webpack_1 = require("@rnv/sdk-webpack");
|
|
29
30
|
const sdk_utils_1 = require("../sdk-utils");
|
|
30
31
|
const constants_1 = require("../../constants");
|
|
31
32
|
const { execCLI } = rnv_1.Exec;
|
|
@@ -34,7 +35,6 @@ const { getPlatformProjectDir, getAppVersion, getConfigProp, checkPortInUse, con
|
|
|
34
35
|
const { chalk, logTask, logDebug, logError, logSuccess, logWarning, logInfo, } = rnv_1.Logger;
|
|
35
36
|
const { isPlatformActive } = rnv_1.PlatformManager;
|
|
36
37
|
const { writeCleanFile, fsExistsSync, updateObjectSync } = rnv_1.FileUtils;
|
|
37
|
-
const { buildCoreWebpackProject, runWebpackServer, configureCoreWebProject, waitForWebpack, } = rnv_1.WebpackUtils;
|
|
38
38
|
const { copyAssetsFolder, copyBuildsFolder } = rnv_1.ProjectManager;
|
|
39
39
|
const { runTizenSimOrDevice, createDevelopTizenCertificate, DEFAULT_CERTIFICATE_NAME, DEFAULT_SECURITY_PROFILE_NAME, } = rnv_1.SDKManager.Tizen;
|
|
40
40
|
const DEFAULT_CERTIFICATE_NAME_WITH_EXTENSION = `${DEFAULT_CERTIFICATE_NAME}.p12`;
|
|
@@ -79,27 +79,27 @@ const runTizen = async (c, target) => {
|
|
|
79
79
|
return;
|
|
80
80
|
const bundleAssets = getConfigProp(c, platform, 'bundleAssets') === true;
|
|
81
81
|
if (bundleAssets) {
|
|
82
|
-
await buildCoreWebpackProject(c);
|
|
82
|
+
await (0, sdk_webpack_1.buildCoreWebpackProject)(c);
|
|
83
83
|
await handleRunTizenSimOrDevice(c);
|
|
84
84
|
}
|
|
85
85
|
else {
|
|
86
86
|
const isPortActive = await checkPortInUse(c, platform, c.runtime.port);
|
|
87
87
|
const isDebuggerEnabledForPlatform = REMOTE_DEBUGGER_ENABLED_PLATFORMS.includes(platform);
|
|
88
|
-
const isWeinreEnabled = isDebuggerEnabledForPlatform && !
|
|
88
|
+
const isWeinreEnabled = isDebuggerEnabledForPlatform && !hosted;
|
|
89
89
|
if (!isPortActive) {
|
|
90
90
|
logInfo(`Your ${chalk().white(platform)} devServer at port ${chalk().white(c.runtime.port)} is not running. Starting it up for you...`);
|
|
91
|
-
waitForWebpack(c)
|
|
91
|
+
(0, sdk_webpack_1.waitForWebpack)(c)
|
|
92
92
|
.then(() => handleRunTizenSimOrDevice(c))
|
|
93
93
|
.catch(logError);
|
|
94
|
-
await runWebpackServer(c, isWeinreEnabled);
|
|
94
|
+
await (0, sdk_webpack_1.runWebpackServer)(c, isWeinreEnabled);
|
|
95
95
|
}
|
|
96
96
|
else {
|
|
97
97
|
const resetCompleted = await confirmActiveBundler(c);
|
|
98
98
|
if (resetCompleted) {
|
|
99
|
-
waitForWebpack(c)
|
|
99
|
+
(0, sdk_webpack_1.waitForWebpack)(c)
|
|
100
100
|
.then(() => handleRunTizenSimOrDevice(c))
|
|
101
101
|
.catch(logError);
|
|
102
|
-
await runWebpackServer(c, isWeinreEnabled);
|
|
102
|
+
await (0, sdk_webpack_1.runWebpackServer)(c, isWeinreEnabled);
|
|
103
103
|
}
|
|
104
104
|
else {
|
|
105
105
|
await handleRunTizenSimOrDevice(c);
|
|
@@ -110,7 +110,7 @@ const runTizen = async (c, target) => {
|
|
|
110
110
|
exports.runTizen = runTizen;
|
|
111
111
|
const buildTizenProject = async (c) => {
|
|
112
112
|
logTask('buildTizenProject');
|
|
113
|
-
await buildCoreWebpackProject(c);
|
|
113
|
+
await (0, sdk_webpack_1.buildCoreWebpackProject)(c);
|
|
114
114
|
if (!c.program.hosted) {
|
|
115
115
|
const { buildConfig } = c;
|
|
116
116
|
const platformConfig = buildConfig.platforms[constants_1.Platforms.TIZEN];
|
|
@@ -155,7 +155,7 @@ const configureTizenProject = async (c) => {
|
|
|
155
155
|
await configureTizenGlobal(c);
|
|
156
156
|
}
|
|
157
157
|
await copyAssetsFolder(c, platform);
|
|
158
|
-
await configureCoreWebProject(c);
|
|
158
|
+
await (0, sdk_webpack_1.configureCoreWebProject)(c);
|
|
159
159
|
await configureProject(c);
|
|
160
160
|
copyBuildsFolder(c, platform);
|
|
161
161
|
};
|
|
@@ -24,11 +24,11 @@ const fs = __importStar(require("fs"));
|
|
|
24
24
|
const path = __importStar(require("path"));
|
|
25
25
|
const os_1 = require("os");
|
|
26
26
|
const rnv_1 = require("rnv");
|
|
27
|
+
const sdk_webpack_1 = require("@rnv/sdk-webpack");
|
|
27
28
|
const sdk_utils_1 = require("../sdk-utils");
|
|
28
29
|
const { writeCleanFile } = rnv_1.FileUtils;
|
|
29
30
|
const { execCLI } = rnv_1.Exec;
|
|
30
31
|
const { getPlatformProjectDir, getTemplateProjectDir, getPlatformBuildDir, getConfigProp, checkPortInUse, confirmActiveBundler, } = rnv_1.Common;
|
|
31
|
-
const { buildCoreWebpackProject, runWebpackServer, configureCoreWebProject, waitForWebpack, } = rnv_1.WebpackUtils;
|
|
32
32
|
const { isPlatformActive } = rnv_1.PlatformManager;
|
|
33
33
|
const { chalk, logTask, logInfo, logSuccess, logError } = rnv_1.Logger;
|
|
34
34
|
const { copyBuildsFolder, copyAssetsFolder } = rnv_1.ProjectManager;
|
|
@@ -51,27 +51,27 @@ const runWebOS = async (c) => {
|
|
|
51
51
|
return;
|
|
52
52
|
const bundleAssets = getConfigProp(c, platform, 'bundleAssets') === true;
|
|
53
53
|
if (bundleAssets) {
|
|
54
|
-
await buildCoreWebpackProject(c);
|
|
54
|
+
await (0, sdk_webpack_1.buildCoreWebpackProject)(c);
|
|
55
55
|
await runWebosSimOrDevice(c);
|
|
56
56
|
}
|
|
57
57
|
else {
|
|
58
58
|
const isPortActive = await checkPortInUse(c, platform, c.runtime.port);
|
|
59
59
|
const isDebuggerEnabledForPlatform = REMOTE_DEBUGGER_ENABLED_PLATFORMS.includes(platform);
|
|
60
|
-
const isWeinreEnabled = isDebuggerEnabledForPlatform && !
|
|
60
|
+
const isWeinreEnabled = isDebuggerEnabledForPlatform && !hosted;
|
|
61
61
|
if (!isPortActive) {
|
|
62
62
|
logInfo(`Your ${chalk().white(platform)} devServer at port ${chalk().white(c.runtime.port)} is not running. Starting it up for you...`);
|
|
63
|
-
waitForWebpack(c)
|
|
63
|
+
(0, sdk_webpack_1.waitForWebpack)(c)
|
|
64
64
|
.then(() => runWebosSimOrDevice(c))
|
|
65
65
|
.catch(logError);
|
|
66
|
-
await runWebpackServer(c, isWeinreEnabled);
|
|
66
|
+
await (0, sdk_webpack_1.runWebpackServer)(c, isWeinreEnabled);
|
|
67
67
|
}
|
|
68
68
|
else {
|
|
69
69
|
const resetCompleted = await confirmActiveBundler(c);
|
|
70
70
|
if (resetCompleted) {
|
|
71
|
-
waitForWebpack(c)
|
|
71
|
+
(0, sdk_webpack_1.waitForWebpack)(c)
|
|
72
72
|
.then(() => runWebosSimOrDevice(c))
|
|
73
73
|
.catch(logError);
|
|
74
|
-
await runWebpackServer(c, isWeinreEnabled);
|
|
74
|
+
await (0, sdk_webpack_1.runWebpackServer)(c, isWeinreEnabled);
|
|
75
75
|
}
|
|
76
76
|
else {
|
|
77
77
|
await runWebosSimOrDevice(c);
|
|
@@ -82,7 +82,7 @@ const runWebOS = async (c) => {
|
|
|
82
82
|
exports.runWebOS = runWebOS;
|
|
83
83
|
const buildWebOSProject = async (c) => {
|
|
84
84
|
logTask('buildWebOSProject');
|
|
85
|
-
await buildCoreWebpackProject(c);
|
|
85
|
+
await (0, sdk_webpack_1.buildCoreWebpackProject)(c);
|
|
86
86
|
if (!c.program.hosted) {
|
|
87
87
|
const tDir = getPlatformProjectDir(c);
|
|
88
88
|
const tOut = path.join(getPlatformBuildDir(c), 'output');
|
|
@@ -110,7 +110,7 @@ const configureWebOSProject = async (c) => {
|
|
|
110
110
|
if (!isPlatformActive(c, platform))
|
|
111
111
|
return;
|
|
112
112
|
await copyAssetsFolder(c, platform);
|
|
113
|
-
await configureCoreWebProject(c);
|
|
113
|
+
await (0, sdk_webpack_1.configureCoreWebProject)(c);
|
|
114
114
|
await configureProject(c);
|
|
115
115
|
await copyBuildsFolder(c, platform);
|
|
116
116
|
};
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.exportWeb = exports.deployWeb = exports.configureWebProject = exports.buildWeb = void 0;
|
|
4
4
|
const rnv_1 = require("rnv");
|
|
5
|
+
const sdk_webpack_1 = require("@rnv/sdk-webpack");
|
|
5
6
|
const { getPlatformProjectDir } = rnv_1.Common;
|
|
6
7
|
const { isPlatformActive } = rnv_1.PlatformManager;
|
|
7
8
|
const { logTask } = rnv_1.Logger;
|
|
8
9
|
const { copyBuildsFolder, copyAssetsFolder } = rnv_1.ProjectManager;
|
|
9
|
-
const
|
|
10
|
-
const buildWeb = async (c) => buildCoreWebpackProject(c);
|
|
10
|
+
const buildWeb = async (c) => (0, sdk_webpack_1.buildCoreWebpackProject)(c);
|
|
11
11
|
exports.buildWeb = buildWeb;
|
|
12
12
|
const configureWebProject = async (c) => {
|
|
13
13
|
logTask('configureWebProject');
|
|
@@ -16,7 +16,7 @@ const configureWebProject = async (c) => {
|
|
|
16
16
|
if (!isPlatformActive(c, platform))
|
|
17
17
|
return;
|
|
18
18
|
await copyAssetsFolder(c, platform);
|
|
19
|
-
await configureCoreWebProject(c);
|
|
19
|
+
await (0, sdk_webpack_1.configureCoreWebProject)(c);
|
|
20
20
|
copyBuildsFolder(c, platform);
|
|
21
21
|
};
|
|
22
22
|
exports.configureWebProject = configureWebProject;
|
|
@@ -3,17 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.customRnvPackageTask = void 0;
|
|
4
4
|
const rnv_1 = require("rnv");
|
|
5
5
|
const constants_1 = require("../constants");
|
|
6
|
-
const { getConfigProp } = rnv_1.Common;
|
|
7
|
-
const { configureFilesystem } = rnv_1.FileUtils;
|
|
8
|
-
const { doResolve } = rnv_1.Resolver;
|
|
9
|
-
const { isSystemWin } = rnv_1.Utils;
|
|
10
|
-
const { logTask } = rnv_1.Logger;
|
|
11
6
|
const { TASK_PACKAGE, TASK_CONFIGURE, PARAMS } = rnv_1.Constants;
|
|
12
|
-
const { executeOrSkipTask } = rnv_1.TaskManager;
|
|
13
7
|
const packageFn = async (c, parentTask, originTask) => {
|
|
14
|
-
logTask('taskRnvPackage', `parent:${parentTask}`);
|
|
15
|
-
|
|
16
|
-
await executeOrSkipTask(c, TASK_CONFIGURE, TASK_PACKAGE, originTask);
|
|
8
|
+
rnv_1.Logger.logTask('taskRnvPackage', `parent:${parentTask}`);
|
|
9
|
+
await rnv_1.TaskManager.executeOrSkipTask(c, TASK_CONFIGURE, TASK_PACKAGE, originTask);
|
|
17
10
|
return true;
|
|
18
11
|
};
|
|
19
12
|
const customRnvPackageTask = {
|
|
@@ -42,12 +42,23 @@ const patchEngineTemplatesPath = (c) => {
|
|
|
42
42
|
engine.originalTemplatePlatformProjectDir = path.join(templatesPath, 'platforms', 'project');
|
|
43
43
|
c.paths.project.platformTemplatesDirs[c.platform] = engine.originalTemplatePlatformsDir;
|
|
44
44
|
};
|
|
45
|
+
const handleReset = async (c) => {
|
|
46
|
+
if (c.program.resetHard) {
|
|
47
|
+
logInfo(`You passed ${chalk().white('-R, --resetHard')} argument. "${chalk().white('./platformAssets')}" will be cleaned up first`);
|
|
48
|
+
await cleanPlaformAssets(c);
|
|
49
|
+
}
|
|
50
|
+
else if (c.program.resetAssets) {
|
|
51
|
+
logInfo(`You passed ${chalk().white('-a, --resetAssets')} argument. "${chalk().white('./platformAssets')}" will be cleaned up first`);
|
|
52
|
+
await cleanPlaformAssets(c);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
45
55
|
const projectConfigureFn = async (c, parentTask, originTask) => {
|
|
46
56
|
logTask('taskRnvProjectConfigure');
|
|
47
57
|
patchEngineTemplatesPath(c);
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
58
|
+
const buildsDirPath = c.paths.project.builds.dir;
|
|
59
|
+
if (buildsDirPath && !fsExistsSync(buildsDirPath)) {
|
|
60
|
+
logInfo(`Creating folder ${buildsDirPath} ...DONE`);
|
|
61
|
+
fsMkdirSync(buildsDirPath);
|
|
51
62
|
}
|
|
52
63
|
await updateRenativeConfigs(c);
|
|
53
64
|
await checkIsRenativeProject(c);
|
|
@@ -80,14 +91,7 @@ const projectConfigureFn = async (c, parentTask, originTask) => {
|
|
|
80
91
|
await configurePlugins(c);
|
|
81
92
|
await configureRuntimeDefaults(c);
|
|
82
93
|
if (!c.runtime.disableReset) {
|
|
83
|
-
|
|
84
|
-
logInfo(`You passed ${chalk().white('-R, --resetHard')} argument. "${chalk().white('./platformAssets')}" will be cleaned up first`);
|
|
85
|
-
await cleanPlaformAssets(c);
|
|
86
|
-
}
|
|
87
|
-
else if (c.program.resetAssets) {
|
|
88
|
-
logInfo(`You passed ${chalk().white('-a, --resetAssets')} argument. "${chalk().white('./platformAssets')}" will be cleaned up first`);
|
|
89
|
-
await cleanPlaformAssets(c);
|
|
90
|
-
}
|
|
94
|
+
await handleReset(c);
|
|
91
95
|
}
|
|
92
96
|
await copyRuntimeAssets(c);
|
|
93
97
|
await configureTemplateFiles(c);
|
|
@@ -22,12 +22,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
22
22
|
exports.customRnvStartTask = void 0;
|
|
23
23
|
const open = __importStar(require("better-opn"));
|
|
24
24
|
const rnv_1 = require("rnv");
|
|
25
|
+
const sdk_webpack_1 = require("@rnv/sdk-webpack");
|
|
25
26
|
const constants_1 = require("../constants");
|
|
26
27
|
const { getConfigProp } = rnv_1.Common;
|
|
27
28
|
const { logErrorPlatform } = rnv_1.PlatformManager;
|
|
28
29
|
const { logTask, logError } = rnv_1.Logger;
|
|
29
30
|
const { TASK_START, TASK_CONFIGURE, REMOTE_DEBUGGER_ENABLED_PLATFORMS, PARAMS } = rnv_1.Constants;
|
|
30
|
-
const { runWebpackServer, waitForWebpack } = rnv_1.WebpackUtils;
|
|
31
31
|
const { executeTask } = rnv_1.TaskManager;
|
|
32
32
|
const startFn = async (c, parentTask, originTask) => {
|
|
33
33
|
const { platform, runtime, program } = c;
|
|
@@ -38,7 +38,7 @@ const startFn = async (c, parentTask, originTask) => {
|
|
|
38
38
|
await executeTask(c, TASK_CONFIGURE, TASK_START, originTask);
|
|
39
39
|
}
|
|
40
40
|
if (hosted) {
|
|
41
|
-
waitForWebpack(c)
|
|
41
|
+
(0, sdk_webpack_1.waitForWebpack)(c)
|
|
42
42
|
.then(() => open(`http://${c.runtime.localhost}:${port}/`))
|
|
43
43
|
.catch(logError);
|
|
44
44
|
}
|
|
@@ -54,7 +54,7 @@ const startFn = async (c, parentTask, originTask) => {
|
|
|
54
54
|
case constants_1.Platforms.WEBOS:
|
|
55
55
|
case constants_1.Platforms.WEBTV:
|
|
56
56
|
case constants_1.Platforms.XBOX:
|
|
57
|
-
return runWebpackServer(c, isWeinreEnabled);
|
|
57
|
+
return (0, sdk_webpack_1.runWebpackServer)(c, isWeinreEnabled);
|
|
58
58
|
default:
|
|
59
59
|
if (hosted) {
|
|
60
60
|
return logError('This platform does not support hosted mode', true);
|
|
@@ -43,79 +43,63 @@ const getAppContentPath = (baseUrl, isBuildHosted = false) => {
|
|
|
43
43
|
? `${baseUrl}/${relativePath}`
|
|
44
44
|
: `./${relativePath}`;
|
|
45
45
|
};
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
platform: config.platform,
|
|
54
|
-
scheme: config.scheme,
|
|
55
|
-
flavour: config.appConfigId,
|
|
56
|
-
};
|
|
57
|
-
const buildVersion = smartapps_bigscreen_rnv_build_engine_1.Resolvers.resolveBuildVersion(platformSchemeAppIdObj);
|
|
58
|
-
const baseUrl = smartapps_bigscreen_rnv_build_engine_1.Resolvers.resolveBaseUrl(platformSchemeAppIdObj);
|
|
59
|
-
const devServerHost = config.devServerHost || '0.0.0.0';
|
|
60
|
-
const isDevServer = appBuildEngineProjectDir.endsWith('/server');
|
|
61
|
-
const { PLATFORM } = process.env;
|
|
62
|
-
const isBuildHosted = config.isBuildHosted || false;
|
|
63
|
-
const rules = {
|
|
64
|
-
babel: {
|
|
65
|
-
test: /\.[tj]sx?$/,
|
|
66
|
-
exclude: (config.typescript?.exclude ?? []).map((exclusion) => (path_1.default.resolve(projectDir, exclusion))),
|
|
67
|
-
use: [
|
|
68
|
-
{
|
|
69
|
-
loader: 'ts-loader',
|
|
70
|
-
options: {
|
|
71
|
-
transpileOnly: true,
|
|
72
|
-
allowTsInNodeModules: true,
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
],
|
|
76
|
-
},
|
|
77
|
-
css: {
|
|
78
|
-
test: /\.s?css$/,
|
|
79
|
-
use: [
|
|
80
|
-
isDevServer ? 'css-hot-loader' : null,
|
|
81
|
-
mini_css_extract_plugin_1.default.loader,
|
|
82
|
-
'css-loader',
|
|
83
|
-
{
|
|
84
|
-
loader: 'sass-loader',
|
|
85
|
-
options: {
|
|
86
|
-
sourceMap: false,
|
|
87
|
-
additionalData: (0, extendSass_1.extendSass)(config),
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
].filter(Boolean),
|
|
91
|
-
},
|
|
92
|
-
image: {
|
|
93
|
-
test: /\.(gif|jpe?g|png|svg)$/,
|
|
94
|
-
use: {
|
|
95
|
-
loader: 'file-loader',
|
|
46
|
+
const makeRules = (config, projectDir, isDevServer) => ({
|
|
47
|
+
babel: {
|
|
48
|
+
test: /\.[tj]sx?$/,
|
|
49
|
+
exclude: (config.typescript?.exclude ?? []).map((exclusion) => (path_1.default.resolve(projectDir, exclusion))),
|
|
50
|
+
use: [
|
|
51
|
+
{
|
|
52
|
+
loader: 'ts-loader',
|
|
96
53
|
options: {
|
|
97
|
-
|
|
98
|
-
|
|
54
|
+
transpileOnly: true,
|
|
55
|
+
allowTsInNodeModules: true,
|
|
99
56
|
},
|
|
100
57
|
},
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
|
+
css: {
|
|
61
|
+
test: /\.s?css$/,
|
|
62
|
+
use: [
|
|
63
|
+
isDevServer ? 'css-hot-loader' : null,
|
|
64
|
+
mini_css_extract_plugin_1.default.loader,
|
|
65
|
+
'css-loader',
|
|
66
|
+
{
|
|
67
|
+
loader: 'sass-loader',
|
|
106
68
|
options: {
|
|
107
|
-
|
|
108
|
-
|
|
69
|
+
sourceMap: false,
|
|
70
|
+
additionalData: (0, extendSass_1.extendSass)(config),
|
|
109
71
|
},
|
|
110
72
|
},
|
|
73
|
+
].filter(Boolean),
|
|
74
|
+
},
|
|
75
|
+
image: {
|
|
76
|
+
test: /\.(gif|jpe?g|png|svg)$/,
|
|
77
|
+
use: {
|
|
78
|
+
loader: 'file-loader',
|
|
79
|
+
options: {
|
|
80
|
+
outputPath: 'content/assets/',
|
|
81
|
+
publicPath: '../assets/',
|
|
82
|
+
},
|
|
111
83
|
},
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
84
|
+
},
|
|
85
|
+
fonts: {
|
|
86
|
+
test: /\.(woff|woff2|eot|ttf|otf)(\?[\s\S]+)?$/,
|
|
87
|
+
use: {
|
|
88
|
+
loader: 'file-loader',
|
|
89
|
+
options: {
|
|
90
|
+
outputPath: 'content/fonts',
|
|
91
|
+
publicPath: '../fonts/',
|
|
92
|
+
},
|
|
117
93
|
},
|
|
118
|
-
}
|
|
94
|
+
},
|
|
95
|
+
sourcemap: {
|
|
96
|
+
test: /\.[tj]sx$/,
|
|
97
|
+
use: ['source-map-loader'],
|
|
98
|
+
enforce: 'pre',
|
|
99
|
+
exclude: [/node_modules/, /build/, /__test__/, /__tests__/],
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
const makeAliases = (config, projectDir) => {
|
|
119
103
|
const aliases = {
|
|
120
104
|
'@24i/smartapps-bigscreen-device': config.environment === 'production'
|
|
121
105
|
? '@24i/smartapps-bigscreen-device'
|
|
@@ -132,6 +116,25 @@ function generateConfig(config) {
|
|
|
132
116
|
}
|
|
133
117
|
});
|
|
134
118
|
}
|
|
119
|
+
return aliases;
|
|
120
|
+
};
|
|
121
|
+
function generateConfig(config) {
|
|
122
|
+
const projectDir = path_1.default.resolve(config.currentDir, '../../');
|
|
123
|
+
const platformBuildsDir = path_1.default.resolve(config.currentDir, '../');
|
|
124
|
+
const appBuildDir = path_1.default.resolve(config.currentDir);
|
|
125
|
+
const appBuildEngineProjectDir = path_1.default.resolve(config.currentDir, config.buildFolder);
|
|
126
|
+
const appBuildEngineProjectPublicDir = path_1.default.resolve(appBuildEngineProjectDir, 'public');
|
|
127
|
+
const platformSchemeAppIdObj = {
|
|
128
|
+
platform: config.platform,
|
|
129
|
+
scheme: config.scheme,
|
|
130
|
+
flavour: config.appConfigId,
|
|
131
|
+
};
|
|
132
|
+
const buildVersion = smartapps_bigscreen_rnv_build_engine_1.Resolvers.resolveBuildVersion(platformSchemeAppIdObj);
|
|
133
|
+
const baseUrl = smartapps_bigscreen_rnv_build_engine_1.Resolvers.resolveBaseUrl(platformSchemeAppIdObj);
|
|
134
|
+
const devServerHost = config.devServerHost || '0.0.0.0';
|
|
135
|
+
const isDevServer = appBuildEngineProjectDir.endsWith('/server');
|
|
136
|
+
const { PLATFORM } = process.env;
|
|
137
|
+
const isBuildHosted = config.isBuildHosted || false;
|
|
135
138
|
const appContentPath = getAppContentPath(baseUrl, isBuildHosted);
|
|
136
139
|
const copiedDirWithPublicContentPath = path_1.default.join(appBuildDir, `../${path_1.default.parse(appBuildDir).name}-public`);
|
|
137
140
|
const plugins = {
|
|
@@ -203,30 +206,24 @@ function generateConfig(config) {
|
|
|
203
206
|
},
|
|
204
207
|
}),
|
|
205
208
|
};
|
|
206
|
-
const extensions = [
|
|
207
|
-
...generateFlavourJSExtensions(config),
|
|
208
|
-
...generateFlavourSCSSExtensions(config),
|
|
209
|
-
];
|
|
210
|
-
const output = {
|
|
211
|
-
filename: 'content/js/[name].js',
|
|
212
|
-
publicPath: isBuildHosted ? `${baseUrl}/public` : '',
|
|
213
|
-
path: appBuildEngineProjectPublicDir,
|
|
214
|
-
};
|
|
215
|
-
const devServer = {
|
|
216
|
-
host: devServerHost,
|
|
217
|
-
};
|
|
218
|
-
const entry = {
|
|
219
|
-
polyfill: path_1.default.resolve(projectDir, 'polyfill/index.ts'),
|
|
220
|
-
bundle: path_1.default.resolve(projectDir, `${config.entryFile}.js`),
|
|
221
|
-
};
|
|
222
209
|
return {
|
|
223
|
-
Rules:
|
|
210
|
+
Rules: makeRules(config, projectDir, isDevServer),
|
|
211
|
+
extensions: [
|
|
212
|
+
...generateFlavourJSExtensions(config),
|
|
213
|
+
...generateFlavourSCSSExtensions(config),
|
|
214
|
+
],
|
|
215
|
+
aliases: makeAliases(config, projectDir),
|
|
216
|
+
entry: {
|
|
217
|
+
polyfill: path_1.default.resolve(projectDir, 'polyfill/index.ts'),
|
|
218
|
+
bundle: path_1.default.resolve(projectDir, `${config.entryFile}.js`),
|
|
219
|
+
},
|
|
220
|
+
devServer: { host: devServerHost },
|
|
221
|
+
output: {
|
|
222
|
+
filename: 'content/js/[name].js',
|
|
223
|
+
publicPath: isBuildHosted ? `${baseUrl}/public` : '',
|
|
224
|
+
path: appBuildEngineProjectPublicDir,
|
|
225
|
+
},
|
|
224
226
|
Plugins: plugins,
|
|
225
|
-
extensions,
|
|
226
|
-
aliases,
|
|
227
|
-
entry,
|
|
228
|
-
devServer,
|
|
229
|
-
output,
|
|
230
227
|
projectDir,
|
|
231
228
|
platformBuildsDir,
|
|
232
229
|
appBuildDir,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@24i/smartapps-bigscreen-rnv-build-engine",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.2-alpha.1693+5ba1dfd9",
|
|
4
4
|
"description": "Package with build engine for SmartApps BIGscreen projects...",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"@24i/smartapps-bigscreen-device": "*",
|
|
34
|
+
"@rnv/sdk-webpack": "0.35.0-alpha.2",
|
|
34
35
|
"assign-deep": "^1.0.1",
|
|
35
36
|
"core-js": "3.15.2",
|
|
36
37
|
"coveralls": "3.1.1",
|
|
@@ -47,8 +48,8 @@
|
|
|
47
48
|
"ora": "5.4.1",
|
|
48
49
|
"raf": "3.4.1",
|
|
49
50
|
"regenerator-runtime": "0.13.7",
|
|
50
|
-
"renative-template-blank": "0.
|
|
51
|
-
"rnv": "0.
|
|
51
|
+
"renative-template-blank": "0.35.0-alpha.2",
|
|
52
|
+
"rnv": "0.35.0-alpha.2",
|
|
52
53
|
"sass": "1.37.0",
|
|
53
54
|
"sass-loader": "10.1.1",
|
|
54
55
|
"source-map-loader": "1.1.3",
|
|
@@ -62,5 +63,5 @@
|
|
|
62
63
|
"keywords": [],
|
|
63
64
|
"author": "24i",
|
|
64
65
|
"license": "ISC",
|
|
65
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "5ba1dfd9109aedea738e0cef5af65edfcacc5689"
|
|
66
67
|
}
|