@andre1502/react-utilities 0.9.0
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 +340 -0
- package/dist/Config/Config.d.ts +28 -0
- package/dist/Config/Config.js +200 -0
- package/dist/Config/Config.js.map +1 -0
- package/dist/Config/GoogleAuth.d.ts +15 -0
- package/dist/Config/GoogleAuth.js +71 -0
- package/dist/Config/GoogleAuth.js.map +1 -0
- package/dist/Config/Locales.d.ts +18 -0
- package/dist/Config/Locales.js +62 -0
- package/dist/Config/Locales.js.map +1 -0
- package/dist/Config/Output.d.ts +10 -0
- package/dist/Config/Output.js +28 -0
- package/dist/Config/Output.js.map +1 -0
- package/dist/Config/Sitemap.d.ts +13 -0
- package/dist/Config/Sitemap.js +73 -0
- package/dist/Config/Sitemap.js.map +1 -0
- package/dist/Format/NumberFormat.d.ts +6 -0
- package/dist/Format/NumberFormat.js +77 -0
- package/dist/Format/NumberFormat.js.map +1 -0
- package/dist/Format/NumberParser.d.ts +9 -0
- package/dist/Format/NumberParser.js +51 -0
- package/dist/Format/NumberParser.js.map +1 -0
- package/dist/React-BaJ1KfGF.js +87 -0
- package/dist/React-BaJ1KfGF.js.map +1 -0
- package/dist/React-qUl0CBmE.js +109 -0
- package/dist/React-qUl0CBmE.js.map +1 -0
- package/dist/ReactNative-CqUrY2ZJ.js +3856 -0
- package/dist/ReactNative-CqUrY2ZJ.js.map +1 -0
- package/dist/ReactNative-mNnws-b5.js +3834 -0
- package/dist/ReactNative-mNnws-b5.js.map +1 -0
- package/dist/Sentry/Build.d.ts +9 -0
- package/dist/Sentry/Build.js +88 -0
- package/dist/Sentry/Build.js.map +1 -0
- package/dist/Sentry/React.d.ts +18 -0
- package/dist/Sentry/React.js +104 -0
- package/dist/Sentry/React.js.map +1 -0
- package/dist/Sentry/ReactNative.d.ts +18 -0
- package/dist/Sentry/ReactNative.js +114 -0
- package/dist/Sentry/ReactNative.js.map +1 -0
- package/dist/Sentry/Utils.d.ts +2 -0
- package/dist/Sentry/Utils.js +24 -0
- package/dist/Sentry/Utils.js.map +1 -0
- package/dist/Utils/Files.d.ts +7 -0
- package/dist/Utils/Files.js +52 -0
- package/dist/Utils/Files.js.map +1 -0
- package/dist/Utils-Cq948gfa.js +20 -0
- package/dist/Utils-Cq948gfa.js.map +1 -0
- package/dist/Utils-Dilye04y.js +22 -0
- package/dist/Utils-Dilye04y.js.map +1 -0
- package/dist/config-cli.cjs +471 -0
- package/dist/config-cli.cjs.map +1 -0
- package/dist/config-cli.d.ts +34 -0
- package/dist/config-cli.js +220 -0
- package/dist/config-cli.js.map +1 -0
- package/dist/config-cli.mjs +443 -0
- package/dist/config-cli.mjs.map +1 -0
- package/dist/enums/CurrencySymbolEnum.d.ts +5 -0
- package/dist/enums/CurrencySymbolEnum.js +13 -0
- package/dist/enums/CurrencySymbolEnum.js.map +1 -0
- package/dist/format.cjs +122 -0
- package/dist/format.cjs.map +1 -0
- package/dist/format.d.ts +3 -0
- package/dist/format.js +55 -0
- package/dist/format.js.map +1 -0
- package/dist/format.mjs +117 -0
- package/dist/format.mjs.map +1 -0
- package/dist/index-cli.cjs +24 -0
- package/dist/index-cli.cjs.map +1 -0
- package/dist/index-cli.d.ts +2 -0
- package/dist/index-cli.js +28 -0
- package/dist/index-cli.js.map +1 -0
- package/dist/index-cli.mjs +12 -0
- package/dist/index-cli.mjs.map +1 -0
- package/dist/index-fmt.cjs +16 -0
- package/dist/index-fmt.cjs.map +1 -0
- package/dist/index-fmt.d.ts +1 -0
- package/dist/index-fmt.js +17 -0
- package/dist/index-fmt.js.map +1 -0
- package/dist/index-fmt.mjs +3 -0
- package/dist/index-fmt.mjs.map +1 -0
- package/dist/index-rn.cjs +21 -0
- package/dist/index-rn.cjs.map +1 -0
- package/dist/index-rn.d.ts +2 -0
- package/dist/index-rn.js +28 -0
- package/dist/index-rn.js.map +1 -0
- package/dist/index-rn.mjs +6 -0
- package/dist/index-rn.mjs.map +1 -0
- package/dist/index.cjs +21 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +6 -0
- package/dist/index.mjs.map +1 -0
- package/dist/interfaces/Config/ConfigOptions.d.ts +8 -0
- package/dist/interfaces/Config/ConfigOptions.js +6 -0
- package/dist/interfaces/Config/ConfigOptions.js.map +1 -0
- package/dist/interfaces/Config/OutputMap.d.ts +3 -0
- package/dist/interfaces/Config/OutputMap.js +6 -0
- package/dist/interfaces/Config/OutputMap.js.map +1 -0
- package/dist/interfaces/Config/OutputOptions.d.ts +7 -0
- package/dist/interfaces/Config/OutputOptions.js +6 -0
- package/dist/interfaces/Config/OutputOptions.js.map +1 -0
- package/dist/interfaces/Config/SitemapMap.d.ts +5 -0
- package/dist/interfaces/Config/SitemapMap.js +6 -0
- package/dist/interfaces/Config/SitemapMap.js.map +1 -0
- package/dist/interfaces/Config/StringMap.d.ts +3 -0
- package/dist/interfaces/Config/StringMap.js +6 -0
- package/dist/interfaces/Config/StringMap.js.map +1 -0
- package/dist/interfaces/Format/FormatOptions.d.ts +14 -0
- package/dist/interfaces/Format/FormatOptions.js +6 -0
- package/dist/interfaces/Format/FormatOptions.js.map +1 -0
- package/dist/interfaces/Sentry/InitOptions.d.ts +20 -0
- package/dist/interfaces/Sentry/InitOptions.js +6 -0
- package/dist/interfaces/Sentry/InitOptions.js.map +1 -0
- package/dist/interfaces/Sentry/InitOptionsRN.d.ts +4 -0
- package/dist/interfaces/Sentry/InitOptionsRN.js +6 -0
- package/dist/interfaces/Sentry/InitOptionsRN.js.map +1 -0
- package/dist/interfaces/Sentry/SourceMapOptions.d.ts +7 -0
- package/dist/interfaces/Sentry/SourceMapOptions.js +6 -0
- package/dist/interfaces/Sentry/SourceMapOptions.js.map +1 -0
- package/dist/sentry-cli.cjs +119 -0
- package/dist/sentry-cli.cjs.map +1 -0
- package/dist/sentry-cli.d.ts +9 -0
- package/dist/sentry-cli.js +50 -0
- package/dist/sentry-cli.js.map +1 -0
- package/dist/sentry-cli.mjs +98 -0
- package/dist/sentry-cli.mjs.map +1 -0
- package/dist/sentry-rn.cjs +11 -0
- package/dist/sentry-rn.cjs.map +1 -0
- package/dist/sentry-rn.d.ts +2 -0
- package/dist/sentry-rn.js +28 -0
- package/dist/sentry-rn.js.map +1 -0
- package/dist/sentry-rn.mjs +4 -0
- package/dist/sentry-rn.mjs.map +1 -0
- package/dist/sentry.cjs +11 -0
- package/dist/sentry.cjs.map +1 -0
- package/dist/sentry.d.ts +2 -0
- package/dist/sentry.js +28 -0
- package/dist/sentry.js.map +1 -0
- package/dist/sentry.mjs +4 -0
- package/dist/sentry.mjs.map +1 -0
- package/dist/types/Config/OptionType.d.ts +2 -0
- package/dist/types/Config/OptionType.js +6 -0
- package/dist/types/Config/OptionType.js.map +1 -0
- package/dist/types/Format/OptionType.d.ts +3 -0
- package/dist/types/Format/OptionType.js +6 -0
- package/dist/types/Format/OptionType.js.map +1 -0
- package/dist/types/Sentry/OptionType.d.ts +1 -0
- package/dist/types/Sentry/OptionType.js +6 -0
- package/dist/types/Sentry/OptionType.js.map +1 -0
- package/package.json +139 -0
- package/src/Config/Config.ts +258 -0
- package/src/Config/GoogleAuth.ts +54 -0
- package/src/Config/Locales.ts +72 -0
- package/src/Config/Output.ts +29 -0
- package/src/Config/Sitemap.ts +67 -0
- package/src/Format/NumberFormat.ts +96 -0
- package/src/Format/NumberParser.ts +42 -0
- package/src/Sentry/Build.ts +67 -0
- package/src/Sentry/React.ts +127 -0
- package/src/Sentry/ReactNative.ts +133 -0
- package/src/Sentry/Utils.ts +26 -0
- package/src/Utils/Files.ts +51 -0
- package/src/config-cli.ts +152 -0
- package/src/enums/CurrencySymbolEnum.ts +5 -0
- package/src/format.ts +39 -0
- package/src/index-cli.ts +2 -0
- package/src/index-fmt.ts +1 -0
- package/src/index-rn.ts +2 -0
- package/src/index.ts +2 -0
- package/src/interfaces/Config/ConfigOptions.ts +9 -0
- package/src/interfaces/Config/OutputMap.ts +3 -0
- package/src/interfaces/Config/OutputOptions.ts +8 -0
- package/src/interfaces/Config/SitemapMap.ts +5 -0
- package/src/interfaces/Config/StringMap.ts +3 -0
- package/src/interfaces/Format/FormatOptions.ts +19 -0
- package/src/interfaces/Sentry/InitOptions.ts +23 -0
- package/src/interfaces/Sentry/InitOptionsRN.ts +5 -0
- package/src/interfaces/Sentry/SourceMapOptions.ts +7 -0
- package/src/sentry-cli.ts +16 -0
- package/src/sentry-rn.ts +2 -0
- package/src/sentry.ts +2 -0
- package/src/types/Config/OptionType.ts +2 -0
- package/src/types/Format/OptionType.ts +15 -0
- package/src/types/Sentry/OptionType.ts +1 -0
package/README.md
ADDED
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
# react-utilities
|
|
2
|
+
|
|
3
|
+
Library to combine common functions
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
yarn add @andre1502/react-utilities
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
OR
|
|
12
|
+
|
|
13
|
+
```sh
|
|
14
|
+
npm install @andre1502/react-utilities
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
19
|
+
## Config & Locales CLI
|
|
20
|
+
|
|
21
|
+
1. Get Google service account credentials from https://console.cloud.google.com/apis/credentials.
|
|
22
|
+
2. Add `GOOGLE_APPLICATION_CREDENTIALS` as system environment variable with value of Google service account file credentials location.
|
|
23
|
+
|
|
24
|
+
### Fetch Locales
|
|
25
|
+
|
|
26
|
+
Filename will be auto defined by locales key (e.g. zh-TW, filename will be zh-tw.json).
|
|
27
|
+
|
|
28
|
+
```js
|
|
29
|
+
const { fetchLocales } = require('@andre1502/react-utilities/cli');
|
|
30
|
+
// OR
|
|
31
|
+
const { fetchLocales } = require('@andre1502/react-utilities/config-cli');
|
|
32
|
+
|
|
33
|
+
https://docs.google.com/spreadsheets/d/<google-sheet-id>/edit
|
|
34
|
+
const optionLocales = {
|
|
35
|
+
spreadsheetId: '', // Google Sheet Id
|
|
36
|
+
spreadsheetTab: '', // Google Sheet Tab for locales
|
|
37
|
+
formatAs: 'locales',
|
|
38
|
+
output: {
|
|
39
|
+
folder: './src/locales', // locales folder location
|
|
40
|
+
isFilenameLowercase: true, // set if filename need to be lowercase
|
|
41
|
+
exportAs: 'ts', // export locales as 'ts' | 'json'
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
fetchLocales(optionLocales);
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Fetch Config
|
|
49
|
+
|
|
50
|
+
Config file only support export as js file, since you need to combine it with transform function.
|
|
51
|
+
|
|
52
|
+
```js
|
|
53
|
+
const { fetchConfig } = require('@andre1502/@andre1502/react-utilities/cli');
|
|
54
|
+
// OR
|
|
55
|
+
const { fetchConfig } = require('@andre1502/@andre1502/react-utilities/config-cli');
|
|
56
|
+
|
|
57
|
+
https://docs.google.com/spreadsheets/d/<google-sheet-id>/edit
|
|
58
|
+
const optionConfig = {
|
|
59
|
+
spreadsheetId: '', // Google Sheet Id
|
|
60
|
+
spreadsheetTab: '', // Google Sheet Tab for config;
|
|
61
|
+
formatAs: 'config',
|
|
62
|
+
output: {
|
|
63
|
+
folder: '.', // config folder location
|
|
64
|
+
filename: 'versionConfig.js', // config filename
|
|
65
|
+
isFilenameLowercase: false, // set if filename need to be lowercase
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
fetchConfig(optionConfig);
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Config output example
|
|
73
|
+
|
|
74
|
+
```js
|
|
75
|
+
module.exports = {
|
|
76
|
+
params: {
|
|
77
|
+
'<app-brand>': {
|
|
78
|
+
API_MAIN_URL: {
|
|
79
|
+
dev: '<api-dev>',
|
|
80
|
+
stag: '<api-staging>',
|
|
81
|
+
prod: '<api-production>',
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Fetch All
|
|
89
|
+
|
|
90
|
+
To fetch both locales and config.
|
|
91
|
+
|
|
92
|
+
```js
|
|
93
|
+
const { fetchAll } = require('@andre1502/react-utilities/cli');
|
|
94
|
+
// OR
|
|
95
|
+
const { fetchAll } = require('@andre1502/react-utilities/config-cli');
|
|
96
|
+
|
|
97
|
+
https://docs.google.com/spreadsheets/d/<google-sheet-id>/edit
|
|
98
|
+
const spreadsheetId = ''; // Google Sheet Id
|
|
99
|
+
const spreadsheetLocalesTab = ''; // Google Sheet Tab for locales
|
|
100
|
+
const spreadsheetConfigTab = '' // Google Sheet Tab for config;
|
|
101
|
+
|
|
102
|
+
const optionLocales = {
|
|
103
|
+
spreadsheetId: spreadsheetId,
|
|
104
|
+
spreadsheetTab: spreadsheetLocalesTab,
|
|
105
|
+
formatAs: 'locales',
|
|
106
|
+
output: {
|
|
107
|
+
folder: './src/locales', // locales folder location
|
|
108
|
+
isFilenameLowercase: true, // set if filename need to be lowercase
|
|
109
|
+
exportAs: 'ts', // export locales as 'ts' | 'json'
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
const optionConfig = {
|
|
114
|
+
spreadsheetId: spreadsheetId,
|
|
115
|
+
spreadsheetTab: spreadsheetConfigTab,
|
|
116
|
+
formatAs: 'config',
|
|
117
|
+
output: {
|
|
118
|
+
folder: '.', // config folder location
|
|
119
|
+
filename: 'versionConfig.js', // config filename
|
|
120
|
+
isFilenameLowercase: false, // set if filename need to be lowercase
|
|
121
|
+
},
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
fetchAll([optionLocales, optionConfig]);
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Transform Config
|
|
128
|
+
|
|
129
|
+
```js
|
|
130
|
+
const { transformConfig } = require('@andre1502/react-utilities/cli');
|
|
131
|
+
// OR
|
|
132
|
+
const { transformConfig } = require('@andre1502/react-utilities/config-cli');
|
|
133
|
+
const version = '<app-brand>';
|
|
134
|
+
const env = '<env-value>'; // support 'dev' | 'stag' | 'prod'
|
|
135
|
+
|
|
136
|
+
let { params } = require('./versionConfig');
|
|
137
|
+
const currentConfig = { ...params?.default, ...params[version] };
|
|
138
|
+
|
|
139
|
+
transformConfig(currentConfig, env, 'REACT_APP_', {
|
|
140
|
+
folder: '.', // transformed config folder location
|
|
141
|
+
filename: '.env', // transformed config filename
|
|
142
|
+
isFilenameLowercase: false, // set if filename need to be lowercase
|
|
143
|
+
exportAs: 'env', // export transformed config as 'ts' | 'js' | 'env'
|
|
144
|
+
});
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Transform Sitemap
|
|
148
|
+
|
|
149
|
+
```js
|
|
150
|
+
const { transformSitemap } = require('@andre1502/react-utilities/cli');
|
|
151
|
+
// OR
|
|
152
|
+
const { transformSitemap } = require('@andre1502/react-utilities/config-cli');
|
|
153
|
+
const version = '<app-brand>';
|
|
154
|
+
const env = '<env-value>'; // support 'dev' | 'stag' | 'prod'
|
|
155
|
+
|
|
156
|
+
let { params } = require('./versionConfig');
|
|
157
|
+
const currentConfig = { ...params?.default, ...params[version] };
|
|
158
|
+
const hostname = currentConfig['MAIN_URL'][env];
|
|
159
|
+
const urls = currentConfig['SITEMAP'];
|
|
160
|
+
|
|
161
|
+
transformSitemap(hostname, urls, true, {
|
|
162
|
+
folder: './public', // transformed sitemap folder location
|
|
163
|
+
filename: 'sitemap.xml', // transformed sitemap filename
|
|
164
|
+
isFilenameLowercase: false, // set if filename need to be lowercase
|
|
165
|
+
});
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Sentry CLI
|
|
169
|
+
|
|
170
|
+
### Release Sentry Source Map
|
|
171
|
+
|
|
172
|
+
Add `.sentryclirc` file in root project with these value
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
[defaults]
|
|
176
|
+
url=https://<sentry_host_url>/
|
|
177
|
+
org=<organization>
|
|
178
|
+
project=<sentry_project_name>
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Update system environment variables with
|
|
182
|
+
|
|
183
|
+
```sh
|
|
184
|
+
export SENTRY_AUTH_TOKEN=<sentry_auth_token>
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Add sentry file in root project with this code
|
|
188
|
+
|
|
189
|
+
```js
|
|
190
|
+
const { releaseSentrySourceMap } = require('@andre1502/react-utilities/cli');
|
|
191
|
+
// OR
|
|
192
|
+
const { releaseSentrySourceMap } = require('@andre1502/react-utilities/sentry-cli');
|
|
193
|
+
|
|
194
|
+
releaseSentrySourceMap({
|
|
195
|
+
env: '',
|
|
196
|
+
release: '',
|
|
197
|
+
includeFolder: [''],
|
|
198
|
+
urlPrefix: '~',
|
|
199
|
+
requiredEnvForSourceMap: [''],
|
|
200
|
+
});
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## Sentry
|
|
204
|
+
|
|
205
|
+
### Init Sentry for React
|
|
206
|
+
|
|
207
|
+
```js
|
|
208
|
+
import { initSentry } from '@andre1502/react-utilities';
|
|
209
|
+
// OR
|
|
210
|
+
import { initSentry } from '@andre1502/react-utilities/sentry';
|
|
211
|
+
|
|
212
|
+
initSentry({
|
|
213
|
+
env: '',
|
|
214
|
+
dsn: '',
|
|
215
|
+
debug: false,
|
|
216
|
+
release: '',
|
|
217
|
+
requiredEnvForSendToSentry: ['production'],
|
|
218
|
+
httpClientIntegrationOptions: {
|
|
219
|
+
failedRequestStatusCodes: [[400], [402, 499], [500, 599]],
|
|
220
|
+
failedRequestTargets: ['http://localhost'],
|
|
221
|
+
},
|
|
222
|
+
captureConsoleIntegrationOptions: {
|
|
223
|
+
levels: ['error'],
|
|
224
|
+
},
|
|
225
|
+
options: {
|
|
226
|
+
// other sentry options
|
|
227
|
+
// ...
|
|
228
|
+
integrations: [
|
|
229
|
+
// other sentry integrations
|
|
230
|
+
// ...
|
|
231
|
+
],
|
|
232
|
+
},
|
|
233
|
+
});
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Init Sentry for React Native
|
|
237
|
+
|
|
238
|
+
```js
|
|
239
|
+
import { initSentry } from '@andre1502/react-utilities';
|
|
240
|
+
|
|
241
|
+
initSentry({
|
|
242
|
+
env: '',
|
|
243
|
+
dsn: '',
|
|
244
|
+
debug: false,
|
|
245
|
+
requiredEnvForSendToSentry: ['production'],
|
|
246
|
+
httpClientIntegrationOptions: {
|
|
247
|
+
failedRequestStatusCodes: [[400], [402, 499], [500, 599]],
|
|
248
|
+
failedRequestTargets: ['http://localhost'],
|
|
249
|
+
},
|
|
250
|
+
captureConsoleIntegrationOptions: {
|
|
251
|
+
levels: ['error'],
|
|
252
|
+
},
|
|
253
|
+
options: {
|
|
254
|
+
// other sentry options
|
|
255
|
+
// ...
|
|
256
|
+
integrations: [
|
|
257
|
+
// other sentry integrations
|
|
258
|
+
// ...
|
|
259
|
+
],
|
|
260
|
+
},
|
|
261
|
+
});
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
## Format Number
|
|
265
|
+
|
|
266
|
+
### formatAccountNumber
|
|
267
|
+
|
|
268
|
+
```js
|
|
269
|
+
import { formatAccountNumber } from '@andre1502/react-utilities';
|
|
270
|
+
// OR
|
|
271
|
+
import { formatAccountNumber } from '@andre1502/react-utilities/fmt';
|
|
272
|
+
// OR
|
|
273
|
+
import { formatAccountNumber } from '@andre1502/react-utilities/format';
|
|
274
|
+
|
|
275
|
+
const accountNumber = '1234567890123456';
|
|
276
|
+
const separator = ' ';
|
|
277
|
+
const result = formatAccountNumber(data, separator);
|
|
278
|
+
|
|
279
|
+
console.log(`result: ${result}`);
|
|
280
|
+
// output: 1234 5678 9012 3456
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### formatNumber
|
|
284
|
+
|
|
285
|
+
```js
|
|
286
|
+
import { formatNumber } from '@andre1502/react-utilities';
|
|
287
|
+
// OR
|
|
288
|
+
import { formatNumber } from '@andre1502/react-utilities/fmt';
|
|
289
|
+
// OR
|
|
290
|
+
import { formatNumber } from '@andre1502/react-utilities/format';
|
|
291
|
+
|
|
292
|
+
const result = formatNumber({
|
|
293
|
+
lang: 'zh-TW',
|
|
294
|
+
currency: 'TWD',
|
|
295
|
+
value: 1000,
|
|
296
|
+
showValue: true,
|
|
297
|
+
showCurrency: true,
|
|
298
|
+
});
|
|
299
|
+
|
|
300
|
+
console.log(`result: ${result}`);
|
|
301
|
+
// output showValue(true) showCurrency(true): 'NT$ 1,000'
|
|
302
|
+
// output showValue(true) showCurrency(false): '1,000'
|
|
303
|
+
// output showValue(false) showCurrency(true): 'NT$ ********'
|
|
304
|
+
// output showValue(false) showCurrency(false): '********'
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
### getCurrencySymbol
|
|
308
|
+
|
|
309
|
+
```js
|
|
310
|
+
import { getCurrencySymbol } from '@andre1502/react-utilities';
|
|
311
|
+
// OR
|
|
312
|
+
import { getCurrencySymbol } from '@andre1502/react-utilities/fmt';
|
|
313
|
+
// OR
|
|
314
|
+
import { getCurrencySymbol } from '@andre1502/react-utilities/format';
|
|
315
|
+
|
|
316
|
+
const currency = 'TWD';
|
|
317
|
+
const showCurrency = true;
|
|
318
|
+
const result = getCurrencySymbol(currency, showCurrency);
|
|
319
|
+
|
|
320
|
+
console.log(`result: ${result}`);
|
|
321
|
+
// output showCurrency(true): 'NT$'
|
|
322
|
+
// output showCurrency(false): ''
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
### parseFormatNumber
|
|
326
|
+
|
|
327
|
+
```js
|
|
328
|
+
import { parseFormatNumber } from '@andre1502/react-utilities';
|
|
329
|
+
// OR
|
|
330
|
+
import { parseFormatNumber } from '@andre1502/react-utilities/fmt';
|
|
331
|
+
// OR
|
|
332
|
+
import { parseFormatNumber } from '@andre1502/react-utilities/format';
|
|
333
|
+
|
|
334
|
+
const lang = 'zh-TW';
|
|
335
|
+
const value = '1,000';
|
|
336
|
+
const result = parseFormatNumber(lang, value);
|
|
337
|
+
|
|
338
|
+
console.log(`result: ${result}`);
|
|
339
|
+
// output: 1000
|
|
340
|
+
```
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { OutputMap } from '../interfaces/Config/OutputMap';
|
|
2
|
+
import { OutputOptions } from '../interfaces/Config/OutputOptions';
|
|
3
|
+
/**
|
|
4
|
+
* Process config data
|
|
5
|
+
*
|
|
6
|
+
* @param {any[][]} rows
|
|
7
|
+
* @return {OutputMap}
|
|
8
|
+
*/
|
|
9
|
+
declare const processConfig: (rows: any[][]) => OutputMap;
|
|
10
|
+
/**
|
|
11
|
+
* Export config data into js file
|
|
12
|
+
*
|
|
13
|
+
* @param {OutputMap} data
|
|
14
|
+
* @param {OutputOptions} options
|
|
15
|
+
* @return {void}
|
|
16
|
+
*/
|
|
17
|
+
declare const exportConfig: (data: OutputMap, options: OutputOptions) => void;
|
|
18
|
+
/**
|
|
19
|
+
* Transform config
|
|
20
|
+
*
|
|
21
|
+
* @param {OutputMap} data
|
|
22
|
+
* @param {string} env
|
|
23
|
+
* @param {string} configKeyPrefix
|
|
24
|
+
* @param {OutputOptions} options
|
|
25
|
+
* @return {void}
|
|
26
|
+
*/
|
|
27
|
+
declare const transformConfig: (data: OutputMap, env: string, configKeyPrefix: string, options: OutputOptions) => void;
|
|
28
|
+
export { exportConfig, processConfig, transformConfig };
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.transformConfig = exports.processConfig = exports.exportConfig = void 0;
|
|
7
|
+
var lodash = _interopRequireWildcard(require("lodash"));
|
|
8
|
+
var _Output = require("./Output");
|
|
9
|
+
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
|
+
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; }
|
|
11
|
+
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); }
|
|
12
|
+
/**
|
|
13
|
+
* Process config data
|
|
14
|
+
*
|
|
15
|
+
* @param {any[][]} rows
|
|
16
|
+
* @return {OutputMap}
|
|
17
|
+
*/
|
|
18
|
+
var processConfig = exports.processConfig = function processConfig(rows) {
|
|
19
|
+
var versionConfig = {};
|
|
20
|
+
var params = rows[0].map(function (key) {
|
|
21
|
+
return key;
|
|
22
|
+
});
|
|
23
|
+
rows.forEach(function (row, index) {
|
|
24
|
+
if (index === 0) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
versionConfig = processRow(row, params, versionConfig);
|
|
28
|
+
});
|
|
29
|
+
return versionConfig;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Process config item
|
|
34
|
+
*
|
|
35
|
+
* @param {string[]} data
|
|
36
|
+
* @param {string[]} params
|
|
37
|
+
* @param {OutputMap} versionConfig
|
|
38
|
+
* @return {OutputMap}
|
|
39
|
+
*/
|
|
40
|
+
var processRow = function processRow(data, params, versionConfig) {
|
|
41
|
+
var versionName = data[0];
|
|
42
|
+
versionConfig[versionName] = {};
|
|
43
|
+
params.forEach(function (paramsName, index) {
|
|
44
|
+
if (index === 0 || data[index] === undefined || data[index] === '') {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
versionConfig[versionName][paramsName] = paramsTypeHandler(data[index]);
|
|
48
|
+
});
|
|
49
|
+
return versionConfig;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Check is JSON value
|
|
54
|
+
*
|
|
55
|
+
* @param {string} str
|
|
56
|
+
* @return {boolean}
|
|
57
|
+
*/
|
|
58
|
+
var isJsonString = function isJsonString(str) {
|
|
59
|
+
try {
|
|
60
|
+
JSON.parse(str);
|
|
61
|
+
} catch (e) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
return true;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Handling config value type
|
|
69
|
+
*
|
|
70
|
+
* @param {string} params
|
|
71
|
+
* @return {any}
|
|
72
|
+
*/
|
|
73
|
+
var paramsTypeHandler = function paramsTypeHandler(params) {
|
|
74
|
+
var booleanText = ['TRUE', 'FALSE'];
|
|
75
|
+
if (booleanText.includes(params.toUpperCase())) {
|
|
76
|
+
return params === 'TRUE';
|
|
77
|
+
}
|
|
78
|
+
if (isJsonString(params)) {
|
|
79
|
+
return JSON.parse(params);
|
|
80
|
+
}
|
|
81
|
+
return params;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Export config data into js file
|
|
86
|
+
*
|
|
87
|
+
* @param {OutputMap} data
|
|
88
|
+
* @param {OutputOptions} options
|
|
89
|
+
* @return {void}
|
|
90
|
+
*/
|
|
91
|
+
var exportConfig = exports.exportConfig = function exportConfig(data, options) {
|
|
92
|
+
var config = {
|
|
93
|
+
params: data
|
|
94
|
+
};
|
|
95
|
+
var content = "module.exports = ".concat(JSON.stringify(config, null, 2));
|
|
96
|
+
(0, _Output.outputToFile)(content, options);
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Handling env map value
|
|
101
|
+
*
|
|
102
|
+
* @param {string} env
|
|
103
|
+
* @return {string}
|
|
104
|
+
*/
|
|
105
|
+
var envMap = function envMap(env) {
|
|
106
|
+
var result;
|
|
107
|
+
switch (env) {
|
|
108
|
+
case 'dev':
|
|
109
|
+
case 'develop':
|
|
110
|
+
case 'development':
|
|
111
|
+
result = 'dev';
|
|
112
|
+
break;
|
|
113
|
+
case 'stg':
|
|
114
|
+
case 'stag':
|
|
115
|
+
case 'staging':
|
|
116
|
+
result = 'staging';
|
|
117
|
+
break;
|
|
118
|
+
case 'prd':
|
|
119
|
+
case 'prod':
|
|
120
|
+
case 'production':
|
|
121
|
+
result = 'production';
|
|
122
|
+
break;
|
|
123
|
+
default:
|
|
124
|
+
throw new Error("env ".concat(env, " not supported."));
|
|
125
|
+
}
|
|
126
|
+
return result;
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Mapping content to exportAs value
|
|
131
|
+
*
|
|
132
|
+
* @param {string} key
|
|
133
|
+
* @param {any} value
|
|
134
|
+
* @param {string} exportAs
|
|
135
|
+
* @return {string}
|
|
136
|
+
*/
|
|
137
|
+
var contentMap = function contentMap(key, value, exportAs) {
|
|
138
|
+
var content = '';
|
|
139
|
+
switch (exportAs) {
|
|
140
|
+
case 'ts':
|
|
141
|
+
if (lodash.isNull(value)) {
|
|
142
|
+
content += "export const ".concat(key, ": string | null = ").concat(value, ";\n");
|
|
143
|
+
} else if (typeof value === 'boolean') {
|
|
144
|
+
content += "export const ".concat(key, ": boolean = ").concat(value, ";\n");
|
|
145
|
+
} else {
|
|
146
|
+
content += "export const ".concat(key, " = '").concat(value, "';\n");
|
|
147
|
+
}
|
|
148
|
+
break;
|
|
149
|
+
case 'js':
|
|
150
|
+
content += "export const ".concat(key, " = \"").concat(value, "\";\n");
|
|
151
|
+
break;
|
|
152
|
+
case 'env':
|
|
153
|
+
content += "".concat(key, " = \"").concat(value, "\"\n");
|
|
154
|
+
break;
|
|
155
|
+
default:
|
|
156
|
+
throw new Error("exportAs ".concat(exportAs, " not supported."));
|
|
157
|
+
}
|
|
158
|
+
return content;
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Transform config
|
|
163
|
+
*
|
|
164
|
+
* @param {OutputMap} data
|
|
165
|
+
* @param {string} env
|
|
166
|
+
* @param {string} configKeyPrefix
|
|
167
|
+
* @param {OutputOptions} options
|
|
168
|
+
* @return {void}
|
|
169
|
+
*/
|
|
170
|
+
var transformConfig = exports.transformConfig = function transformConfig(data, env, configKeyPrefix, options) {
|
|
171
|
+
var envKey = configKeyPrefix ? "".concat(configKeyPrefix, "ENV") : 'ENV';
|
|
172
|
+
var content = contentMap(envKey, envMap(env), options.exportAs);
|
|
173
|
+
Object.keys(data).forEach(function (key) {
|
|
174
|
+
var newConfigKey = configKeyPrefix ? "".concat(configKeyPrefix).concat(key) : key;
|
|
175
|
+
if (key === 'BASE_PROJECT') {
|
|
176
|
+
var extensionFile = [".".concat(data[key], ".js"), ".".concat(data[key], ".jsx"), ".".concat(data[key], ".ts"), ".".concat(data[key], ".tsx"), ".".concat(data[key], ".css"), ".".concat(data[key], ".json"), ".".concat(data[key], ".scss")];
|
|
177
|
+
content += contentMap(newConfigKey, extensionFile.join(','), options.exportAs);
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
if (key === 'SITEMAP') {
|
|
181
|
+
content += contentMap(newConfigKey, JSON.stringify(data[key]), options.exportAs);
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
if (Array.isArray(data[key])) {
|
|
185
|
+
content += contentMap(newConfigKey, data[key].join(','), options.exportAs);
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
if (_typeof(data[key]) === 'object') {
|
|
189
|
+
if (data[key].hasOwnProperty(env)) {
|
|
190
|
+
content += contentMap(newConfigKey, data[key][env], options.exportAs);
|
|
191
|
+
} else {
|
|
192
|
+
content += contentMap(newConfigKey, JSON.stringify(data[key]), options.exportAs);
|
|
193
|
+
}
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
content += contentMap(newConfigKey, data[key], options.exportAs);
|
|
197
|
+
});
|
|
198
|
+
(0, _Output.outputToFile)(content, options);
|
|
199
|
+
};
|
|
200
|
+
//# sourceMappingURL=Config.js.map
|
|
@@ -0,0 +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","concat","stringify","outputToFile","envMap","env","result","Error","contentMap","value","exportAs","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 const content = `module.exports = ${JSON.stringify(config, null, 2)}`;\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":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { GoogleAuth } from 'google-auth-library';
|
|
2
|
+
import { JSONClient } from 'google-auth-library/build/src/auth/googleauth';
|
|
3
|
+
/**
|
|
4
|
+
* Authenticate using google console service account.
|
|
5
|
+
* @return {GoogleAuth<JSONClient>}
|
|
6
|
+
*/
|
|
7
|
+
declare const authorizeServiceAccount: () => GoogleAuth<JSONClient>;
|
|
8
|
+
/**
|
|
9
|
+
* @param {GoogleAuth<JSONClient>} auth The authenticated Google OAuth client.
|
|
10
|
+
* @param {string} spreadsheetId
|
|
11
|
+
* @param {string} spreadsheetTab
|
|
12
|
+
* @return {Promise<any[][] | null | undefined>}
|
|
13
|
+
*/
|
|
14
|
+
declare const fetchGoogleSheet: (auth: GoogleAuth<JSONClient>, spreadsheetId: string, spreadsheetTab: string) => Promise<any[][] | null | undefined>;
|
|
15
|
+
export { authorizeServiceAccount, fetchGoogleSheet };
|