@farris/jit-engine 1.4.87 → 1.4.88

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 CHANGED
@@ -1,3 +1,7 @@
1
+ 1.4.88
2
+
3
+ 支持新版国际化
4
+
1
5
  1.4.87
2
6
 
3
7
  修复移动端历史遗留问题
@@ -19,7 +19,7 @@ class LangTemplateGenerator extends abstract_template_generator_1.AbstractTempla
19
19
  generateString += `
20
20
  import { Pipe, PipeTransform, Injectable } from '@angular/core';
21
21
  import { TranslateService } from '@ngx-translate/core';
22
- import { TranslateHttpLoader } from '@ngx-translate/http-loader';
22
+ import { FarrisTranslateHttpLoaderService } from '@farris/devkit';
23
23
  import { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
24
24
  import { Observable, of } from 'rxjs';
25
25
  import { catchError, switchMap } from "rxjs/operators";
@@ -35,7 +35,7 @@ export function createTranslateLoader(http: HttpClient,version:string) {
35
35
  if (version) {
36
36
  versionSuffix = "?v=" + version;
37
37
  }
38
- return new TranslateHttpLoader(http, BasePathService.convertPath('/${toolhepler_1.ToolHelper.replaceFanXieXianToXieXian(serviceUnitPath.toLowerCase())}/web/${projectName.toLowerCase()}/${moduleCode.toLowerCase()}/${runTimeDimPath.toLowerCase()}i18n/'), '.json'+ versionSuffix);
38
+ return new FarrisTranslateHttpLoaderService(http, BasePathService.convertPath('/${toolhepler_1.ToolHelper.replaceFanXieXianToXieXian(serviceUnitPath.toLowerCase())}/web/${projectName.toLowerCase()}/${moduleCode.toLowerCase()}/${runTimeDimPath.toLowerCase()}i18n/'), '.json'+ versionSuffix);
39
39
  }
40
40
  `;
41
41
  }
@@ -46,7 +46,7 @@ export function createTranslateLoader(http: HttpClient,version:string) {
46
46
  if (version) {
47
47
  versionSuffix = "?v=" + version;
48
48
  }
49
- return new TranslateHttpLoader(http, BasePathService.convertPath('/${toolhepler_1.ToolHelper.replaceFanXieXianToXieXian(serviceUnitPath.toLowerCase())}/web/${projectName.toLowerCase()}/${moduleCode.toLowerCase()}/i18n/'), '.json'+ versionSuffix);
49
+ return new FarrisTranslateHttpLoaderService(http, BasePathService.convertPath('/${toolhepler_1.ToolHelper.replaceFanXieXianToXieXian(serviceUnitPath.toLowerCase())}/web/${projectName.toLowerCase()}/${moduleCode.toLowerCase()}/i18n/'), '.json'+ versionSuffix);
50
50
  }
51
51
  `;
52
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lang-template-generator.js","sourceRoot":"","sources":["../../../../src/utility/template-generator/devkit/lang-template-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lang-template-generator.js","sourceRoot":"","sources":["../../../../src/utility/template-generator/devkit/lang-template-generator.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ class ModuleI18nGenerator {
9
9
  const serviceUnitPath = metaDataConfig.serviceUnitPath ? metaDataConfig.serviceUnitPath : "";
10
10
  const generateString = `
11
11
  export function createTranslateLoader(http: HttpClient) {
12
- return new TranslateHttpLoader(http, '/${toolhepler_1.ToolHelper.replaceFanXieXianToXieXian(serviceUnitPath.toLowerCase())}/web/${projectName.toLowerCase()}/${moduleCode.toLowerCase()}/i18n/', '.json');
12
+ return new FarrisTranslateHttpLoaderService(http, '/${toolhepler_1.ToolHelper.replaceFanXieXianToXieXian(serviceUnitPath.toLowerCase())}/web/${projectName.toLowerCase()}/${moduleCode.toLowerCase()}/i18n/', '.json');
13
13
  }`;
14
14
  return generateString;
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"module-i18n-generator.js","sourceRoot":"","sources":["../../../../../src/utility/template-generator/devkit/module-generator/module-i18n-generator.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AAEjD,MAAa,mBAAmB;IAY5B,MAAM,CAAC,uBAAuB,CAAC,cAAmB,EAAE,QAAa;QAC7D,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC;QAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;QACjC,MAAM,eAAe,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,MAAM,cAAc,GAAG;;6CAEc,uBAAU,CAAC,0BAA0B,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,WAAW,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,WAAW,EAAE;EAC5K,CAAC;QAEK,OAAO,cAAc,CAAC;IAC1B,CAAC;CACJ;AAvBD,kDAuBC"}
1
+ {"version":3,"file":"module-i18n-generator.js","sourceRoot":"","sources":["../../../../../src/utility/template-generator/devkit/module-generator/module-i18n-generator.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AAEjD,MAAa,mBAAmB;IAY5B,MAAM,CAAC,uBAAuB,CAAC,cAAmB,EAAE,QAAa;QAC7D,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC;QAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;QACjC,MAAM,eAAe,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,MAAM,cAAc,GAAG;;0DAE2B,uBAAU,CAAC,0BAA0B,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,WAAW,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,WAAW,EAAE;EACzL,CAAC;QAEK,OAAO,cAAc,CAAC;IAC1B,CAAC;CACJ;AAvBD,kDAuBC"}
@@ -27,7 +27,7 @@ import { ${externalPrefix}LangPipe, ${externalPrefix}SafeHtmlPipe } from './lang
27
27
  import { FARRIS_DEVKIT_APP_PROVIDERS } from '@farris/devkit';
28
28
  import { CommandServicesModule } from '@farris/command-services';
29
29
  import { TranslateModule, TranslateLoader, MissingTranslationHandler, MissingTranslationHandlerParams } from '@ngx-translate/core';
30
- import { TranslateHttpLoader } from '@ngx-translate/http-loader';
30
+ import { FarrisTranslateHttpLoaderService } from '@farris/devkit';
31
31
  import { ${externalPrefix}TranslateResolveService } from './lang/lang-pipe';
32
32
  import { HttpClient } from '@angular/common/http';
33
33
  import { VerifyDetailModule } from '@farris/ui-verify-detail';
package/package.json CHANGED
@@ -1,86 +1,57 @@
1
- {
2
- "_from": "@farris/jit-engine",
3
- "_id": "@farris/jit-engine@1.4.87",
4
- "_inBundle": false,
5
- "_integrity": "sha512-1852zHE9P5mkZeyZYYqt2yXMqL0OUhC2o/EEcRpliDt7i4tX885a6xgFrI4SvtaJLDAQ2lcSQ4ZvNg2cFq7XRg==",
6
- "_location": "/@farris/jit-engine",
7
- "_phantomChildren": {},
8
- "_requested": {
9
- "type": "tag",
10
- "registry": true,
11
- "raw": "@farris/jit-engine",
12
- "name": "@farris/jit-engine",
13
- "escapedName": "@farris%2fjit-engine",
14
- "scope": "@farris",
15
- "rawSpec": "",
16
- "saveSpec": null,
17
- "fetchSpec": "latest"
18
- },
19
- "_requiredBy": [
20
- "#USER",
21
- "/"
22
- ],
23
- "_resolved": "https://registry.npmjs.org/@farris/jit-engine/-/jit-engine-1.4.87.tgz",
24
- "_shasum": "8a7f9981fce8f663464e6c0be34406baef701c96",
25
- "_spec": "@farris/jit-engine",
26
- "_where": "D:\\Downloads\\npm",
27
- "author": {
28
- "name": "Noah"
29
- },
30
- "bin": {
31
- "jit": "bin/index.js"
32
- },
33
- "bundleDependencies": false,
34
- "dependencies": {
35
- "fs-extra": "^8.1.0",
36
- "lodash": "^4.17.10",
37
- "prettier": "^1.18.2",
38
- "pug": "^2.0.0-rc.4",
39
- "read-package-tree": "^5.3.1",
40
- "typescript-ioc": "^1.2.4",
41
- "yargs": "^12.0.1"
42
- },
43
- "deprecated": false,
44
- "description": "1.4.87",
45
- "devDependencies": {
46
- "@types/fs-extra": "^8.1.1",
47
- "@types/jest": "24.0.15",
48
- "@types/lodash": "^4.14.91",
49
- "@types/node": "^12.6.1",
50
- "@types/prettier": "^1.18.0",
51
- "@types/pug": "^2.0.4",
52
- "@types/yargs": "^11.1.1",
53
- "jest": "^24.8.0",
54
- "ts-jest": "^24.0.2",
55
- "ts-node": "^8.3.0",
56
- "tslint": "^5.18.0",
57
- "typescript": "^3.5.3"
58
- },
59
- "engines": {
60
- "node": ">= 6.9.0",
61
- "npm": ">= 3.0.0"
62
- },
63
- "files": [
64
- "lib/",
65
- "bin/",
66
- "ioc.config"
67
- ],
68
- "keywords": [
69
- "jit",
70
- "engine",
71
- "jit-engine"
72
- ],
73
- "license": "ISC",
74
- "main": "./lib/index.js",
75
- "name": "@farris/jit-engine",
76
- "scripts": {
77
- "build": "npm run build-ts && npm run copy-static-assets",
78
- "build-q": "npm run build-ts",
79
- "build-ts": "tsc",
80
- "copy-static-assets": "ts-node copyStaticAssets.ts",
81
- "test": "jest --coverage ",
82
- "tslint": "tslint -c tslint.json -p tsconfig.json",
83
- "watch-test": "npm run test --watchAll"
84
- },
85
- "version": "1.4.87"
86
- }
1
+ {
2
+ "name": "@farris/jit-engine",
3
+ "version": "1.4.88",
4
+ "description": "",
5
+ "main": "./lib/index.js",
6
+ "bin": {
7
+ "jit": "./bin/index.js"
8
+ },
9
+ "engines": {
10
+ "node": ">= 6.9.0",
11
+ "npm": ">= 3.0.0"
12
+ },
13
+ "files": [
14
+ "lib/",
15
+ "bin/",
16
+ "ioc.config"
17
+ ],
18
+ "scripts": {
19
+ "build": "npm run build-ts && npm run copy-static-assets",
20
+ "build-q": "npm run build-ts",
21
+ "test": "jest --coverage ",
22
+ "watch-test": "npm run test --watchAll",
23
+ "build-ts": "tsc",
24
+ "tslint": "tslint -c tslint.json -p tsconfig.json",
25
+ "copy-static-assets": "ts-node copyStaticAssets.ts"
26
+ },
27
+ "keywords": [
28
+ "jit",
29
+ "engine",
30
+ "jit-engine"
31
+ ],
32
+ "author": "Noah",
33
+ "license": "ISC",
34
+ "dependencies": {
35
+ "fs-extra": "^8.1.0",
36
+ "lodash": "^4.17.10",
37
+ "prettier": "^1.18.2",
38
+ "pug": "^2.0.0-rc.4",
39
+ "read-package-tree": "^5.3.1",
40
+ "typescript-ioc": "^1.2.4",
41
+ "yargs": "^12.0.1"
42
+ },
43
+ "devDependencies": {
44
+ "@types/fs-extra": "^8.1.1",
45
+ "@types/jest": "24.0.15",
46
+ "@types/lodash": "^4.14.91",
47
+ "@types/node": "^12.6.1",
48
+ "@types/prettier": "^1.18.0",
49
+ "@types/pug": "^2.0.4",
50
+ "@types/yargs": "^11.1.1",
51
+ "jest": "^24.8.0",
52
+ "ts-jest": "^24.0.2",
53
+ "ts-node": "^8.3.0",
54
+ "tslint": "^5.18.0",
55
+ "typescript": "^3.5.3"
56
+ }
57
+ }