@andre1502/react-utilities 0.9.1 → 0.9.2
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/README.md +61 -12
- package/dist/Config/Config.js +4 -3
- package/dist/Config/Config.js.map +1 -1
- package/dist/EnvironmentEnum-BjXsfSRZ.js +9 -0
- package/dist/EnvironmentEnum-BjXsfSRZ.js.map +1 -0
- package/dist/EnvironmentEnum-UcQ6Il1O.js +9 -0
- package/dist/EnvironmentEnum-UcQ6Il1O.js.map +1 -0
- package/dist/I18n/I18n.d.ts +6 -0
- package/dist/I18n/I18n.js +104 -0
- package/dist/I18n/I18n.js.map +1 -0
- package/dist/I18n-CB7SyXYJ.js +3291 -0
- package/dist/I18n-CB7SyXYJ.js.map +1 -0
- package/dist/I18n-yXLN_hDO.js +3288 -0
- package/dist/I18n-yXLN_hDO.js.map +1 -0
- package/dist/config-cli.cjs +8 -3
- package/dist/config-cli.cjs.map +1 -1
- package/dist/config-cli.d.ts +2 -0
- package/dist/config-cli.js +8 -0
- package/dist/config-cli.js.map +1 -1
- package/dist/config-cli.mjs +5 -4
- package/dist/config-cli.mjs.map +1 -1
- package/dist/enums/EnvironmentEnum.d.ts +5 -0
- package/dist/enums/EnvironmentEnum.js +13 -0
- package/dist/enums/EnvironmentEnum.js.map +1 -0
- package/dist/i18n.cjs +15 -0
- package/dist/i18n.cjs.map +1 -0
- package/dist/i18n.d.ts +3 -0
- package/dist/i18n.js +28 -0
- package/dist/i18n.js.map +1 -0
- package/dist/i18n.mjs +4 -0
- package/dist/i18n.mjs.map +1 -0
- package/dist/index-cli.cjs +5 -0
- package/dist/index-cli.cjs.map +1 -1
- package/dist/index-cli.mjs +1 -0
- package/dist/index-cli.mjs.map +1 -1
- package/dist/index-rn.cjs +9 -0
- package/dist/index-rn.cjs.map +1 -1
- package/dist/index-rn.d.ts +1 -0
- package/dist/index-rn.js +11 -0
- package/dist/index-rn.js.map +1 -1
- package/dist/index-rn.mjs +3 -0
- package/dist/index-rn.mjs.map +1 -1
- package/dist/index.cjs +9 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +11 -6
- package/src/Config/Config.ts +4 -3
- package/src/I18n/I18n.ts +117 -0
- package/src/config-cli.ts +2 -0
- package/src/enums/EnvironmentEnum.ts +5 -0
- package/src/i18n.ts +4 -0
- package/src/index-rn.ts +1 -0
- package/src/index.ts +1 -0
- package/dist/index-fmt.cjs +0 -16
- package/dist/index-fmt.cjs.map +0 -1
- package/dist/index-fmt.d.ts +0 -1
- package/dist/index-fmt.js +0 -17
- package/dist/index-fmt.js.map +0 -1
- package/dist/index-fmt.mjs +0 -3
- package/dist/index-fmt.mjs.map +0 -1
- package/src/index-fmt.ts +0 -1
package/README.md
CHANGED
@@ -32,7 +32,7 @@ const { fetchLocales } = require('@andre1502/react-utilities/cli');
|
|
32
32
|
// OR
|
33
33
|
const { fetchLocales } = require('@andre1502/react-utilities/config-cli');
|
34
34
|
|
35
|
-
https://docs.google.com/spreadsheets/d/<google-sheet-id>/edit
|
35
|
+
// https://docs.google.com/spreadsheets/d/<google-sheet-id>/edit
|
36
36
|
const optionLocales = {
|
37
37
|
spreadsheetId: '', // Google Sheet Id
|
38
38
|
spreadsheetTab: '', // Google Sheet Tab for locales
|
@@ -56,7 +56,7 @@ const { fetchConfig } = require('@andre1502/react-utilities/cli');
|
|
56
56
|
// OR
|
57
57
|
const { fetchConfig } = require('@andre1502/react-utilities/config-cli');
|
58
58
|
|
59
|
-
https://docs.google.com/spreadsheets/d/<google-sheet-id>/edit
|
59
|
+
// https://docs.google.com/spreadsheets/d/<google-sheet-id>/edit
|
60
60
|
const optionConfig = {
|
61
61
|
spreadsheetId: '', // Google Sheet Id
|
62
62
|
spreadsheetTab: '', // Google Sheet Tab for config;
|
@@ -88,6 +88,20 @@ module.exports = {
|
|
88
88
|
};
|
89
89
|
```
|
90
90
|
|
91
|
+
```json
|
92
|
+
{
|
93
|
+
"params": {
|
94
|
+
"<app-brand>": {
|
95
|
+
"API_MAIN_URL": {
|
96
|
+
"dev": "<api-dev>",
|
97
|
+
"stag": "<api-staging>",
|
98
|
+
"prod": "<api-production>"
|
99
|
+
}
|
100
|
+
}
|
101
|
+
}
|
102
|
+
}
|
103
|
+
```
|
104
|
+
|
91
105
|
### Fetch All
|
92
106
|
|
93
107
|
To fetch both locales and config.
|
@@ -97,10 +111,10 @@ const { fetchAll } = require('@andre1502/react-utilities/cli');
|
|
97
111
|
// OR
|
98
112
|
const { fetchAll } = require('@andre1502/react-utilities/config-cli');
|
99
113
|
|
100
|
-
https://docs.google.com/spreadsheets/d/<google-sheet-id>/edit
|
114
|
+
// https://docs.google.com/spreadsheets/d/<google-sheet-id>/edit
|
101
115
|
const spreadsheetId = ''; // Google Sheet Id
|
102
116
|
const spreadsheetLocalesTab = ''; // Google Sheet Tab for locales
|
103
|
-
const spreadsheetConfigTab = '' // Google Sheet Tab for config;
|
117
|
+
const spreadsheetConfigTab = ''; // Google Sheet Tab for config;
|
104
118
|
|
105
119
|
const optionLocales = {
|
106
120
|
spreadsheetId: spreadsheetId,
|
@@ -274,8 +288,6 @@ initSentry({
|
|
274
288
|
```js
|
275
289
|
import { formatAccountNumber } from '@andre1502/react-utilities';
|
276
290
|
// OR
|
277
|
-
import { formatAccountNumber } from '@andre1502/react-utilities/fmt';
|
278
|
-
// OR
|
279
291
|
import { formatAccountNumber } from '@andre1502/react-utilities/format';
|
280
292
|
|
281
293
|
const accountNumber = '1234567890123456';
|
@@ -291,8 +303,6 @@ console.log(`result: ${result}`);
|
|
291
303
|
```js
|
292
304
|
import { formatNumber } from '@andre1502/react-utilities';
|
293
305
|
// OR
|
294
|
-
import { formatNumber } from '@andre1502/react-utilities/fmt';
|
295
|
-
// OR
|
296
306
|
import { formatNumber } from '@andre1502/react-utilities/format';
|
297
307
|
|
298
308
|
const result = formatNumber({
|
@@ -315,8 +325,6 @@ console.log(`result: ${result}`);
|
|
315
325
|
```js
|
316
326
|
import { getCurrencySymbol } from '@andre1502/react-utilities';
|
317
327
|
// OR
|
318
|
-
import { getCurrencySymbol } from '@andre1502/react-utilities/fmt';
|
319
|
-
// OR
|
320
328
|
import { getCurrencySymbol } from '@andre1502/react-utilities/format';
|
321
329
|
|
322
330
|
const currency = 'TWD';
|
@@ -333,8 +341,6 @@ console.log(`result: ${result}`);
|
|
333
341
|
```js
|
334
342
|
import { parseFormatNumber } from '@andre1502/react-utilities';
|
335
343
|
// OR
|
336
|
-
import { parseFormatNumber } from '@andre1502/react-utilities/fmt';
|
337
|
-
// OR
|
338
344
|
import { parseFormatNumber } from '@andre1502/react-utilities/format';
|
339
345
|
|
340
346
|
const lang = 'zh-TW';
|
@@ -344,3 +350,46 @@ const result = parseFormatNumber(lang, value);
|
|
344
350
|
console.log(`result: ${result}`);
|
345
351
|
// output: 1000
|
346
352
|
```
|
353
|
+
|
354
|
+
## I18n
|
355
|
+
|
356
|
+
```js
|
357
|
+
import { initReactI18next } from 'react-i18next';
|
358
|
+
import { version } from './package.json';
|
359
|
+
import enUS from './en-US.json';
|
360
|
+
// ---
|
361
|
+
import { EnvironmentEnum, initI18n } from '@andre1502/react-utilities';
|
362
|
+
// OR
|
363
|
+
import { EnvironmentEnum, initI18n } from '@andre1502/react-utilities/i18n';
|
364
|
+
|
365
|
+
const localLang = 'en-US';
|
366
|
+
const fallbackLang = 'en-US';
|
367
|
+
const langCacheExpiredTimeMs = 60 * 60 * 1000;
|
368
|
+
|
369
|
+
// translation language from json file.
|
370
|
+
const resources = {
|
371
|
+
'en-US': { translation: enUS },
|
372
|
+
};
|
373
|
+
|
374
|
+
// optional, if false or undefined will use resources value
|
375
|
+
const withLocalstorageBackend = false;
|
376
|
+
|
377
|
+
// change this to real CDN url or cloud storage with direct access like AWS S3 or GCP cloud storage.
|
378
|
+
// optional, if empty, false or undefined will use resources value
|
379
|
+
const cdnUrl = 'http://cdnurl.com';
|
380
|
+
|
381
|
+
// optional, if false or undefined disable debug mode
|
382
|
+
const debug = false;
|
383
|
+
|
384
|
+
initI18n(
|
385
|
+
initReactI18next,
|
386
|
+
localLang,
|
387
|
+
fallbackLang,
|
388
|
+
langCacheExpiredTimeMs,
|
389
|
+
resources,
|
390
|
+
version,
|
391
|
+
withLocalstorageBackend,
|
392
|
+
cdnUrl,
|
393
|
+
debug,
|
394
|
+
);
|
395
|
+
```
|
package/dist/Config/Config.js
CHANGED
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.transformConfig = exports.processConfig = exports.exportConfig = void 0;
|
7
7
|
var lodash = _interopRequireWildcard(require("lodash"));
|
8
|
+
var _EnvironmentEnum = require("../enums/EnvironmentEnum");
|
8
9
|
var _Output = require("./Output");
|
9
10
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
10
11
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
@@ -124,17 +125,17 @@ var envMap = function envMap(env) {
|
|
124
125
|
case 'dev':
|
125
126
|
case 'develop':
|
126
127
|
case 'development':
|
127
|
-
result =
|
128
|
+
result = _EnvironmentEnum.EnvironmentEnum.DEV;
|
128
129
|
break;
|
129
130
|
case 'stg':
|
130
131
|
case 'stag':
|
131
132
|
case 'staging':
|
132
|
-
result =
|
133
|
+
result = _EnvironmentEnum.EnvironmentEnum.STAGING;
|
133
134
|
break;
|
134
135
|
case 'prd':
|
135
136
|
case 'prod':
|
136
137
|
case 'production':
|
137
|
-
result =
|
138
|
+
result = _EnvironmentEnum.EnvironmentEnum.PRODUCTION;
|
138
139
|
break;
|
139
140
|
default:
|
140
141
|
throw new Error("env ".concat(env, " not supported."));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Config.js","names":["lodash","_interopRequireWildcard","require","_Output","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","o","Symbol","iterator","constructor","prototype","processConfig","exports","rows","versionConfig","params","map","key","forEach","row","index","processRow","data","versionName","paramsName","undefined","paramsTypeHandler","isJsonString","str","JSON","parse","booleanText","includes","toUpperCase","exportConfig","options","config","content","exportAs","stringify","filename","concat","Error","outputToFile","envMap","env","result","contentMap","value","isNull","transformConfig","configKeyPrefix","envKey","keys","newConfigKey","extensionFile","join","Array","isArray"],"sources":["../../src/Config/Config.ts"],"sourcesContent":["import * as lodash from 'lodash';\nimport { OutputMap } from '../interfaces/Config/OutputMap';\nimport { OutputOptions } from '../interfaces/Config/OutputOptions';\nimport { outputToFile } from './Output';\n\n/**\n * Process config data\n *\n * @param {any[][]} rows\n * @return {OutputMap}\n */\nconst processConfig = (rows: any[][]): OutputMap => {\n let versionConfig: OutputMap = {};\n\n let params = rows[0].map((key) => {\n return key;\n });\n\n rows.forEach((row: string[], index: number) => {\n if (index === 0) {\n return;\n }\n\n versionConfig = processRow(row, params, versionConfig);\n });\n\n return versionConfig;\n};\n\n/**\n * Process config item\n *\n * @param {string[]} data\n * @param {string[]} params\n * @param {OutputMap} versionConfig\n * @return {OutputMap}\n */\nconst processRow = (\n data: string[],\n params: string[],\n versionConfig: OutputMap,\n): OutputMap => {\n const versionName = data[0];\n versionConfig[versionName] = {};\n\n params.forEach((paramsName, index) => {\n if (index === 0 || data[index] === undefined || data[index] === '') {\n return;\n }\n\n versionConfig[versionName][paramsName] = paramsTypeHandler(data[index]);\n });\n\n return versionConfig;\n};\n\n/**\n * Check is JSON value\n *\n * @param {string} str\n * @return {boolean}\n */\nconst isJsonString = (str: string): boolean => {\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n\n return true;\n};\n\n/**\n * Handling config value type\n *\n * @param {string} params\n * @return {any}\n */\nconst paramsTypeHandler = (params: string): any => {\n const booleanText = ['TRUE', 'FALSE'];\n\n if (booleanText.includes(params.toUpperCase())) {\n return params === 'TRUE';\n }\n\n if (isJsonString(params)) {\n return JSON.parse(params);\n }\n\n return params;\n};\n\n/**\n * Export config data into js file\n *\n * @param {OutputMap} data\n * @param {OutputOptions} options\n * @return {void}\n */\nconst exportConfig = (data: OutputMap, options: OutputOptions): void => {\n const config = {\n params: data,\n };\n\n let content = '';\n\n switch (options.exportAs) {\n case 'ts':\n content = 'export default ' + JSON.stringify(config, null, 2);\n options.filename = `${options.filename}.ts`;\n break;\n case 'json':\n content = JSON.stringify(config, null, 2);\n options.filename = `${options.filename}.json`;\n break;\n case 'js':\n content = `module.exports = ${JSON.stringify(config, null, 2)}`;\n options.filename = `${options.filename}.js`;\n break;\n default:\n throw new Error(`exportAs ${options.exportAs} not supported.`);\n }\n\n outputToFile(content, options);\n};\n\n/**\n * Handling env map value\n *\n * @param {string} env\n * @return {string}\n */\nconst envMap = (env: string): string => {\n let result;\n\n switch (env) {\n case 'dev':\n case 'develop':\n case 'development':\n result = 'dev';\n break;\n case 'stg':\n case 'stag':\n case 'staging':\n result = 'staging';\n break;\n case 'prd':\n case 'prod':\n case 'production':\n result = 'production';\n break;\n default:\n throw new Error(`env ${env} not supported.`);\n }\n\n return result;\n};\n\n/**\n * Mapping content to exportAs value\n *\n * @param {string} key\n * @param {any} value\n * @param {string} exportAs\n * @return {string}\n */\nconst contentMap = (key: string, value: any, exportAs: string): string => {\n let content = '';\n\n switch (exportAs) {\n case 'ts':\n if (lodash.isNull(value)) {\n content += `export const ${key}: string | null = ${value};\\n`;\n } else if (typeof value === 'boolean') {\n content += `export const ${key}: boolean = ${value};\\n`;\n } else {\n content += `export const ${key} = '${value}';\\n`;\n }\n break;\n case 'js':\n content += `export const ${key} = \"${value}\";\\n`;\n break;\n case 'env':\n content += `${key} = \"${value}\"\\n`;\n break;\n default:\n throw new Error(`exportAs ${exportAs} not supported.`);\n }\n\n return content;\n};\n\n/**\n * Transform config\n *\n * @param {OutputMap} data\n * @param {string} env\n * @param {string} configKeyPrefix\n * @param {OutputOptions} options\n * @return {void}\n */\nconst transformConfig = (\n data: OutputMap,\n env: string,\n configKeyPrefix: string,\n options: OutputOptions,\n): void => {\n const envKey = configKeyPrefix ? `${configKeyPrefix}ENV` : 'ENV';\n\n let content = contentMap(envKey, envMap(env), options.exportAs!);\n\n Object.keys(data).forEach((key) => {\n const newConfigKey = configKeyPrefix ? `${configKeyPrefix}${key}` : key;\n\n if (key === 'BASE_PROJECT') {\n const extensionFile = [\n `.${data[key]}.js`,\n `.${data[key]}.jsx`,\n `.${data[key]}.ts`,\n `.${data[key]}.tsx`,\n `.${data[key]}.css`,\n `.${data[key]}.json`,\n `.${data[key]}.scss`,\n ];\n\n content += contentMap(\n newConfigKey,\n extensionFile.join(','),\n options.exportAs!,\n );\n\n return;\n }\n\n if (key === 'SITEMAP') {\n content += contentMap(\n newConfigKey,\n JSON.stringify(data[key]),\n options.exportAs!,\n );\n\n return;\n }\n\n if (Array.isArray(data[key])) {\n content += contentMap(\n newConfigKey,\n data[key].join(','),\n options.exportAs!,\n );\n\n return;\n }\n\n if (typeof data[key] === 'object') {\n if (data[key].hasOwnProperty(env)) {\n content += contentMap(newConfigKey, data[key][env], options.exportAs!);\n } else {\n content += contentMap(\n newConfigKey,\n JSON.stringify(data[key]),\n options.exportAs!,\n );\n }\n\n return;\n }\n\n content += contentMap(newConfigKey, data[key], options.exportAs!);\n });\n\n outputToFile(content, options);\n};\n\nexport { exportConfig, processConfig, transformConfig };\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"Config.js","names":["lodash","_interopRequireWildcard","require","_EnvironmentEnum","_Output","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","o","Symbol","iterator","constructor","prototype","processConfig","exports","rows","versionConfig","params","map","key","forEach","row","index","processRow","data","versionName","paramsName","undefined","paramsTypeHandler","isJsonString","str","JSON","parse","booleanText","includes","toUpperCase","exportConfig","options","config","content","exportAs","stringify","filename","concat","Error","outputToFile","envMap","env","result","EnvironmentEnum","DEV","STAGING","PRODUCTION","contentMap","value","isNull","transformConfig","configKeyPrefix","envKey","keys","newConfigKey","extensionFile","join","Array","isArray"],"sources":["../../src/Config/Config.ts"],"sourcesContent":["import * as lodash from 'lodash';\nimport { EnvironmentEnum } from '../enums/EnvironmentEnum';\nimport { OutputMap } from '../interfaces/Config/OutputMap';\nimport { OutputOptions } from '../interfaces/Config/OutputOptions';\nimport { outputToFile } from './Output';\n\n/**\n * Process config data\n *\n * @param {any[][]} rows\n * @return {OutputMap}\n */\nconst processConfig = (rows: any[][]): OutputMap => {\n let versionConfig: OutputMap = {};\n\n let params = rows[0].map((key) => {\n return key;\n });\n\n rows.forEach((row: string[], index: number) => {\n if (index === 0) {\n return;\n }\n\n versionConfig = processRow(row, params, versionConfig);\n });\n\n return versionConfig;\n};\n\n/**\n * Process config item\n *\n * @param {string[]} data\n * @param {string[]} params\n * @param {OutputMap} versionConfig\n * @return {OutputMap}\n */\nconst processRow = (\n data: string[],\n params: string[],\n versionConfig: OutputMap,\n): OutputMap => {\n const versionName = data[0];\n versionConfig[versionName] = {};\n\n params.forEach((paramsName, index) => {\n if (index === 0 || data[index] === undefined || data[index] === '') {\n return;\n }\n\n versionConfig[versionName][paramsName] = paramsTypeHandler(data[index]);\n });\n\n return versionConfig;\n};\n\n/**\n * Check is JSON value\n *\n * @param {string} str\n * @return {boolean}\n */\nconst isJsonString = (str: string): boolean => {\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n\n return true;\n};\n\n/**\n * Handling config value type\n *\n * @param {string} params\n * @return {any}\n */\nconst paramsTypeHandler = (params: string): any => {\n const booleanText = ['TRUE', 'FALSE'];\n\n if (booleanText.includes(params.toUpperCase())) {\n return params === 'TRUE';\n }\n\n if (isJsonString(params)) {\n return JSON.parse(params);\n }\n\n return params;\n};\n\n/**\n * Export config data into js file\n *\n * @param {OutputMap} data\n * @param {OutputOptions} options\n * @return {void}\n */\nconst exportConfig = (data: OutputMap, options: OutputOptions): void => {\n const config = {\n params: data,\n };\n\n let content = '';\n\n switch (options.exportAs) {\n case 'ts':\n content = 'export default ' + JSON.stringify(config, null, 2);\n options.filename = `${options.filename}.ts`;\n break;\n case 'json':\n content = JSON.stringify(config, null, 2);\n options.filename = `${options.filename}.json`;\n break;\n case 'js':\n content = `module.exports = ${JSON.stringify(config, null, 2)}`;\n options.filename = `${options.filename}.js`;\n break;\n default:\n throw new Error(`exportAs ${options.exportAs} not supported.`);\n }\n\n outputToFile(content, options);\n};\n\n/**\n * Handling env map value\n *\n * @param {string} env\n * @return {string}\n */\nconst envMap = (env: string): string => {\n let result;\n\n switch (env) {\n case 'dev':\n case 'develop':\n case 'development':\n result = EnvironmentEnum.DEV;\n break;\n case 'stg':\n case 'stag':\n case 'staging':\n result = EnvironmentEnum.STAGING;\n break;\n case 'prd':\n case 'prod':\n case 'production':\n result = EnvironmentEnum.PRODUCTION;\n break;\n default:\n throw new Error(`env ${env} not supported.`);\n }\n\n return result;\n};\n\n/**\n * Mapping content to exportAs value\n *\n * @param {string} key\n * @param {any} value\n * @param {string} exportAs\n * @return {string}\n */\nconst contentMap = (key: string, value: any, exportAs: string): string => {\n let content = '';\n\n switch (exportAs) {\n case 'ts':\n if (lodash.isNull(value)) {\n content += `export const ${key}: string | null = ${value};\\n`;\n } else if (typeof value === 'boolean') {\n content += `export const ${key}: boolean = ${value};\\n`;\n } else {\n content += `export const ${key} = '${value}';\\n`;\n }\n break;\n case 'js':\n content += `export const ${key} = \"${value}\";\\n`;\n break;\n case 'env':\n content += `${key} = \"${value}\"\\n`;\n break;\n default:\n throw new Error(`exportAs ${exportAs} not supported.`);\n }\n\n return content;\n};\n\n/**\n * Transform config\n *\n * @param {OutputMap} data\n * @param {string} env\n * @param {string} configKeyPrefix\n * @param {OutputOptions} options\n * @return {void}\n */\nconst transformConfig = (\n data: OutputMap,\n env: string,\n configKeyPrefix: string,\n options: OutputOptions,\n): void => {\n const envKey = configKeyPrefix ? `${configKeyPrefix}ENV` : 'ENV';\n\n let content = contentMap(envKey, envMap(env), options.exportAs!);\n\n Object.keys(data).forEach((key) => {\n const newConfigKey = configKeyPrefix ? `${configKeyPrefix}${key}` : key;\n\n if (key === 'BASE_PROJECT') {\n const extensionFile = [\n `.${data[key]}.js`,\n `.${data[key]}.jsx`,\n `.${data[key]}.ts`,\n `.${data[key]}.tsx`,\n `.${data[key]}.css`,\n `.${data[key]}.json`,\n `.${data[key]}.scss`,\n ];\n\n content += contentMap(\n newConfigKey,\n extensionFile.join(','),\n options.exportAs!,\n );\n\n return;\n }\n\n if (key === 'SITEMAP') {\n content += contentMap(\n newConfigKey,\n JSON.stringify(data[key]),\n options.exportAs!,\n );\n\n return;\n }\n\n if (Array.isArray(data[key])) {\n content += contentMap(\n newConfigKey,\n data[key].join(','),\n options.exportAs!,\n );\n\n return;\n }\n\n if (typeof data[key] === 'object') {\n if (data[key].hasOwnProperty(env)) {\n content += contentMap(newConfigKey, data[key][env], options.exportAs!);\n } else {\n content += contentMap(\n newConfigKey,\n JSON.stringify(data[key]),\n options.exportAs!,\n );\n }\n\n return;\n }\n\n content += contentMap(newConfigKey, data[key], options.exportAs!);\n });\n\n outputToFile(content, options);\n};\n\nexport { exportConfig, processConfig, transformConfig };\n"],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
exports.EnvironmentEnum = void 0;
|
4
|
+
(function (EnvironmentEnum) {
|
5
|
+
EnvironmentEnum["DEV"] = "dev";
|
6
|
+
EnvironmentEnum["STAGING"] = "staging";
|
7
|
+
EnvironmentEnum["PRODUCTION"] = "production";
|
8
|
+
})(exports.EnvironmentEnum || (exports.EnvironmentEnum = {}));
|
9
|
+
//# sourceMappingURL=EnvironmentEnum-BjXsfSRZ.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"EnvironmentEnum-BjXsfSRZ.js","sources":["../src/enums/EnvironmentEnum.ts"],"sourcesContent":[null],"names":["EnvironmentEnum"],"mappings":";;AAAYA,iCAIX;AAJD,CAAA,UAAYA,eAAe,EAAA;AACzBA,EAAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACXA,EAAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnBA,EAAAA,eAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AAC3B,CAAC,EAJWA,uBAAe,KAAfA,uBAAe,GAI1B,EAAA,CAAA,CAAA;;"}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
var EnvironmentEnum;
|
2
|
+
(function (EnvironmentEnum) {
|
3
|
+
EnvironmentEnum["DEV"] = "dev";
|
4
|
+
EnvironmentEnum["STAGING"] = "staging";
|
5
|
+
EnvironmentEnum["PRODUCTION"] = "production";
|
6
|
+
})(EnvironmentEnum || (EnvironmentEnum = {}));
|
7
|
+
|
8
|
+
export { EnvironmentEnum as E };
|
9
|
+
//# sourceMappingURL=EnvironmentEnum-UcQ6Il1O.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"EnvironmentEnum-UcQ6Il1O.js","sources":["../src/enums/EnvironmentEnum.ts"],"sourcesContent":[null],"names":["EnvironmentEnum"],"mappings":"IAAYA,gBAIX;AAJD,CAAA,UAAYA,eAAe,EAAA;AACzBA,EAAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACXA,EAAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnBA,EAAAA,eAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AAC3B,CAAC,EAJWA,eAAe,KAAfA,eAAe,GAI1B,EAAA,CAAA,CAAA;;;;"}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import { ThirdPartyModule } from 'i18next';
|
2
|
+
declare const getV: (divider: number) => number;
|
3
|
+
declare const initI18n: (initReactI18next: ThirdPartyModule, lang: string, fallbackLang: string, langCacheExpiredTimeMs: number, resources: {
|
4
|
+
[key: string]: any;
|
5
|
+
}, version: string, withLocalstorageBackend?: boolean, cdnUrl?: string, debug?: boolean) => void;
|
6
|
+
export { getV, initI18n };
|
@@ -0,0 +1,104 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.initI18n = exports.getV = void 0;
|
7
|
+
var _i18next = _interopRequireDefault(require("i18next"));
|
8
|
+
var _i18nextChainedBackend = _interopRequireDefault(require("i18next-chained-backend"));
|
9
|
+
var _i18nextHttpBackend = _interopRequireDefault(require("i18next-http-backend"));
|
10
|
+
var _i18nextLocalstorageBackend = _interopRequireDefault(require("i18next-localstorage-backend"));
|
11
|
+
var _i18nextResourcesToBackend = _interopRequireDefault(require("i18next-resources-to-backend"));
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
13
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
14
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
15
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
16
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
17
|
+
var getV = exports.getV = function getV(divider) {
|
18
|
+
return Math.floor(Date.now() / divider);
|
19
|
+
};
|
20
|
+
var initI18n = exports.initI18n = function initI18n(initReactI18next, lang, fallbackLang, langCacheExpiredTimeMs, resources, version, withLocalstorageBackend, cdnUrl, debug) {
|
21
|
+
var backends = [];
|
22
|
+
var backendOptions = [];
|
23
|
+
var langs = Object.keys(resources);
|
24
|
+
|
25
|
+
// https://www.i18next.com/how-to/backend-fallback
|
26
|
+
if (withLocalstorageBackend) {
|
27
|
+
var versions = {};
|
28
|
+
langs.forEach(function (value) {
|
29
|
+
return Object.assign(versions, _defineProperty({}, value, version));
|
30
|
+
});
|
31
|
+
backends.push(_i18nextLocalstorageBackend["default"]);
|
32
|
+
backendOptions.push({
|
33
|
+
// prefix for stored languages
|
34
|
+
prefix: "i18next_res_",
|
35
|
+
// expiration
|
36
|
+
expirationTime: langCacheExpiredTimeMs,
|
37
|
+
// language versions
|
38
|
+
versions: versions
|
39
|
+
});
|
40
|
+
}
|
41
|
+
if (cdnUrl) {
|
42
|
+
backends.push(_i18nextHttpBackend["default"]);
|
43
|
+
backendOptions.push({
|
44
|
+
// load resources from url path
|
45
|
+
loadPath: "".concat(cdnUrl, "/locales/{{lng}}.json"),
|
46
|
+
// adds parameters to resource URL. 'example.com' -> 'example.com?v=1.3.5'
|
47
|
+
queryStringParams: {
|
48
|
+
v: "".concat(version, ".").concat(getV(langCacheExpiredTimeMs))
|
49
|
+
},
|
50
|
+
reloadInterval: langCacheExpiredTimeMs // can be used to reload resources in a specific interval (milliseconds) (useful in server environments)
|
51
|
+
});
|
52
|
+
}
|
53
|
+
backends.push((0, _i18nextResourcesToBackend["default"])(resources));
|
54
|
+
|
55
|
+
// https://www.i18next.com/misc/creating-own-plugins#languagedetector
|
56
|
+
var languageDetector = {
|
57
|
+
type: 'languageDetector',
|
58
|
+
name: 'customDetector',
|
59
|
+
async: false,
|
60
|
+
init: function init() {
|
61
|
+
/* use services and options */
|
62
|
+
},
|
63
|
+
detect: function detect(callback) {
|
64
|
+
return lang;
|
65
|
+
}
|
66
|
+
};
|
67
|
+
var config = {
|
68
|
+
debug: debug !== null && debug !== void 0 ? debug : false,
|
69
|
+
compatibilityJSON: 'v4',
|
70
|
+
ns: ['translation'],
|
71
|
+
defaultNS: 'translation',
|
72
|
+
lng: lang,
|
73
|
+
fallbackLng: fallbackLang,
|
74
|
+
load: 'currentOnly',
|
75
|
+
keySeparator: false,
|
76
|
+
nonExplicitSupportedLngs: true,
|
77
|
+
backend: {
|
78
|
+
backends: backends,
|
79
|
+
backendOptions: backendOptions,
|
80
|
+
cacheHitMode: 'refreshAndUpdateStore',
|
81
|
+
reloadInterval: langCacheExpiredTimeMs,
|
82
|
+
refreshExpirationTime: langCacheExpiredTimeMs // only after determined time it should trigger a refresh if necessary
|
83
|
+
},
|
84
|
+
react: {
|
85
|
+
bindI18nStore: 'added' // this way, when the HttpBackend delivers new translations (thanks to refreshAndUpdateStore), the UI gets updated
|
86
|
+
},
|
87
|
+
interpolation: {
|
88
|
+
escapeValue: false // react already safes from xss
|
89
|
+
}
|
90
|
+
};
|
91
|
+
if (!_i18next["default"].isInitialized) {
|
92
|
+
_i18next["default"].use(_i18nextChainedBackend["default"]).use(languageDetector).use(initReactI18next) // passes i18n down to react-i18next
|
93
|
+
.init(config, function (ex, t) {
|
94
|
+
if (ex) {
|
95
|
+
console.error("Error when i18n init", ex);
|
96
|
+
return;
|
97
|
+
}
|
98
|
+
setInterval(function () {
|
99
|
+
_i18next["default"].reloadResources();
|
100
|
+
}, langCacheExpiredTimeMs);
|
101
|
+
});
|
102
|
+
}
|
103
|
+
};
|
104
|
+
//# sourceMappingURL=I18n.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"I18n.js","names":["_i18next","_interopRequireDefault","require","_i18nextChainedBackend","_i18nextHttpBackend","_i18nextLocalstorageBackend","_i18nextResourcesToBackend","e","__esModule","_typeof","o","Symbol","iterator","constructor","prototype","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","toPrimitive","call","TypeError","String","Number","getV","exports","divider","Math","floor","Date","now","initI18n","initReactI18next","lang","fallbackLang","langCacheExpiredTimeMs","resources","version","withLocalstorageBackend","cdnUrl","debug","backends","backendOptions","langs","keys","versions","forEach","assign","push","LocalStorageBackend","prefix","expirationTime","HttpBackend","loadPath","concat","queryStringParams","v","reloadInterval","ResourcesToBackend","languageDetector","type","name","async","init","detect","callback","config","compatibilityJSON","ns","defaultNS","lng","fallbackLng","load","keySeparator","nonExplicitSupportedLngs","backend","cacheHitMode","refreshExpirationTime","react","bindI18nStore","interpolation","escapeValue","i18next","isInitialized","use","ChainedBackend","ex","console","error","setInterval","reloadResources"],"sources":["../../src/I18n/I18n.ts"],"sourcesContent":["import i18next, { InitOptions, ThirdPartyModule } from 'i18next';\nimport ChainedBackend from 'i18next-chained-backend';\nimport HttpBackend from 'i18next-http-backend';\nimport LocalStorageBackend from 'i18next-localstorage-backend';\nimport ResourcesToBackend from 'i18next-resources-to-backend';\n\nconst getV = (divider: number): number => {\n return Math.floor(Date.now() / divider);\n};\n\nconst initI18n = (\n initReactI18next: ThirdPartyModule,\n lang: string,\n fallbackLang: string,\n langCacheExpiredTimeMs: number,\n resources: { [key: string]: any },\n version: string,\n withLocalstorageBackend?: boolean,\n cdnUrl?: string,\n debug?: boolean,\n) => {\n let backends: Array<any> = [];\n let backendOptions: Array<any> = [];\n const langs = Object.keys(resources);\n\n // https://www.i18next.com/how-to/backend-fallback\n if (withLocalstorageBackend) {\n const versions: { [key: string]: string } = {};\n\n langs.forEach((value) => Object.assign(versions, { [value]: version }));\n\n backends.push(LocalStorageBackend);\n backendOptions.push({\n // prefix for stored languages\n prefix: `i18next_res_`,\n\n // expiration\n expirationTime: langCacheExpiredTimeMs,\n\n // language versions\n versions: versions,\n });\n }\n\n if (cdnUrl) {\n backends.push(HttpBackend);\n backendOptions.push({\n // load resources from url path\n loadPath: `${cdnUrl}/locales/{{lng}}.json`,\n // adds parameters to resource URL. 'example.com' -> 'example.com?v=1.3.5'\n queryStringParams: {\n v: `${version}.${getV(langCacheExpiredTimeMs)}`,\n },\n\n reloadInterval: langCacheExpiredTimeMs, // can be used to reload resources in a specific interval (milliseconds) (useful in server environments)\n });\n }\n\n backends.push(ResourcesToBackend(resources));\n\n // https://www.i18next.com/misc/creating-own-plugins#languagedetector\n const languageDetector: any = {\n type: 'languageDetector',\n name: 'customDetector',\n async: false,\n init: () => {\n /* use services and options */\n },\n detect: (callback: any) => {\n return lang;\n },\n };\n\n const config: InitOptions = {\n debug: debug ?? false,\n compatibilityJSON: 'v4',\n ns: ['translation'],\n defaultNS: 'translation',\n lng: lang,\n fallbackLng: fallbackLang,\n load: 'currentOnly',\n keySeparator: false,\n nonExplicitSupportedLngs: true,\n backend: {\n backends: backends,\n backendOptions: backendOptions,\n cacheHitMode: 'refreshAndUpdateStore',\n reloadInterval: langCacheExpiredTimeMs,\n refreshExpirationTime: langCacheExpiredTimeMs, // only after determined time it should trigger a refresh if necessary\n },\n react: {\n bindI18nStore: 'added', // this way, when the HttpBackend delivers new translations (thanks to refreshAndUpdateStore), the UI gets updated\n },\n interpolation: {\n escapeValue: false, // react already safes from xss\n },\n };\n\n if (!i18next.isInitialized) {\n i18next\n .use(ChainedBackend)\n .use(languageDetector)\n .use(initReactI18next) // passes i18n down to react-i18next\n .init(config, (ex, t) => {\n if (ex) {\n console.error(`Error when i18n init`, ex);\n return;\n }\n\n setInterval(() => {\n i18next.reloadResources();\n }, langCacheExpiredTimeMs);\n });\n }\n};\n\nexport { getV, initI18n };\n"],"mappings":"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","ignoreList":[]}
|