@rws-framework/client 2.6.1 → 2.6.3
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 +15 -0
- package/_tools.js +3 -66
- package/cfg/tsconfigSetup.js +102 -0
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/ApiServiceInstance.html +6 -2
- package/docs/classes/ConfigServiceInstance.html +6 -2
- package/docs/classes/DOMServiceInstance.html +7 -2
- package/docs/classes/NotifyServiceInstance.html +6 -2
- package/docs/classes/RWSRouter.html +2 -2
- package/docs/classes/RWSService.html +6 -2
- package/docs/classes/RWSViewComponent.html +22 -22
- package/docs/classes/RoutingServiceInstance.html +6 -2
- package/docs/classes/ServiceWorkerServiceInstance.html +6 -2
- package/docs/classes/UtilsServiceInstance.html +6 -4
- package/docs/classes/WSServiceInstance.html +6 -2
- package/docs/functions/ApiService.html +1 -1
- package/docs/functions/ConfigService.html +1 -1
- package/docs/functions/DOMService.html +1 -1
- package/docs/functions/NotifyService.html +1 -1
- package/docs/functions/RWSContainer.html +1 -1
- package/docs/functions/RWSIgnore.html +1 -1
- package/docs/functions/RWSInject.html +1 -1
- package/docs/functions/RWSView.html +1 -1
- package/docs/functions/RoutingService.html +1 -1
- package/docs/functions/ServiceWorkerService.html +1 -1
- package/docs/functions/UtilsService.html +1 -1
- package/docs/functions/WSService.html +1 -1
- package/docs/functions/declareRWSComponents.html +1 -1
- package/docs/functions/ngAttr.html +1 -1
- package/docs/functions/provideRWSDesignSystem.html +1 -1
- package/docs/functions/realtimeWebSuiteClientPackage.html +1 -1
- package/docs/functions/renderRouteComponent.html +1 -1
- package/docs/functions/sanitizedAttr.html +1 -1
- package/docs/interfaces/IRWSConfig.html +3 -2
- package/docs/interfaces/IRWSDecoratorOptions.html +3 -2
- package/docs/interfaces/IRWSHttpRoute.html +2 -2
- package/docs/interfaces/IRWSPrefixedHTTProutes.html +2 -2
- package/docs/interfaces/IRWSUser.html +2 -2
- package/docs/interfaces/IRoutingEvent.html +2 -2
- package/docs/types/DOMOutputType.html +1 -1
- package/docs/types/IRWSAssetShowOptions.html +1 -1
- package/docs/types/IRWSBackendRoute.html +1 -1
- package/docs/types/IRWSFrontRoutes.html +1 -1
- package/docs/types/IRWSRouteResult.html +1 -1
- package/docs/types/IRWSWebsocketStatus.html +1 -1
- package/docs/types/NotifyLogType.html +1 -1
- package/docs/types/NotifyUiType.html +1 -1
- package/docs/types/RWSNotify.html +1 -1
- package/docs/types/RouteReturn.html +1 -1
- package/docs/types/TagsProcessorType.html +1 -1
- package/docs/variables/_ROUTING_EVENT_NAME.html +1 -1
- package/package.json +1 -1
- package/src/client/components.ts +0 -0
- package/src/client/config.ts +0 -0
- package/src/client/services.ts +0 -0
- package/src/components/_decorator.ts +1 -2
- package/src/components/router/component.ts +1 -1
package/README.md
CHANGED
|
@@ -411,6 +411,12 @@ class YourComponent extends RWSViewComponent {
|
|
|
411
411
|
|
|
412
412
|
```
|
|
413
413
|
|
|
414
|
+
A default service can be used in legacy like this:
|
|
415
|
+
|
|
416
|
+
```javascript
|
|
417
|
+
window.RWS.client.get('ApiService').dateMethodFromRWS();
|
|
418
|
+
```
|
|
419
|
+
|
|
414
420
|
Default services: https://github.com/papablack/rws-client/blob/7d16d9c6d83c81c9fe470eb0f507756bc6c71b35/src/components/_component.ts#L58
|
|
415
421
|
|
|
416
422
|
## Custom service usage:
|
|
@@ -451,6 +457,7 @@ import { RWSService } from '@rws-framework/client';
|
|
|
451
457
|
|
|
452
458
|
|
|
453
459
|
class DateService extends RWSService {
|
|
460
|
+
static _IN_CLIENT: boolean = true //If set engine will let legacy use the service through RWSClient.get method
|
|
454
461
|
//(...)
|
|
455
462
|
}
|
|
456
463
|
|
|
@@ -458,6 +465,14 @@ export default DateService.getSingleton(); // Fast DI service pointer (it points
|
|
|
458
465
|
export { DateService as DateServiceInstance }; // the custom service class type
|
|
459
466
|
```
|
|
460
467
|
|
|
468
|
+
**Custom service for legacy**
|
|
469
|
+
|
|
470
|
+
If service has static **_IN_CLIENT** set for **true** you can use it like this:
|
|
471
|
+
|
|
472
|
+
```javascript
|
|
473
|
+
window.RWS.client.get('DateService').dateMethodFromRWS();
|
|
474
|
+
```
|
|
475
|
+
|
|
461
476
|
## Frontend routes
|
|
462
477
|
|
|
463
478
|
if you are passing routes this is example routing file for frontend:
|
package/_tools.js
CHANGED
|
@@ -3,9 +3,8 @@ const fs = require('fs');
|
|
|
3
3
|
const ts = require('typescript');
|
|
4
4
|
const { spawn } = require('child_process');
|
|
5
5
|
const JSON5 = require('json5');
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const { rwsPath } = require('@rws-framework/console');
|
|
6
|
+
|
|
7
|
+
const { setupTsConfig } = require('./cfg/tsconfigSetup');
|
|
9
8
|
|
|
10
9
|
function findRootWorkspacePath(currentPath) {
|
|
11
10
|
const parentPackageJsonPath = path.join(currentPath + '/..', 'package.json');
|
|
@@ -332,71 +331,9 @@ function getAllFilesInFolder(folderPath, ignoreFilenames = [], recursive = false
|
|
|
332
331
|
return files;
|
|
333
332
|
}
|
|
334
333
|
|
|
335
|
-
function setupTsConfig(tsConfigPath, executionDir) {
|
|
336
|
-
|
|
337
|
-
if (!fs.existsSync(tsConfigPath)) {
|
|
338
|
-
throw new Error(`Typescript config file "${tsConfigPath}" does not exist`);
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
const tsConfigContents = fs.readFileSync(tsConfigPath, 'utf-8');
|
|
342
|
-
|
|
343
|
-
try {
|
|
344
|
-
let tsConfig = JSON.parse(tsConfigContents);
|
|
345
|
-
|
|
346
|
-
const declarationsPath = path.resolve(__dirname, 'types') + '/declarations.d.ts';
|
|
347
|
-
const testsPath = path.resolve(__dirname, 'tests');
|
|
348
|
-
const declarationsPathMD5 = md5(fs.readFileSync(declarationsPath, 'utf-8'));
|
|
349
|
-
const testsPathMD5 = fs.existsSync(testsPath) ? md5(fs.readFileSync(testsPath, 'utf-8')) : null;
|
|
350
|
-
|
|
351
|
-
const relativeDeclarationsPath = path.relative(path.dirname(tsConfigPath), declarationsPath);
|
|
352
|
-
const relativeTestsPath = path.relative(path.dirname(tsConfigPath), testsPath);
|
|
353
|
-
|
|
354
|
-
const includedMD5 = [];
|
|
355
|
-
|
|
356
|
-
let changed = false;
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
if (!Object.keys(tsConfig).includes('include')) {
|
|
360
|
-
tsConfig['include'] = [];
|
|
361
|
-
} else {
|
|
362
|
-
tsConfig['include'] = tsConfig['include'].filter((inc) => fs.existsSync(rwsPath.relativize(inc, executionDir)))
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
if (!Object.keys(tsConfig).includes('exclude')) {
|
|
366
|
-
tsConfig['exclude'] = [];
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
if (!tsConfig['include'].includes(relativeDeclarationsPath)) {
|
|
371
|
-
console.log(chalk.blueBright('[RWS TS CONFIG]'), 'adding RWS typescript declarations to project tsconfig.json');
|
|
372
|
-
tsConfig['include'].push(relativeDeclarationsPath);
|
|
373
|
-
includedMD5.push(md5(fs.readFileSync(declarationsPath, 'utf-8')));
|
|
374
|
-
changed = true;
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
if ((!tsConfig['exclude'].includes(relativeTestsPath))) {
|
|
378
|
-
console.log(chalk.blueBright('[RWS TS CONFIG]'), 'adding RWS typescript exclusions to project tsconfig.json');
|
|
379
|
-
tsConfig['exclude'].push(relativeTestsPath);
|
|
380
|
-
changed = true;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
if (changed) {
|
|
384
|
-
fs.writeFileSync(tsConfigPath, JSON.stringify(tsConfig, null, 2));
|
|
385
|
-
console.log(chalk.yellowBright('Typescript config file'), `"${chalk.blueBright(tsConfigPath)}"`, chalk.yellowBright('has been changed'));
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
return true;
|
|
389
|
-
} catch (e) {
|
|
390
|
-
console.log(chalk.red('Error in tsconfig.json:'));
|
|
391
|
-
console.log(chalk.blueBright(e.message));
|
|
392
|
-
|
|
393
|
-
return false;
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
|
|
397
334
|
function getPartedModeVendorsBannerParams(partedDirUrlPrefix, partedPrefix) {
|
|
398
335
|
return {
|
|
399
|
-
banner: `if(!window.RWS_PARTS_LOADED){
|
|
336
|
+
banner: `if(!window.RWS_PARTS_LOADED){
|
|
400
337
|
const script = document.createElement('script');
|
|
401
338
|
script.src = '${partedDirUrlPrefix}/${partedPrefix}.vendors.js';
|
|
402
339
|
script.type = 'text/javascript';
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
const md5 = require('md5');
|
|
2
|
+
const chalk = require('chalk');
|
|
3
|
+
const tools = require('../_tools');
|
|
4
|
+
const { rwsPath } = require('@rws-framework/console');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
const fs = require('fs');
|
|
7
|
+
|
|
8
|
+
function setupTsConfig(tsConfigPath, executionDir) {
|
|
9
|
+
|
|
10
|
+
if (!fs.existsSync(tsConfigPath)) {
|
|
11
|
+
throw new Error(`Typescript config file "${tsConfigPath}" does not exist`);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const tsConfigContents = fs.readFileSync(tsConfigPath, 'utf-8');
|
|
15
|
+
|
|
16
|
+
try {
|
|
17
|
+
let tsConfig = JSON.parse(tsConfigContents);
|
|
18
|
+
|
|
19
|
+
const declarationsPath = path.resolve(__dirname, '..', 'types') + '/declarations.d.ts';
|
|
20
|
+
const testsPath = path.resolve(__dirname, '..', 'tests');
|
|
21
|
+
const declarationsPathMD5 = md5(fs.readFileSync(declarationsPath, 'utf-8'));
|
|
22
|
+
const testsPathMD5 = fs.existsSync(testsPath) ? md5(fs.readFileSync(testsPath, 'utf-8')) : null;
|
|
23
|
+
|
|
24
|
+
const relativeDeclarationsPath = path.relative(path.dirname(tsConfigPath), declarationsPath);
|
|
25
|
+
const relativeTestsPath = path.relative(path.dirname(tsConfigPath), testsPath);
|
|
26
|
+
|
|
27
|
+
const includedMD5 = [];
|
|
28
|
+
|
|
29
|
+
let changed = false;
|
|
30
|
+
|
|
31
|
+
if (!tsConfig['include'].includes('src')) {
|
|
32
|
+
console.log(chalk.blueBright('[RWS TS CONFIG]'), 'adding RWS project typescript code to project tsconfig.json');
|
|
33
|
+
tsConfig['include'].unshift('src');
|
|
34
|
+
changed = true;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (!Object.keys(tsConfig).includes('include')) {
|
|
38
|
+
tsConfig['include'] = [];
|
|
39
|
+
} else {
|
|
40
|
+
tsConfig['include'] = tsConfig['include'].filter((inc) => {
|
|
41
|
+
if(inc === 'src'){
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return fs.existsSync(rwsPath.relativize(inc, executionDir))
|
|
46
|
+
})
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (!Object.keys(tsConfig).includes('exclude')) {
|
|
50
|
+
tsConfig['exclude'] = [];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
let probablyLinked = false;
|
|
54
|
+
|
|
55
|
+
tsConfig['include'].forEach(element => {
|
|
56
|
+
if(element !== 'src' && element.indexOf('declarations.d.ts') > -1 && md5(fs.readFileSync(rwsPath.relativize(element, executionDir), 'utf-8')) === md5(fs.readFileSync(declarationsPath, 'utf-8'))){
|
|
57
|
+
probablyLinked = true;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
if (!tsConfig['include'].includes(relativeDeclarationsPath) && !probablyLinked) {
|
|
62
|
+
console.log(chalk.blueBright('[RWS TS CONFIG]'), 'adding RWS typescript declarations to project tsconfig.json');
|
|
63
|
+
tsConfig['include'].push(relativeDeclarationsPath);
|
|
64
|
+
includedMD5.push(md5(fs.readFileSync(declarationsPath, 'utf-8')));
|
|
65
|
+
changed = true;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
if (changed) {
|
|
71
|
+
fs.writeFileSync(tsConfigPath, JSON.stringify(tsConfig, null, 2));
|
|
72
|
+
console.log(chalk.yellowBright('Typescript config file'), `"${chalk.blueBright(tsConfigPath)}"`, chalk.yellowBright('has been changed'));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return true;
|
|
76
|
+
} catch (e) {
|
|
77
|
+
console.log(chalk.red('Error in tsconfig.json:'));
|
|
78
|
+
console.log(chalk.blueBright(e.message));
|
|
79
|
+
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function getPartedModeVendorsBannerParams(partedDirUrlPrefix, partedPrefix) {
|
|
85
|
+
return {
|
|
86
|
+
banner: `if(!window.RWS_PARTS_LOADED){
|
|
87
|
+
const script = document.createElement('script');
|
|
88
|
+
script.src = '${partedDirUrlPrefix}/${partedPrefix}.vendors.js';
|
|
89
|
+
script.type = 'text/javascript';
|
|
90
|
+
document.body.appendChild(script);
|
|
91
|
+
window.RWS_PARTS_LOADED = true;
|
|
92
|
+
console.log('[RWS INIT SCRIPT]', 'vendors injected...');
|
|
93
|
+
}`.replace('\n', ''),
|
|
94
|
+
raw: true,
|
|
95
|
+
entryOnly: true,
|
|
96
|
+
include: `${partedPrefix}.client.js`
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
module.exports = {
|
|
101
|
+
setupTsConfig
|
|
102
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
window.navigationData = "data:application/octet-stream;base64,
|
|
1
|
+
window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAA53XUU/bMBAH8O+SZ9hGN9jGWwfdqAQtalN4mCbkJtfgkdqRfSmwad99blLVcXKxKx7h/v7ZSezk+vNvhPCC0Xk0LPgc1IYnMBYamUggOooKho+mluRMa9Dvu5l3j7jOTfCJizQ6Pxl8+Xe0Fy+kWPEsiJIxn3s5vQmi3YxPnEjkq9cgSsZ87ux+PpMlgupa+1Jg/G42EtjVAsIdh+cLuS6kAIGk4yS8mlkxF+FHSud88i56L9UTqKDvS/tmWSDPdVCnUj51/yD6yU7E513FN9dDRMWXZn9oi3FhtsuKJcZzIy42OD07qic2Y1Cnx1wfGxiUYHnUmiZmWa9vam+Dx2ZL1YeatG25w7eQS0ikYijVtEAuBX0rqGAIvkIsqtPXK+4TIepWwYq/QHoVx7dK9j4wOhrCF7r56mhx26IfqE/haOOce0dpJHyUeZtOSyxKjF+Lxj1D81f1qrXFlvLh6+eT00F308WKCb2Sag2KIukUaR+8I4fmIOL8UT53NlM9J5UJXc12zDeWPIFIW9vJms36Id53JQXOWjvJco3yIVqVnIEuc6S0RvkQ7R6WWprLwTkyLMn1tSIhtf6kXsuM2gZO8TBpwfuhuhZyzDXU8TayLwSF+qZiqUTHsKWQYva/Nq8Jc061JA9JJxASH2bTRTye/HgY3Y0m8cNkeDOy5oYpzpa5cYmYK39sorYltNaqFEl1fhoNo0ucferrEynFCXgg2/RRiq16CKfFoxQn4IHqjxwyLpqvcOs0635mnAmpyLXsiwFA/IYE+4Cq6Ae2/WHP8G3JN9hpBEnDSXgoquejQCrnYZvNHsU16x6GaNSt0dOpOwAz3Rw1dvv/9rCDvnkpmJCCap/tWntNTUDlPOsU2bBnpXXFM1QuTcey2b5kqOG2+qbLLZTc8BSqZlDzTMxfNcKamohOetatgOXI12A+bfOSI1zk3NykW/NdZxl5Kd4B3olECqr6RhA/2Jp+N+dhNRMc+R9I+56cE+hAv/4DQryqByQQAAA="
|
package/docs/assets/search.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
window.searchData = "data:application/octet-stream;base64,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";
|
|
1
|
+
window.searchData = "data:application/octet-stream;base64,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";
|