@24i/bigscreen-sdk 1.0.16 → 1.0.17-alpha.2324
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/package.json +4 -3
- package/packages/create-package/dist/createPackage.js +66 -0
- package/packages/create-package/dist/createPackage.js.map +1 -0
- package/packages/create-package/dist/index.js +5 -0
- package/packages/create-package/dist/index.js.map +1 -0
- package/packages/create-package/dist/questionnaire/questions.js +35 -0
- package/packages/create-package/dist/questionnaire/questions.js.map +1 -0
- package/packages/create-package/dist/settings/Settings.js +10 -0
- package/packages/create-package/dist/settings/Settings.js.map +1 -0
- package/packages/create-package/dist/types.js +3 -0
- package/packages/create-package/dist/types.js.map +1 -0
- package/packages/input/README.md +1 -1
- package/packages/input/src/Input.tsx +3 -5
- package/packages/interactable/src/Interactable.tsx +3 -22
- package/packages/rnv-build-engine/dist/src/constants/buildSchemes.js +14 -0
- package/packages/rnv-build-engine/dist/src/constants/index.js +7 -0
- package/packages/rnv-build-engine/dist/src/constants/platforms.js +14 -0
- package/packages/rnv-build-engine/dist/src/engine.js +94 -0
- package/packages/rnv-build-engine/dist/src/index.js +26 -0
- package/packages/rnv-build-engine/dist/src/resolvers/index.js +29 -0
- package/packages/rnv-build-engine/dist/src/resolvers/resolveBaseUrl.js +31 -0
- package/packages/rnv-build-engine/dist/src/resolvers/resolveBuildFileExtension.js +12 -0
- package/packages/rnv-build-engine/dist/src/resolvers/resolveBuildFileName.js +36 -0
- package/packages/rnv-build-engine/dist/src/resolvers/resolveBuildVersion.js +42 -0
- package/packages/rnv-build-engine/dist/src/resolvers/resolveBuildVersionOffset.js +34 -0
- package/packages/rnv-build-engine/dist/src/resolvers/resolveDeployLocations.js +79 -0
- package/packages/rnv-build-engine/dist/src/resolvers/resolveGenericRnvConfig.js +47 -0
- package/packages/rnv-build-engine/dist/src/resolvers/resolveHbbtvDeployConfig.js +13 -0
- package/packages/rnv-build-engine/dist/src/resolvers/resolveHbbtvDeployUrl.js +11 -0
- package/packages/rnv-build-engine/dist/src/resolvers/resolveHbbtvRemoteBuildDirRelativePath.js +24 -0
- package/packages/rnv-build-engine/dist/src/resolvers/resolveSupportedPlatforms.js +5 -0
- package/packages/rnv-build-engine/dist/src/resolvers/resolveUsedFlavours.js +23 -0
- package/packages/rnv-build-engine/dist/src/resolvers/resolveZippedPlatformBuildsRelativeFilePath.js +14 -0
- package/packages/rnv-build-engine/dist/src/scripts/buildAllWithScheme.js +25 -0
- package/packages/rnv-build-engine/dist/src/scripts/generateDeployUrls/formatTableDataSpaces.js +30 -0
- package/packages/rnv-build-engine/dist/src/scripts/generateDeployUrls/generateDeployUrls.js +90 -0
- package/packages/rnv-build-engine/dist/src/scripts/generateDeployUrls/index.js +4 -0
- package/packages/rnv-build-engine/dist/src/scripts/generateDeployUrls/makeTableDataByScheme.js +63 -0
- package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/afterVersionBump.js +18 -0
- package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/beforeVersionBump.js +12 -0
- package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/checkReleaseNotes.js +16 -0
- package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/pushRelease.js +31 -0
- package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/pushReleaseCandidate.js +6 -0
- package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/pushReleaseNotes.js +37 -0
- package/packages/rnv-build-engine/dist/src/scripts/release/deleteSourceMaps.js +11 -0
- package/packages/rnv-build-engine/dist/src/scripts/release/deployToAppCenter.js +83 -0
- package/packages/rnv-build-engine/dist/src/scripts/release/githubRelease.js +128 -0
- package/packages/rnv-build-engine/dist/src/scripts/release/notifySlack/generateWebhoook.js +66 -0
- package/packages/rnv-build-engine/dist/src/scripts/release/notifySlack/makePayload.js +92 -0
- package/packages/rnv-build-engine/dist/src/scripts/release/notifySlack/notifySlack.js +44 -0
- package/packages/rnv-build-engine/dist/src/scripts/release/notifySlack/slackBlockKitBuilder.js +39 -0
- package/packages/rnv-build-engine/dist/src/scripts/release/sentryRelease.js +85 -0
- package/packages/rnv-build-engine/dist/src/scripts/release/urlsMarkdown.js +62 -0
- package/packages/rnv-build-engine/dist/src/scripts/releaseAllWithScheme.js +79 -0
- package/packages/rnv-build-engine/dist/src/scripts/utils/cmdUtils.js +12 -0
- package/packages/rnv-build-engine/dist/src/scripts/utils/fsUtils.js +33 -0
- package/packages/rnv-build-engine/dist/src/scripts/utils/generateIcons.js +29 -0
- package/packages/rnv-build-engine/dist/src/scripts/utils/gitUtils.js +78 -0
- package/packages/rnv-build-engine/dist/src/scripts/utils/index.js +27 -0
- package/packages/rnv-build-engine/dist/src/scripts/utils/stringUtils.js +5 -0
- package/packages/rnv-build-engine/dist/src/sdks/index.js +42 -0
- package/packages/rnv-build-engine/dist/src/sdks/sdk-tizen/index.js +13 -0
- package/packages/rnv-build-engine/dist/src/sdks/sdk-tizen/sdkTizen.js +240 -0
- package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/index.js +14 -0
- package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/registerSdkPath.js +14 -0
- package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/index.js +5 -0
- package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/sdkInstaller.js +39 -0
- package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/clean.js +11 -0
- package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/download.js +74 -0
- package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/index.js +11 -0
- package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/install.js +23 -0
- package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/unzip.js +12 -0
- package/packages/rnv-build-engine/dist/src/sdks/sdk-webos/index.js +13 -0
- package/packages/rnv-build-engine/dist/src/sdks/sdk-webos/sdkWebos.js +135 -0
- package/packages/rnv-build-engine/dist/src/sdks/sdk-webpack/index.js +13 -0
- package/packages/rnv-build-engine/dist/src/sdks/sdk-webpack/sdkWebpack.js +32 -0
- package/packages/rnv-build-engine/dist/src/sdks/sdk-xbox/index.js +13 -0
- package/packages/rnv-build-engine/dist/src/sdks/sdk-xbox/sdkXbox.js +222 -0
- package/packages/rnv-build-engine/dist/src/tasks/deploy/aswS3/aws.js +22 -0
- package/packages/rnv-build-engine/dist/src/tasks/deploy/aswS3/deployS3.js +71 -0
- package/packages/rnv-build-engine/dist/src/tasks/deploy/hbbtv/deployHbbtv.js +94 -0
- package/packages/rnv-build-engine/dist/src/tasks/engineTasks.js +22 -0
- package/packages/rnv-build-engine/dist/src/tasks/task.rnv.build.js +99 -0
- package/packages/rnv-build-engine/dist/src/tasks/task.rnv.configure.js +45 -0
- package/packages/rnv-build-engine/dist/src/tasks/task.rnv.configureSoft.js +31 -0
- package/packages/rnv-build-engine/dist/src/tasks/task.rnv.deploy.js +40 -0
- package/packages/rnv-build-engine/dist/src/tasks/task.rnv.hooks.run.js +71 -0
- package/packages/rnv-build-engine/dist/src/tasks/task.rnv.package.js +19 -0
- package/packages/rnv-build-engine/dist/src/tasks/task.rnv.project.configure.js +116 -0
- package/packages/rnv-build-engine/dist/src/tasks/task.rnv.start.js +72 -0
- package/packages/rnv-build-engine/dist/src/types/c.js +2 -0
- package/packages/rnv-build-engine/dist/src/types/constants.js +2 -0
- package/packages/rnv-build-engine/dist/src/types/index.js +2 -0
- package/packages/rnv-build-engine/dist/src/utils/forEachSupportedPlatformFlavour.js +24 -0
- package/packages/rnv-build-engine/dist/src/utils/generatePngSpriteMap.js +78 -0
- package/packages/rnv-build-engine/dist/src/utils/generateSvgSpriteMap.js +113 -0
- package/packages/rnv-build-engine/dist/src/utils/mergeSvgAndPngIcons.js +61 -0
- package/packages/rnv-build-engine/dist/src/utils/replaceRelevantStringsInConfig/index.js +5 -0
- package/packages/rnv-build-engine/dist/src/utils/replaceRelevantStringsInConfig/replaceRelevantStringsInConfig.js +31 -0
- package/packages/rnv-build-engine/dist/src/utils/replaceRelevantStringsInConfig/replaceTemplateString.js +40 -0
- package/packages/rnv-build-engine/dist/src/utils/zipBuildsByPlatforms.js +61 -0
- package/packages/rnv-build-engine/dist/templates/platforms/_shared/template.js +110 -0
- package/packages/rnv-build-engine/dist/templates/platforms/_shared/utils/extendSass.js +29 -0
- package/packages/rnv-build-engine/dist/templates/platforms/_shared/utils/joinStrings.js +5 -0
- package/packages/rnv-build-engine/dist/templates/platforms/_shared/webpack.base.js +239 -0
- package/packages/rnv-build-engine/dist/templates/platforms/entone/webpack.config.dev.js +63 -0
- package/packages/rnv-build-engine/dist/templates/platforms/entone/webpack.config.prod.js +58 -0
- package/packages/rnv-build-engine/dist/templates/platforms/hbbtv/webpack.config.dev.js +80 -0
- package/packages/rnv-build-engine/dist/templates/platforms/hbbtv/webpack.config.prod.js +75 -0
- package/packages/rnv-build-engine/dist/templates/platforms/kreatv/webpack.config.dev.js +63 -0
- package/packages/rnv-build-engine/dist/templates/platforms/kreatv/webpack.config.prod.js +58 -0
- package/packages/rnv-build-engine/dist/templates/platforms/saphi/webpack.config.dev.js +63 -0
- package/packages/rnv-build-engine/dist/templates/platforms/saphi/webpack.config.prod.js +58 -0
- package/packages/rnv-build-engine/dist/templates/platforms/tizen/project/.project +24 -0
- package/packages/rnv-build-engine/dist/templates/platforms/tizen/project/.tproject +12 -0
- package/packages/rnv-build-engine/dist/templates/platforms/tizen/project/config.xml +17 -0
- package/packages/rnv-build-engine/dist/templates/platforms/tizen/webpack.config.dev.js +64 -0
- package/packages/rnv-build-engine/dist/templates/platforms/tizen/webpack.config.prod.js +58 -0
- package/packages/rnv-build-engine/dist/templates/platforms/webos/project/.project +35 -0
- package/packages/rnv-build-engine/dist/templates/platforms/webos/project/appinfo.json +19 -0
- package/packages/rnv-build-engine/dist/templates/platforms/webos/webpack.config.dev.js +65 -0
- package/packages/rnv-build-engine/dist/templates/platforms/webos/webpack.config.prod.js +58 -0
- package/packages/rnv-build-engine/dist/templates/platforms/webtv/webpack.config.dev.js +63 -0
- package/packages/rnv-build-engine/dist/templates/platforms/webtv/webpack.config.prod.js +58 -0
- package/packages/rnv-build-engine/dist/templates/platforms/xbox/webpack.config.dev.js +64 -0
- package/packages/rnv-build-engine/dist/templates/platforms/xbox/webpack.config.prod.js +58 -0
- package/packages/sdk-installer/dist/index.js +5 -0
- package/packages/sdk-installer/dist/sdkInstaller.js +38 -0
- package/packages/sdk-installer/dist/services/clean.js +11 -0
- package/packages/sdk-installer/dist/services/download.js +55 -0
- package/packages/sdk-installer/dist/services/index.js +11 -0
- package/packages/sdk-installer/dist/services/install.js +24 -0
- package/packages/sdk-installer/dist/services/unzip.js +12 -0
- package/packages/sdk-installer/dist/types/index.d.ts +1 -0
- package/packages/sdk-installer/dist/types/sdkInstaller.d.ts +7 -0
- package/packages/sdk-installer/dist/types/services/clean.d.ts +2 -0
- package/packages/sdk-installer/dist/types/services/download.d.ts +2 -0
- package/packages/sdk-installer/dist/types/services/index.d.ts +4 -0
- package/packages/sdk-installer/dist/types/services/install.d.ts +2 -0
- package/packages/sdk-installer/dist/types/services/unzip.d.ts +2 -0
- package/packages/types-bigscreen-jsx/README.md +5 -4
- package/packages/types-bigscreen-jsx/index.d.ts +4 -4
- package/packages/utils/README.md +10 -0
- package/packages/utils/src/index.ts +5 -0
- package/packages/utils/src/keyPress/index.ts +2 -0
- package/packages/utils/src/keyPress/keyPressSimulator.ts +44 -0
- package/packages/utils/src/keyPress/simulateKeyPress.ts +25 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generatePngSpriteMap = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const webpack_1 = __importDefault(require("webpack"));
|
|
10
|
+
const webpack_spritesmith_1 = __importDefault(require("webpack-spritesmith"));
|
|
11
|
+
const child_process_1 = require("child_process");
|
|
12
|
+
const makeWebpackSpritesmithConfig = (appBuildDir, config) => ({
|
|
13
|
+
entry: {
|
|
14
|
+
bundle: 'index.js',
|
|
15
|
+
},
|
|
16
|
+
plugins: [
|
|
17
|
+
new webpack_spritesmith_1.default({
|
|
18
|
+
src: {
|
|
19
|
+
cwd: path_1.default.resolve(appBuildDir, config.iconsFolder),
|
|
20
|
+
glob: '**/*.png',
|
|
21
|
+
},
|
|
22
|
+
target: {
|
|
23
|
+
image: path_1.default.resolve(appBuildDir, config.spriteOutput),
|
|
24
|
+
css: [
|
|
25
|
+
path_1.default.resolve(appBuildDir, config.jsonOutput),
|
|
26
|
+
path_1.default.resolve(appBuildDir, config.cssOutput),
|
|
27
|
+
],
|
|
28
|
+
},
|
|
29
|
+
apiOptions: {
|
|
30
|
+
cssImageRef: 'sprite.png',
|
|
31
|
+
generateSpriteName: (fullPathToSourceFile) => {
|
|
32
|
+
const { name } = path_1.default.parse(fullPathToSourceFile);
|
|
33
|
+
return `${config.iconPrefix}${name}`;
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
}),
|
|
37
|
+
],
|
|
38
|
+
resolve: {
|
|
39
|
+
symlinks: false,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
const runSpritesmith = (config) => (new Promise((resolve) => {
|
|
43
|
+
const webpackCompiler = (0, webpack_1.default)(config);
|
|
44
|
+
const spritesmith = config.plugins[0];
|
|
45
|
+
spritesmith.apply(webpackCompiler);
|
|
46
|
+
spritesmith.compile(() => {
|
|
47
|
+
spritesmith.getWatcher().close();
|
|
48
|
+
resolve();
|
|
49
|
+
});
|
|
50
|
+
}));
|
|
51
|
+
const removeEmptyFiles = (appBuildDir, config) => {
|
|
52
|
+
const spriteImagePath = path_1.default.join(appBuildDir, config.spriteOutput);
|
|
53
|
+
const spriteMapCSSPath = path_1.default.join(appBuildDir, config.cssOutput);
|
|
54
|
+
const spriteNamesJsonPath = path_1.default.join(appBuildDir, config.jsonOutput);
|
|
55
|
+
if (fs_1.default.existsSync(spriteImagePath) && !fs_1.default.statSync(spriteImagePath).size) {
|
|
56
|
+
(0, child_process_1.execSync)(`rm -rf ${spriteImagePath}`);
|
|
57
|
+
(0, child_process_1.execSync)(`rm -rf ${spriteMapCSSPath}`);
|
|
58
|
+
(0, child_process_1.execSync)(`rm -rf ${spriteNamesJsonPath}`);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const generatePngSpriteMap = async (c) => {
|
|
62
|
+
const config = {
|
|
63
|
+
iconsFolder: '../../icons',
|
|
64
|
+
spriteOutput: '../../platformAssets/runtime/sprite.png',
|
|
65
|
+
cssOutput: '../../platformAssets/runtime/png_icons.css',
|
|
66
|
+
jsonOutput: '../../platformAssets/png_icons.json',
|
|
67
|
+
iconPrefix: c.buildConfig?.common.pngIconPrefix || '',
|
|
68
|
+
};
|
|
69
|
+
const rnvBuildDirPath = `${c.paths.project.builds.dir}/${c.runtime.appId}_${c.platform}`;
|
|
70
|
+
if (!fs_1.default.existsSync(path_1.default.resolve(rnvBuildDirPath, config.iconsFolder))) {
|
|
71
|
+
console.log('No icons folder found. Skipping generating png spritemap.');
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const webpackConfig = makeWebpackSpritesmithConfig(rnvBuildDirPath, config);
|
|
75
|
+
await runSpritesmith(webpackConfig);
|
|
76
|
+
removeEmptyFiles(rnvBuildDirPath, config);
|
|
77
|
+
};
|
|
78
|
+
exports.generatePngSpriteMap = generatePngSpriteMap;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.generateSvgSpriteMap = void 0;
|
|
26
|
+
const fs_1 = __importDefault(require("fs"));
|
|
27
|
+
const path_1 = __importDefault(require("path"));
|
|
28
|
+
const glob = __importStar(require("glob"));
|
|
29
|
+
const child_process_1 = require("child_process");
|
|
30
|
+
const getSvgData = (matches) => {
|
|
31
|
+
const xlmns = 'http://www.w3.org/2000/svg';
|
|
32
|
+
const xlmnsXlink = 'http://www.w3.org/1999/xlink';
|
|
33
|
+
return `\
|
|
34
|
+
<svg version="1.1" xmlns="${xlmns}" xmlns:xlink="${xlmnsXlink}" ${matches.groups.viewbox}>
|
|
35
|
+
${matches.groups.content}
|
|
36
|
+
</svg>`;
|
|
37
|
+
};
|
|
38
|
+
const getSpriteBgStyle = (name, data, prefix = 'icon-') => `.${prefix}${name} {
|
|
39
|
+
background-image: url("data:image/svg+xml,${encodeURIComponent(data)}");
|
|
40
|
+
}`;
|
|
41
|
+
const getSpriteMaskStyle = (name, data, prefix = 'icon-mask-') => `.${prefix}${name} {
|
|
42
|
+
-webkit-mask-image: url("data:image/svg+xml,${encodeURIComponent(data)}");
|
|
43
|
+
}`;
|
|
44
|
+
const copyAllSvgRecursively = (iconsPath, allIconsPath) => {
|
|
45
|
+
const files = glob.sync(`${iconsPath}/**/*.svg`);
|
|
46
|
+
if (!files.length)
|
|
47
|
+
return false;
|
|
48
|
+
files.forEach((file) => fs_1.default.copyFileSync(file, path_1.default.resolve(allIconsPath, path_1.default.basename(file))));
|
|
49
|
+
return true;
|
|
50
|
+
};
|
|
51
|
+
const generateSvgSpriteMap = (c) => {
|
|
52
|
+
const config = {
|
|
53
|
+
iconsFolder: '../../icons',
|
|
54
|
+
cssOutput: '../../platformAssets/runtime/svg_icons.css',
|
|
55
|
+
jsonOutput: '../../platformAssets/svg_icons.json',
|
|
56
|
+
maskList: c.buildConfig?.common.svgIconsMaskList || [],
|
|
57
|
+
iconPrefix: c.buildConfig?.common.svgIconPrefix || '',
|
|
58
|
+
};
|
|
59
|
+
const rnvBuildDirPath = `${c.paths.project.builds.dir}/${c.runtime.appId}_${c.platform}`;
|
|
60
|
+
const iconsPath = path_1.default.join(rnvBuildDirPath, config.iconsFolder);
|
|
61
|
+
const spriteMapCSSPath = path_1.default.join(rnvBuildDirPath, config.cssOutput);
|
|
62
|
+
const spriteNamesJsonPath = path_1.default.join(rnvBuildDirPath, config.jsonOutput);
|
|
63
|
+
const allIconsPath = path_1.default.join(iconsPath, '_all');
|
|
64
|
+
const optimisedPath = path_1.default.join(iconsPath, '_optimised');
|
|
65
|
+
const configPath = path_1.default.join(iconsPath, '.svgo.yml');
|
|
66
|
+
if (!fs_1.default.existsSync(iconsPath)) {
|
|
67
|
+
console.log('No icons folder found. Skipping generating svg spritemap.');
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
fs_1.default.mkdirSync(allIconsPath, { recursive: true });
|
|
71
|
+
if (!copyAllSvgRecursively(iconsPath, allIconsPath)) {
|
|
72
|
+
console.log('No SVG files found. Skipping generating svg spritemap.');
|
|
73
|
+
(0, child_process_1.execSync)(`rm -rf ${allIconsPath}`);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
if (!fs_1.default.existsSync(configPath)) {
|
|
77
|
+
console.log('No .svgo.yml file found. Skipping generating svg spritemap.');
|
|
78
|
+
(0, child_process_1.execSync)(`rm -rf ${allIconsPath}`);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
(0, child_process_1.execSync)(`npx svgo -f "${allIconsPath}" -o "${optimisedPath}" --config="${configPath}" --multipass`);
|
|
82
|
+
const files = fs_1.default.readdirSync(optimisedPath);
|
|
83
|
+
const spriteNames = {};
|
|
84
|
+
const svgSymbols = files
|
|
85
|
+
.filter((name) => name.endsWith('.svg'))
|
|
86
|
+
.map((fileName) => {
|
|
87
|
+
const maskListIncludesFileName = config.maskList.includes(fileName);
|
|
88
|
+
const spriteName = `${config.iconPrefix}${fileName}`
|
|
89
|
+
.replace('.svg', '')
|
|
90
|
+
.replace(' ', '-')
|
|
91
|
+
.toLowerCase();
|
|
92
|
+
spriteNames[spriteName] = '';
|
|
93
|
+
if (maskListIncludesFileName) {
|
|
94
|
+
spriteNames[`mask-${spriteName}`] = '';
|
|
95
|
+
}
|
|
96
|
+
const icon = fs_1.default.readFileSync(path_1.default.join(optimisedPath, fileName)).toString().trim();
|
|
97
|
+
const matches = icon.match(/<svg.*(?<viewbox>viewBox="[\d ]+")[^>]*>(?<content>.*)<\/svg>$/s);
|
|
98
|
+
if (!matches) {
|
|
99
|
+
return '';
|
|
100
|
+
}
|
|
101
|
+
const svgData = getSvgData(matches);
|
|
102
|
+
const spriteBgStyle = getSpriteBgStyle(spriteName, svgData);
|
|
103
|
+
return maskListIncludesFileName
|
|
104
|
+
? [spriteBgStyle, getSpriteMaskStyle(spriteName, svgData)].join('\n\n')
|
|
105
|
+
: spriteBgStyle;
|
|
106
|
+
});
|
|
107
|
+
const indentSpaces = 4;
|
|
108
|
+
fs_1.default.writeFileSync(spriteNamesJsonPath, JSON.stringify(spriteNames, null, indentSpaces));
|
|
109
|
+
fs_1.default.writeFileSync(spriteMapCSSPath, svgSymbols.join('\n\n'));
|
|
110
|
+
(0, child_process_1.execSync)(`rm -rf ${allIconsPath}`);
|
|
111
|
+
(0, child_process_1.execSync)(`rm -rf ${optimisedPath}`);
|
|
112
|
+
};
|
|
113
|
+
exports.generateSvgSpriteMap = generateSvgSpriteMap;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.mergeSvgAndPngIcons = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
const mergeJsonObjects = (svgJsonObject, pngJsonObject) => {
|
|
11
|
+
const merged = {};
|
|
12
|
+
Object.entries(svgJsonObject).forEach(([key]) => { merged[key] = ''; });
|
|
13
|
+
Object.entries(pngJsonObject).forEach(([key]) => { merged[key] = ''; });
|
|
14
|
+
return merged;
|
|
15
|
+
};
|
|
16
|
+
const mergeSvgAndPngIcons = (c) => {
|
|
17
|
+
const config = {
|
|
18
|
+
svgCssOutput: '../../platformAssets/runtime/svg_icons.css',
|
|
19
|
+
pngCssOutput: '../../platformAssets/runtime/png_icons.css',
|
|
20
|
+
svgJsonOutput: '../../platformAssets/svg_icons.json',
|
|
21
|
+
pngJsonOutput: '../../platformAssets/png_icons.json',
|
|
22
|
+
mergedCssOutput: '../../platformAssets/runtime/icons.css',
|
|
23
|
+
mergedJsonOutput: '../../platformAssets/icons.json',
|
|
24
|
+
};
|
|
25
|
+
const projectPaths = c.paths.project;
|
|
26
|
+
const rnvBuildDirPath = `${projectPaths.builds.dir}/${c.runtime.appId}_${c.platform}`;
|
|
27
|
+
const svgSpriteMapCSSPath = path_1.default.join(rnvBuildDirPath, config.svgCssOutput);
|
|
28
|
+
const pngSpriteMapCSSPath = path_1.default.join(rnvBuildDirPath, config.pngCssOutput);
|
|
29
|
+
const svgJsonPath = path_1.default.join(rnvBuildDirPath, config.svgJsonOutput);
|
|
30
|
+
const pngJsonPath = path_1.default.join(rnvBuildDirPath, config.pngJsonOutput);
|
|
31
|
+
const mergedCssPath = path_1.default.join(rnvBuildDirPath, config.mergedCssOutput);
|
|
32
|
+
const mergedJsonPath = path_1.default.join(rnvBuildDirPath, config.mergedJsonOutput);
|
|
33
|
+
let svgSpriteCss = '';
|
|
34
|
+
let pngSpriteCss = '';
|
|
35
|
+
let svgJsonObject = {};
|
|
36
|
+
let pngJsonObject = {};
|
|
37
|
+
if (fs_1.default.existsSync(svgSpriteMapCSSPath)) {
|
|
38
|
+
svgSpriteCss = fs_1.default.readFileSync(svgSpriteMapCSSPath).toString();
|
|
39
|
+
(0, child_process_1.execSync)(`rm -rf ${svgSpriteMapCSSPath}`);
|
|
40
|
+
}
|
|
41
|
+
if (fs_1.default.existsSync(pngSpriteMapCSSPath)) {
|
|
42
|
+
pngSpriteCss = fs_1.default.readFileSync(pngSpriteMapCSSPath).toString();
|
|
43
|
+
(0, child_process_1.execSync)(`rm -rf ${pngSpriteMapCSSPath}`);
|
|
44
|
+
}
|
|
45
|
+
if (fs_1.default.existsSync(svgJsonPath)) {
|
|
46
|
+
svgJsonObject = JSON.parse(fs_1.default.readFileSync(svgJsonPath).toString());
|
|
47
|
+
}
|
|
48
|
+
if (fs_1.default.existsSync(pngJsonPath)) {
|
|
49
|
+
pngJsonObject = JSON.parse(fs_1.default.readFileSync(pngJsonPath).toString());
|
|
50
|
+
}
|
|
51
|
+
const indentSpaces = 4;
|
|
52
|
+
const mergedCss = (`${svgSpriteCss}\n${pngSpriteCss}`).trim();
|
|
53
|
+
const mergedJson = JSON.stringify(mergeJsonObjects(svgJsonObject, pngJsonObject), null, indentSpaces);
|
|
54
|
+
fs_1.default.writeFileSync(mergedCssPath, mergedCss);
|
|
55
|
+
fs_1.default.writeFileSync(mergedJsonPath, mergedJson);
|
|
56
|
+
const svgIconsCount = Object.keys(svgJsonObject).length;
|
|
57
|
+
const pngIconsCount = Object.keys(pngJsonObject).length;
|
|
58
|
+
const iconsAllCount = svgIconsCount + pngIconsCount;
|
|
59
|
+
console.log(`icons.json and icons.css created in platformAssets folder (${iconsAllCount} icons - ${svgIconsCount} svg, ${pngIconsCount} png)`);
|
|
60
|
+
};
|
|
61
|
+
exports.mergeSvgAndPngIcons = mergeSvgAndPngIcons;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.replaceRelevantStringsInConfig = void 0;
|
|
4
|
+
var replaceRelevantStringsInConfig_1 = require("./replaceRelevantStringsInConfig");
|
|
5
|
+
Object.defineProperty(exports, "replaceRelevantStringsInConfig", { enumerable: true, get: function () { return replaceRelevantStringsInConfig_1.replaceRelevantStringsInConfig; } });
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.replaceRelevantStringsInConfig = void 0;
|
|
4
|
+
const replaceTemplateString_1 = require("./replaceTemplateString");
|
|
5
|
+
const processObject = (c, object) => {
|
|
6
|
+
if (!object)
|
|
7
|
+
return;
|
|
8
|
+
const objectKeys = Object.keys(object);
|
|
9
|
+
const processStringValue = (string, objectKeyName) => {
|
|
10
|
+
const replacedString = (0, replaceTemplateString_1.replaceTemplateString)(c, string);
|
|
11
|
+
if (replacedString !== string) {
|
|
12
|
+
object[objectKeyName] = replacedString;
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
objectKeys.forEach((key) => {
|
|
16
|
+
const keyValue = object[key];
|
|
17
|
+
if (typeof keyValue === 'string') {
|
|
18
|
+
processStringValue(keyValue, key);
|
|
19
|
+
}
|
|
20
|
+
else if (typeof keyValue === 'object' && keyValue !== null) {
|
|
21
|
+
processObject(c, keyValue);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
const replaceRelevantStringsInConfig = (c) => {
|
|
26
|
+
const { defaults, common, platforms } = c.buildConfig;
|
|
27
|
+
processObject(c, defaults);
|
|
28
|
+
processObject(c, common);
|
|
29
|
+
processObject(c, platforms);
|
|
30
|
+
};
|
|
31
|
+
exports.replaceRelevantStringsInConfig = replaceRelevantStringsInConfig;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.replaceTemplateString = void 0;
|
|
4
|
+
const rnv_1 = require("rnv");
|
|
5
|
+
const { getConfigProp } = rnv_1.Common;
|
|
6
|
+
const getValueFromConfigByStringPath = (c, stringPathToObjectProp) => {
|
|
7
|
+
const pathToPropList = stringPathToObjectProp.split('.');
|
|
8
|
+
const listLength = pathToPropList.length;
|
|
9
|
+
let currentPropValue = c;
|
|
10
|
+
for (let i = 1; i < listLength; i++) {
|
|
11
|
+
currentPropValue = currentPropValue[pathToPropList[i]];
|
|
12
|
+
if (currentPropValue === undefined) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return currentPropValue;
|
|
17
|
+
};
|
|
18
|
+
const getValue = (c, stringInsideBracelets) => {
|
|
19
|
+
if (stringInsideBracelets.startsWith('c.')) {
|
|
20
|
+
return getValueFromConfigByStringPath(c, stringInsideBracelets);
|
|
21
|
+
}
|
|
22
|
+
if (stringInsideBracelets.startsWith('configProps.')) {
|
|
23
|
+
return getConfigProp(c, c.platform, stringInsideBracelets.replace('configProps.', ''));
|
|
24
|
+
}
|
|
25
|
+
return stringInsideBracelets;
|
|
26
|
+
};
|
|
27
|
+
const injectorStartMark = '{{';
|
|
28
|
+
const injectorEndMark = '}}';
|
|
29
|
+
const injectorRegexp = new RegExp(`${injectorStartMark}.*?${injectorEndMark}`, 'g');
|
|
30
|
+
const replaceTemplateString = (c, input) => {
|
|
31
|
+
if (!input)
|
|
32
|
+
return '';
|
|
33
|
+
const replacer = (match) => {
|
|
34
|
+
const stringInBracelets = match.slice(injectorStartMark.length, -injectorEndMark.length);
|
|
35
|
+
const value = getValue(c, stringInBracelets);
|
|
36
|
+
return value === match ? value : replaceTemplateString(c, value);
|
|
37
|
+
};
|
|
38
|
+
return input.replace(injectorRegexp, replacer);
|
|
39
|
+
};
|
|
40
|
+
exports.replaceTemplateString = replaceTemplateString;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.zipBuildsByPlatforms = void 0;
|
|
23
|
+
const fs_1 = require("fs");
|
|
24
|
+
const path_1 = require("path");
|
|
25
|
+
const child_process_1 = require("child_process");
|
|
26
|
+
const glob = __importStar(require("glob"));
|
|
27
|
+
const resolvers_1 = require("../resolvers");
|
|
28
|
+
const zipDir = (dir, outputFile) => (0, child_process_1.execSync)(`zip ${outputFile} -0 -j ${dir}/*`);
|
|
29
|
+
const getPlatformBuildsPaths = (c, platformName) => {
|
|
30
|
+
const { platformBuildsDir } = c.buildConfig.paths;
|
|
31
|
+
const outputGlob = `${platformBuildsDir}/**/output`;
|
|
32
|
+
const platformBuildsGlob = `${outputGlob}/*.${(0, resolvers_1.resolveBuildFileExtension)(platformName)}`;
|
|
33
|
+
try {
|
|
34
|
+
const buildsPathsCandidates = glob.sync(platformBuildsGlob) || [];
|
|
35
|
+
return buildsPathsCandidates.filter((path) => path.includes(platformName));
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
const processPlatform = (c, platformName) => {
|
|
42
|
+
const platformBuildsPaths = getPlatformBuildsPaths(c, platformName);
|
|
43
|
+
if (platformBuildsPaths && platformBuildsPaths.length === 0)
|
|
44
|
+
return;
|
|
45
|
+
const outputZipFilePath = (0, resolvers_1.resolveZippedPlatformBuildsRelativeFilePath)(c, platformName);
|
|
46
|
+
const tempPlatformDir = `${(0, path_1.dirname)(outputZipFilePath)}/${platformName}`;
|
|
47
|
+
(0, fs_1.mkdirSync)(tempPlatformDir, { recursive: true });
|
|
48
|
+
const copyBuildFileIntoTempPlatformDir = (buildFilePath) => {
|
|
49
|
+
const buildFileName = (0, path_1.basename)(buildFilePath);
|
|
50
|
+
const dest = `${tempPlatformDir}/${buildFileName}`;
|
|
51
|
+
(0, fs_1.copyFileSync)(buildFilePath, dest);
|
|
52
|
+
};
|
|
53
|
+
platformBuildsPaths.forEach(copyBuildFileIntoTempPlatformDir);
|
|
54
|
+
zipDir(tempPlatformDir, outputZipFilePath);
|
|
55
|
+
(0, fs_1.rmdirSync)(tempPlatformDir, { recursive: true });
|
|
56
|
+
};
|
|
57
|
+
const zipBuildsByPlatforms = (c) => {
|
|
58
|
+
(0, resolvers_1.resolveSupportedPlatforms)(c)
|
|
59
|
+
.forEach((platformName) => processPlatform(c, platformName));
|
|
60
|
+
};
|
|
61
|
+
exports.zipBuildsByPlatforms = zipBuildsByPlatforms;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const joinStrings_1 = require("./utils/joinStrings");
|
|
4
|
+
const DEFAULT_CONFIG = {
|
|
5
|
+
isDebug: false,
|
|
6
|
+
docType: '<!DOCTYPE html>',
|
|
7
|
+
htmlTag: '<html lang="en">',
|
|
8
|
+
contentType: '',
|
|
9
|
+
metaTags: '<meta name="viewport" content="width=1280" />',
|
|
10
|
+
};
|
|
11
|
+
const removeBlankLines = (string) => string.replace(/^\s*\n/gm, '');
|
|
12
|
+
const constructCustomHtmlTemplate = (options) => {
|
|
13
|
+
const { htmlTemplate: custom = {} } = options;
|
|
14
|
+
const { docType, htmlTag, metaTags, headPrepend, headAppend, bodyPrepend, bodyAppend, } = options;
|
|
15
|
+
options.docType = custom.docType || docType || '';
|
|
16
|
+
options.htmlTag = custom.htmlTag || htmlTag || '';
|
|
17
|
+
options.metaTags = (0, joinStrings_1.joinStrings)(metaTags, custom.metaTags, '<meta charset="utf-8" />');
|
|
18
|
+
options.headPrepend = (0, joinStrings_1.joinStrings)(headPrepend, custom.headPrepend);
|
|
19
|
+
options.headAppend = (0, joinStrings_1.joinStrings)(headAppend, custom.headAppend);
|
|
20
|
+
options.bodyPrepend = (0, joinStrings_1.joinStrings)(bodyPrepend, custom.bodyPrepend);
|
|
21
|
+
options.bodyAppend = (0, joinStrings_1.joinStrings)(bodyAppend, custom.bodyAppend);
|
|
22
|
+
return options;
|
|
23
|
+
};
|
|
24
|
+
const htmlTemp = (options) => {
|
|
25
|
+
const config = constructCustomHtmlTemplate({
|
|
26
|
+
...DEFAULT_CONFIG, ...options,
|
|
27
|
+
});
|
|
28
|
+
const { docType, title, metaTags, htmlTag, contentType, isDebug, debug, debugIp, platform, headPrepend, headAppend, bodyPrepend, bodyAppend, splashUrl, resolution, } = config;
|
|
29
|
+
const titleTag = `<title>${title}</title>`;
|
|
30
|
+
const noScript = '<noscript>You need to enable JavaScript to run this app.</noscript>';
|
|
31
|
+
let remoteDebugScript = '';
|
|
32
|
+
if (debug === 'true' && debugIp) {
|
|
33
|
+
remoteDebugScript = `<script src="http://${debugIp}:8080/target/target-script-min.js#anonymous"></script>`;
|
|
34
|
+
}
|
|
35
|
+
let xboxScripts = '';
|
|
36
|
+
if (platform === 'xbox') {
|
|
37
|
+
xboxScripts = '<script src="/lib/TVHelpers/directionalnavigation-1.0.0.0.js"></script>';
|
|
38
|
+
}
|
|
39
|
+
let tizenScripts = '';
|
|
40
|
+
if (platform === 'tizen') {
|
|
41
|
+
tizenScripts = '<script type="text/javascript" src="$WEBAPIS/webapis/webapis.js"></script>';
|
|
42
|
+
}
|
|
43
|
+
let webtvScripts = '';
|
|
44
|
+
if (platform === 'webtv') {
|
|
45
|
+
webtvScripts = `
|
|
46
|
+
<script>
|
|
47
|
+
var faviconUpdate = function() {
|
|
48
|
+
var faviconElement = document.getElementById('favicon');
|
|
49
|
+
faviconElement.href = "content/favicon.ico?v" + new Date().getTime();
|
|
50
|
+
window.removeEventListener('load', this);
|
|
51
|
+
console.log('TU1');
|
|
52
|
+
}
|
|
53
|
+
window.addEventListener('load', faviconUpdate);
|
|
54
|
+
</script>
|
|
55
|
+
<link id="favicon" rel="icon" type="image/x-icon" href="content/favicon.ico">`;
|
|
56
|
+
}
|
|
57
|
+
let splashScript = '';
|
|
58
|
+
let splashDiv = '';
|
|
59
|
+
if (splashUrl) {
|
|
60
|
+
const { width, height } = resolution;
|
|
61
|
+
splashScript = `<script>
|
|
62
|
+
var splashRemove = function() {
|
|
63
|
+
var splashElement = document.getElementById('splash');
|
|
64
|
+
if (splashElement) splashElement.parentNode.removeChild(splashElement);
|
|
65
|
+
window.removeEventListener('load', this);
|
|
66
|
+
console.log('TU2');
|
|
67
|
+
}
|
|
68
|
+
window.addEventListener('load', splashRemove);
|
|
69
|
+
</script>`;
|
|
70
|
+
splashDiv = `<div id="splash" style="
|
|
71
|
+
position: absolute; left: 0; top: 0; width: ${width}; height: ${height};
|
|
72
|
+
background-image: url("${splashUrl}");
|
|
73
|
+
"></div>`;
|
|
74
|
+
}
|
|
75
|
+
const errScript = `
|
|
76
|
+
<script>window.onerror = function(err) {
|
|
77
|
+
var errDiv = document.getElementById('err');
|
|
78
|
+
errDiv.innerHTML += err;
|
|
79
|
+
}
|
|
80
|
+
</script>`;
|
|
81
|
+
const errDiv = '<div id="err" style="color: red; position: absolute; top: 0; left: 0; z-index: 0;"> </div>';
|
|
82
|
+
const rootDiv = '<div id="root" class="root"></div>';
|
|
83
|
+
return removeBlankLines(`
|
|
84
|
+
${docType}
|
|
85
|
+
${htmlTag}
|
|
86
|
+
<head>
|
|
87
|
+
${headPrepend}
|
|
88
|
+
${contentType}
|
|
89
|
+
${metaTags}
|
|
90
|
+
${titleTag}
|
|
91
|
+
${remoteDebugScript}
|
|
92
|
+
${isDebug ? errScript : ''}
|
|
93
|
+
${tizenScripts}
|
|
94
|
+
${xboxScripts}
|
|
95
|
+
${webtvScripts}
|
|
96
|
+
${splashScript}
|
|
97
|
+
${headAppend}
|
|
98
|
+
</head>
|
|
99
|
+
<body>
|
|
100
|
+
${bodyPrepend}
|
|
101
|
+
${noScript}
|
|
102
|
+
${isDebug ? errDiv : ''}
|
|
103
|
+
${splashDiv}
|
|
104
|
+
${rootDiv}
|
|
105
|
+
${bodyAppend}
|
|
106
|
+
</body>
|
|
107
|
+
</html>
|
|
108
|
+
`);
|
|
109
|
+
};
|
|
110
|
+
exports.default = htmlTemp;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.extendSass = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const joinStrings_1 = require("./joinStrings");
|
|
10
|
+
const includeRtlFiles = (resourcePath) => {
|
|
11
|
+
const fileName = path_1.default.basename(resourcePath);
|
|
12
|
+
const filePath = path_1.default.dirname(resourcePath);
|
|
13
|
+
if (fileName.indexOf('.styles.') === -1)
|
|
14
|
+
return '';
|
|
15
|
+
const rtlFile = path_1.default.resolve(filePath, 'rtl.scss');
|
|
16
|
+
if (fs_1.default.existsSync(rtlFile)) {
|
|
17
|
+
return '@import \'./rtl\';';
|
|
18
|
+
}
|
|
19
|
+
return '';
|
|
20
|
+
};
|
|
21
|
+
const extendSass = ({ shouldIncludeRtlFiles, sassPrependEachFile, sassAppendEachFile, }) => (content, loaderContext) => {
|
|
22
|
+
const { resourcePath } = loaderContext;
|
|
23
|
+
const sassPrepend = sassPrependEachFile ? (0, joinStrings_1.joinStrings)(sassPrependEachFile) : '';
|
|
24
|
+
const sassAppend = sassAppendEachFile ? (0, joinStrings_1.joinStrings)(sassAppendEachFile) : '';
|
|
25
|
+
const rtlImport = shouldIncludeRtlFiles ? includeRtlFiles(resourcePath) : '';
|
|
26
|
+
const result = [sassPrepend, content, rtlImport, sassAppend];
|
|
27
|
+
return result.filter((part) => part).join('\n');
|
|
28
|
+
};
|
|
29
|
+
exports.extendSass = extendSass;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.joinStrings = void 0;
|
|
4
|
+
const joinStrings = (...parts) => (parts.map((part) => (Array.isArray(part) ? part.join('\n') : part ?? '')).filter((part) => part).join('\n'));
|
|
5
|
+
exports.joinStrings = joinStrings;
|