@jsverse/transloco 7.2.0 → 7.2.1

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.
Files changed (110) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/package.json +1 -1
  3. package/schematics/src/assets/i18n/en.json +1 -0
  4. package/schematics/src/collection.json +59 -0
  5. package/schematics/src/component/index.d.ts +2 -0
  6. package/schematics/src/component/index.js +21 -0
  7. package/schematics/src/component/index.js.map +1 -0
  8. package/schematics/src/join/index.d.ts +3 -0
  9. package/schematics/src/join/index.js +79 -0
  10. package/schematics/src/join/index.js.map +1 -0
  11. package/schematics/src/join/schema.d.ts +28 -0
  12. package/schematics/src/join/schema.js +3 -0
  13. package/schematics/src/join/schema.js.map +1 -0
  14. package/schematics/src/join/schema.json +43 -0
  15. package/schematics/src/keys-manager/index.d.ts +5 -0
  16. package/schematics/src/keys-manager/index.js +97 -0
  17. package/schematics/src/keys-manager/index.js.map +1 -0
  18. package/schematics/src/keys-manager/schema.d.ts +19 -0
  19. package/schematics/src/keys-manager/schema.js +3 -0
  20. package/schematics/src/keys-manager/schema.js.map +1 -0
  21. package/schematics/src/keys-manager/schema.json +33 -0
  22. package/schematics/src/migrate/index.d.ts +3 -0
  23. package/schematics/src/migrate/index.js +21 -0
  24. package/schematics/src/migrate/index.js.map +1 -0
  25. package/schematics/src/migrate/ngx-translate-migration.d.ts +3 -0
  26. package/schematics/src/migrate/ngx-translate-migration.js +169 -0
  27. package/schematics/src/migrate/ngx-translate-migration.js.map +1 -0
  28. package/schematics/src/migrate/schema.d.ts +10 -0
  29. package/schematics/src/migrate/schema.js +3 -0
  30. package/schematics/src/migrate/schema.js.map +1 -0
  31. package/schematics/src/migrate/schema.json +23 -0
  32. package/schematics/src/ng-add/files/transloco-loader/transloco-loader.__ts__ +12 -0
  33. package/schematics/src/ng-add/files/transloco-module/transloco-root.module.__ts__ +24 -0
  34. package/schematics/src/ng-add/generators/http-loader.gen.d.ts +4 -0
  35. package/schematics/src/ng-add/generators/http-loader.gen.js +15 -0
  36. package/schematics/src/ng-add/generators/http-loader.gen.js.map +1 -0
  37. package/schematics/src/ng-add/generators/root-module.gen.d.ts +9 -0
  38. package/schematics/src/ng-add/generators/root-module.gen.js +31 -0
  39. package/schematics/src/ng-add/generators/root-module.gen.js.map +1 -0
  40. package/schematics/src/ng-add/generators/translation-files.gen.d.ts +4 -0
  41. package/schematics/src/ng-add/generators/translation-files.gen.js +23 -0
  42. package/schematics/src/ng-add/generators/translation-files.gen.js.map +1 -0
  43. package/schematics/src/ng-add/index.d.ts +3 -0
  44. package/schematics/src/ng-add/index.js +103 -0
  45. package/schematics/src/ng-add/index.js.map +1 -0
  46. package/schematics/src/ng-add/schema.d.ts +42 -0
  47. package/schematics/src/ng-add/schema.js +14 -0
  48. package/schematics/src/ng-add/schema.js.map +1 -0
  49. package/schematics/src/ng-add/schema.json +53 -0
  50. package/schematics/src/ng-migrate/index.d.ts +3 -0
  51. package/schematics/src/ng-migrate/index.js +14 -0
  52. package/schematics/src/ng-migrate/index.js.map +1 -0
  53. package/schematics/src/ng-migrate/ng-migrate.d.ts +5 -0
  54. package/schematics/src/ng-migrate/ng-migrate.js +106 -0
  55. package/schematics/src/ng-migrate/ng-migrate.js.map +1 -0
  56. package/schematics/src/ng-migrate/schema.d.ts +14 -0
  57. package/schematics/src/ng-migrate/schema.js +3 -0
  58. package/schematics/src/ng-migrate/schema.js.map +1 -0
  59. package/schematics/src/ng-migrate/schema.json +27 -0
  60. package/schematics/src/schematics.consts.d.ts +4 -0
  61. package/schematics/src/schematics.consts.js +8 -0
  62. package/schematics/src/schematics.consts.js.map +1 -0
  63. package/schematics/src/scope/index.d.ts +3 -0
  64. package/schematics/src/scope/index.js +101 -0
  65. package/schematics/src/scope/index.js.map +1 -0
  66. package/schematics/src/scope/schema.d.ts +28 -0
  67. package/schematics/src/scope/schema.js +3 -0
  68. package/schematics/src/scope/schema.js.map +1 -0
  69. package/schematics/src/scope/schema.json +84 -0
  70. package/schematics/src/split/index.d.ts +3 -0
  71. package/schematics/src/split/index.js +66 -0
  72. package/schematics/src/split/index.js.map +1 -0
  73. package/schematics/src/split/schema.d.ts +20 -0
  74. package/schematics/src/split/schema.js +3 -0
  75. package/schematics/src/split/schema.js.map +1 -0
  76. package/schematics/src/split/schema.json +35 -0
  77. package/schematics/src/types.d.ts +5 -0
  78. package/schematics/src/types.js +10 -0
  79. package/schematics/src/types.js.map +1 -0
  80. package/schematics/src/upgrade/index.d.ts +3 -0
  81. package/schematics/src/upgrade/index.js +19 -0
  82. package/schematics/src/upgrade/index.js.map +1 -0
  83. package/schematics/src/upgrade/schema.d.ts +6 -0
  84. package/schematics/src/upgrade/schema.js +3 -0
  85. package/schematics/src/upgrade/schema.js.map +1 -0
  86. package/schematics/src/upgrade/schema.json +16 -0
  87. package/schematics/src/upgrade/v2.d.ts +1 -0
  88. package/schematics/src/upgrade/v2.js +89 -0
  89. package/schematics/src/upgrade/v2.js.map +1 -0
  90. package/schematics/src/utils/array.d.ts +3 -0
  91. package/schematics/src/utils/array.js +12 -0
  92. package/schematics/src/utils/array.js.map +1 -0
  93. package/schematics/src/utils/config.d.ts +2 -0
  94. package/schematics/src/utils/config.js +13 -0
  95. package/schematics/src/utils/config.js.map +1 -0
  96. package/schematics/src/utils/find-module.d.ts +23 -0
  97. package/schematics/src/utils/find-module.js +110 -0
  98. package/schematics/src/utils/find-module.js.map +1 -0
  99. package/schematics/src/utils/package.d.ts +5 -0
  100. package/schematics/src/utils/package.js +19 -0
  101. package/schematics/src/utils/package.js.map +1 -0
  102. package/schematics/src/utils/projects.d.ts +8 -0
  103. package/schematics/src/utils/projects.js +56 -0
  104. package/schematics/src/utils/projects.js.map +1 -0
  105. package/schematics/src/utils/translations.d.ts +7 -0
  106. package/schematics/src/utils/translations.js +31 -0
  107. package/schematics/src/utils/translations.js.map +1 -0
  108. package/schematics/src/utils/transloco.d.ts +24 -0
  109. package/schematics/src/utils/transloco.js +93 -0
  110. package/schematics/src/utils/transloco.js.map +1 -0
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.run = exports.PIPE_IN_BINDING_REGEX = exports.PIPE_REGEX = void 0;
4
+ const p = require("node:path");
5
+ const ora = require("ora");
6
+ const replace_in_file_1 = require("replace-in-file");
7
+ const PIPE_CONTENT_REGEX = `\\s*([^}\\r\\n]*?\\|)\\s*(translate)[^\\r\\n]*?`;
8
+ exports.PIPE_REGEX = `{{${PIPE_CONTENT_REGEX}}}`;
9
+ exports.PIPE_IN_BINDING_REGEX = `\\]=('|")${PIPE_CONTENT_REGEX}\\1`;
10
+ // Example: `./src/ng2/**/*.html`;
11
+ function run(path) {
12
+ console.log('\x1b[4m%s\x1b[0m', '\nStarting migration script');
13
+ const dir = p.resolve(process.cwd());
14
+ path = p.join(dir, path, '/**/*');
15
+ const noSpecFiles = { ignore: `${path}spec.ts`, files: `${path}.ts` };
16
+ const [directive, pipe, pipeInBinding] = [
17
+ /(translate|\[translate(?:Params)?\])=("|')[^"']*\2/gm,
18
+ new RegExp(exports.PIPE_REGEX, 'gm'),
19
+ new RegExp(exports.PIPE_IN_BINDING_REGEX, 'gm'),
20
+ ].map((regex) => ({
21
+ files: `${path}.html`,
22
+ from: regex,
23
+ to: (match) => match.replace(/translate/g, 'transloco'),
24
+ }));
25
+ const moduleMultiImport = {
26
+ files: `${path}.ts`,
27
+ from: /import\s*{((([^,}]*,)+\s*(TranslateModule)\s*(,[^}]*)*)|(([^,{}]*,)*\s*(TranslateModule)\s*,\s*[a-zA-Z0-9]+(,[^}]*)*))\s*}\s*from\s*('|").?ngx-translate(\/[^'"]+)?('|");?/g,
28
+ to: (match) => match
29
+ .replace('TranslateModule', '')
30
+ .replace(/,\s*,/, ',')
31
+ .replace(/{\s*,/, '{')
32
+ .replace(/,\s*}/, '}')
33
+ .concat(`\nimport { TranslocoModule } from '@jsverse/transloco';`),
34
+ };
35
+ const moduleSingleImport = {
36
+ files: `${path}.ts`,
37
+ from: /import\s*{\s*(TranslateModule),?\s*}\s*from\s*('|").?ngx-translate(\/[^'"]+)?('|");?/g,
38
+ to: `import { TranslocoModule } from '@jsverse/transloco';`,
39
+ };
40
+ const modules = {
41
+ files: `${path}.ts`,
42
+ from: /(?<![a-zA-Z])TranslateModule(?![^]*from)(\.(forRoot|forChild)\(({[^}]*})*[^)]*\))?/g,
43
+ to: 'TranslocoModule',
44
+ };
45
+ const serviceMultiImport = {
46
+ files: `${path}.ts`,
47
+ from: /import\s*{((([^,}]*,)+\s*(TranslateService)\s*(,[^}]*)*)|(([^,{}]*,)*\s*(TranslateService)\s*,\s*[a-zA-Z0-9]+(,[^}]*)*))\s*}\s*from\s*('|").?ngx-translate(\/[^'"]+)?('|");?/g,
48
+ to: (match) => match
49
+ .replace('TranslateService', '')
50
+ .replace(/,\s*,/, ',')
51
+ .replace(/{\s*,/, '{')
52
+ .replace(/,\s*}/, '}')
53
+ .concat(`\nimport { TranslocoService } from '@jsverse/transloco';`),
54
+ };
55
+ const [serviceSingleImport, pipeImport] = [
56
+ /import\s*{\s*(TranslateService),?\s*}\s*from\s*('|").?ngx-translate(\/[^'"]+)?('|");?/g,
57
+ /import\s*{\s*(TranslatePipe),?\s*}\s*from\s*('|")[^'"]+('|");?/g,
58
+ ].map((regex) => ({
59
+ ...noSpecFiles,
60
+ from: regex,
61
+ to: `import { TranslocoService } from '@jsverse/transloco';`,
62
+ }));
63
+ const constructorInjection = {
64
+ ...noSpecFiles,
65
+ from: /(?:private|protected|public)\s+(.*?)\s*:\s*(?:TranslateService|TranslatePipe\s*(?:,|\)))/g,
66
+ to: (match) => match.replace(/TranslateService|TranslatePipe/g, 'TranslocoService'),
67
+ };
68
+ const serviceUsage = {
69
+ ...noSpecFiles,
70
+ from: /(?=([^]+(?:private|protected|public)\s+([^,:()]+)\s*:\s*(?:TranslocoService\s*(?:,|\)))))\1[^]*/gm,
71
+ to: (match, _, serviceName) => {
72
+ const sanitizedName = serviceName
73
+ .split('')
74
+ .map((char) => (['$', '^'].includes(char) ? `\\${char}` : char))
75
+ .join('');
76
+ const functionsMap = {
77
+ instant: 'translate',
78
+ transform: 'translate',
79
+ get: 'selectTranslate',
80
+ stream: 'selectTranslate',
81
+ use: 'setActiveLang',
82
+ set: 'setTranslation',
83
+ };
84
+ const propsMap = {
85
+ currentLang: 'getActiveLang()',
86
+ onLangChange: 'langChanges$',
87
+ };
88
+ const serviceCallRgx = ({ map, func }) => new RegExp(`(?:(?:\\s*|this\\.)${sanitizedName})(?:\\s*\\t*\\r*\\n*)*\\.(?:\\s*\\t*\\r*\\n*)*(${getTarget(map)})[\\r\\t\\n\\s]*${func ? '\\(' : '(?!\\()'}`, 'g');
89
+ const getTarget = (t) => Object.keys(t).join('|');
90
+ return [
91
+ { func: true, map: functionsMap },
92
+ { func: false, map: propsMap },
93
+ ].reduce((acc, curr) => {
94
+ return acc.replace(serviceCallRgx(curr), (str) => str.replace(new RegExp(getTarget(curr.map)), (func) => curr.map[func]));
95
+ }, match);
96
+ },
97
+ };
98
+ const specs = {
99
+ files: `${path}spec.ts`,
100
+ from: /TranslateService|TranslatePipe/g,
101
+ to: 'TranslocoService',
102
+ };
103
+ const htmlReplacements = [
104
+ {
105
+ matchers: [directive],
106
+ step: 'directives',
107
+ },
108
+ {
109
+ matchers: [pipe, pipeInBinding],
110
+ step: 'pipes',
111
+ },
112
+ ];
113
+ const tsReplacements = [
114
+ {
115
+ matchers: [modules, moduleMultiImport, moduleSingleImport],
116
+ step: 'modules',
117
+ },
118
+ {
119
+ matchers: [serviceMultiImport, serviceSingleImport, pipeImport],
120
+ step: 'service imports',
121
+ },
122
+ {
123
+ matchers: [constructorInjection],
124
+ step: 'constructor injections',
125
+ },
126
+ {
127
+ matchers: [serviceUsage],
128
+ step: 'service usage',
129
+ },
130
+ {
131
+ matchers: [specs],
132
+ step: 'specs',
133
+ },
134
+ ];
135
+ async function migrate(matchersArr, filesType) {
136
+ console.log(`\nMigrating ${filesType} files 📜`);
137
+ let spinner;
138
+ for (let i = 0; i < matchersArr.length; i++) {
139
+ const { step, matchers } = matchersArr[i];
140
+ const msg = `Step ${i + 1}/${matchersArr.length}: Migrating ${step}`;
141
+ spinner = ora().start(msg);
142
+ const noFilesFound = [];
143
+ for (const matcher of matchers) {
144
+ try {
145
+ await (0, replace_in_file_1.replaceInFile)(matcher);
146
+ }
147
+ catch (e) {
148
+ if (e.message.includes('No files match the pattern')) {
149
+ noFilesFound.push(e.message);
150
+ }
151
+ else {
152
+ throw e;
153
+ }
154
+ }
155
+ }
156
+ spinner.succeed(msg);
157
+ noFilesFound.forEach((pattern) => console.log('\x1b[33m%s\x1b[0m', `⚠️ ${pattern}`));
158
+ }
159
+ }
160
+ return migrate(htmlReplacements, 'HTML')
161
+ .then(() => migrate(tsReplacements, 'TS'))
162
+ .then(() => {
163
+ console.log('\n 🌵 Done! 🌵');
164
+ console.log('Welcome to a better translation experience 🌐');
165
+ console.log('\nFor more information about this script please visit 👉 https://jsverse.github.io/transloco/docs/migration/ngx\n');
166
+ });
167
+ }
168
+ exports.run = run;
169
+ //# sourceMappingURL=ngx-translate-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngx-translate-migration.js","sourceRoot":"","sources":["../../../../../../libs/transloco-schematics/src/migrate/ngx-translate-migration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface SchemaOptions {
2
+ /**
3
+ * The path to the source root directory.
4
+ */
5
+ path: string;
6
+ /**
7
+ * Where is the migration from.
8
+ */
9
+ from: 'Angular' | 'NgxTranslate';
10
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../../libs/transloco-schematics/src/migrate/schema.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "transloco-migrate",
4
+ "title": "Run a migration script from @ngx-translate.",
5
+ "type": "object",
6
+ "properties": {
7
+ "from": {
8
+ "description": "Where is the migration from",
9
+ "x-prompt": "✍ Which library did you use?",
10
+ "enum": ["NgxTranslate", "Angular"],
11
+ "default": "NgxTranslate",
12
+ "type": "string"
13
+ },
14
+ "path": {
15
+ "description": "The path to the source root directory.",
16
+ "x-prompt": "✍ Which folder will contain the translation files?",
17
+ "type": "string",
18
+ "default": "./src/app",
19
+ "alias": "p"
20
+ }
21
+ },
22
+ "required": []
23
+ }
@@ -0,0 +1,12 @@
1
+ import { inject, Injectable } from "@angular/core";
2
+ import { Translation, TranslocoLoader } from "@jsverse/transloco";
3
+ import { HttpClient } from "@angular/common/http";
4
+
5
+ @Injectable({ providedIn: 'root' })
6
+ export class TranslocoHttpLoader implements TranslocoLoader {
7
+ private http = inject(HttpClient);
8
+
9
+ getTranslation(lang: string) {
10
+ return this.http.get<Translation>(`<%= loaderPrefix %>/assets/i18n/${lang}.json`);
11
+ }
12
+ }
@@ -0,0 +1,24 @@
1
+ import {
2
+ provideTransloco,
3
+ TranslocoModule
4
+ } from '@jsverse/transloco';
5
+ import { <% if (!importEnv) {%>isDevMode, <% } %>NgModule } from '@angular/core';
6
+ import { TranslocoHttpLoader } from './transloco-loader';
7
+ <% if (importEnv) {%>import { environment } from '<%= envPath %>';<% } %>
8
+
9
+ @NgModule({
10
+ exports: [ TranslocoModule ],
11
+ providers: [
12
+ provideTransloco({
13
+ config: {
14
+ availableLangs: [<%=stringifyList(langs)%>],
15
+ defaultLang: '<%=langs[0]%>',
16
+ // Remove this option if your application doesn't support changing language in runtime.
17
+ reRenderOnLangChange: true,
18
+ prodMode: <%=prodMode%>,
19
+ },
20
+ loader: TranslocoHttpLoader
21
+ }),
22
+ ],
23
+ })
24
+ export class TranslocoRootModule {}
@@ -0,0 +1,4 @@
1
+ export declare function createLoaderFile({ ssr, loaderPath }: {
2
+ ssr: any;
3
+ loaderPath: any;
4
+ }): import("@angular-devkit/schematics").Source;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createLoaderFile = void 0;
4
+ const schematics_1 = require("@angular-devkit/schematics");
5
+ function createLoaderFile({ ssr, loaderPath }) {
6
+ return (0, schematics_1.apply)((0, schematics_1.url)(`./files/transloco-loader`), [
7
+ (0, schematics_1.template)({
8
+ ts: 'ts',
9
+ loaderPrefix: ssr ? '${environment.baseUrl}' : '',
10
+ }),
11
+ (0, schematics_1.move)('/', loaderPath),
12
+ ]);
13
+ }
14
+ exports.createLoaderFile = createLoaderFile;
15
+ //# sourceMappingURL=http-loader.gen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-loader.gen.js","sourceRoot":"","sources":["../../../../../../../libs/transloco-schematics/src/ng-add/generators/http-loader.gen.ts"],"names":[],"mappings":";;;AAAA,2DAAwE;AAExE,SAAgB,gBAAgB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE;IAClD,OAAO,IAAA,kBAAK,EAAC,IAAA,gBAAG,EAAC,0BAA0B,CAAC,EAAE;QAC5C,IAAA,qBAAQ,EAAC;YACP,EAAE,EAAE,IAAI;YACR,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE;SAClD,CAAC;QACF,IAAA,iBAAI,EAAC,GAAG,EAAE,UAAU,CAAC;KACtB,CAAC,CAAC;AACL,CAAC;AARD,4CAQC"}
@@ -0,0 +1,9 @@
1
+ import { Source, Tree } from '@angular-devkit/schematics';
2
+ export declare function createTranslocoModule({ isLib, ssr, langs, modulePath, sourceRoot, host, }: {
3
+ isLib: boolean;
4
+ ssr: boolean;
5
+ langs: string[];
6
+ modulePath: string;
7
+ sourceRoot: string;
8
+ host: Tree;
9
+ }): Source;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTranslocoModule = void 0;
4
+ const path = require("node:path");
5
+ const schematics_1 = require("@angular-devkit/schematics");
6
+ const array_1 = require("../../utils/array");
7
+ function createTranslocoModule({ isLib, ssr, langs, modulePath, sourceRoot, host, }) {
8
+ const envPath = path
9
+ .relative(modulePath, `${sourceRoot}/environments/environment`)
10
+ .split(path.sep)
11
+ .join('/');
12
+ const envFileExists = host.exists(`${sourceRoot}/environments/environment.ts`);
13
+ let prodMode = envFileExists ? 'environment.production' : '!isDevMode()';
14
+ if (isLib) {
15
+ prodMode = 'false';
16
+ }
17
+ return (0, schematics_1.apply)((0, schematics_1.url)(`./files/transloco-module`), [
18
+ (0, schematics_1.template)({
19
+ ts: 'ts',
20
+ stringifyList: array_1.stringifyList,
21
+ isLib,
22
+ langs,
23
+ importEnv: ssr || envFileExists,
24
+ envPath,
25
+ prodMode,
26
+ }),
27
+ (0, schematics_1.move)('/', modulePath),
28
+ ]);
29
+ }
30
+ exports.createTranslocoModule = createTranslocoModule;
31
+ //# sourceMappingURL=root-module.gen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root-module.gen.js","sourceRoot":"","sources":["../../../../../../../libs/transloco-schematics/src/ng-add/generators/root-module.gen.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAElC,2DAOoC;AAEpC,6CAAkD;AAElD,SAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,GAAG,EACH,KAAK,EACL,UAAU,EACV,UAAU,EACV,IAAI,GAQL;IACC,MAAM,OAAO,GAAG,IAAI;SACjB,QAAQ,CAAC,UAAU,EAAE,GAAG,UAAU,2BAA2B,CAAC;SAC9D,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAC/B,GAAG,UAAU,8BAA8B,CAC5C,CAAC;IACF,IAAI,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,cAAc,CAAC;IAEzE,IAAI,KAAK,EAAE;QACT,QAAQ,GAAG,OAAO,CAAC;KACpB;IAED,OAAO,IAAA,kBAAK,EAAC,IAAA,gBAAG,EAAC,0BAA0B,CAAC,EAAE;QAC5C,IAAA,qBAAQ,EAAC;YACP,EAAE,EAAE,IAAI;YACR,aAAa,EAAb,qBAAa;YACb,KAAK;YACL,KAAK;YACL,SAAS,EAAE,GAAG,IAAI,aAAa;YAC/B,OAAO;YACP,QAAQ;SACT,CAAC;QACF,IAAA,iBAAI,EAAC,GAAG,EAAE,UAAU,CAAC;KACtB,CAAC,CAAC;AACL,CAAC;AAxCD,sDAwCC"}
@@ -0,0 +1,4 @@
1
+ import { Tree } from '@angular-devkit/schematics';
2
+ export declare function typescriptTranslationFileCreator(source: Tree, lang: string): void;
3
+ export declare function jsonTranslationFileCreator(source: Tree, lang: string): void;
4
+ export declare function createTranslateFiles(langs: string[], creator: (source: Tree, lang: string) => void, path: any): import("@angular-devkit/schematics").Source;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTranslateFiles = exports.jsonTranslationFileCreator = exports.typescriptTranslationFileCreator = void 0;
4
+ const schematics_1 = require("@angular-devkit/schematics");
5
+ function typescriptTranslationFileCreator(source, lang) {
6
+ source.create(`${lang}.ts`, `export default {};
7
+ `);
8
+ }
9
+ exports.typescriptTranslationFileCreator = typescriptTranslationFileCreator;
10
+ function jsonTranslationFileCreator(source, lang) {
11
+ source.create(`${lang}.json`, `{}
12
+ `);
13
+ }
14
+ exports.jsonTranslationFileCreator = jsonTranslationFileCreator;
15
+ function createTranslateFiles(langs, creator, path) {
16
+ const treeSource = new schematics_1.EmptyTree();
17
+ langs.forEach((lang) => {
18
+ creator(treeSource, lang);
19
+ });
20
+ return (0, schematics_1.apply)((0, schematics_1.source)(treeSource), [(0, schematics_1.move)('/', path)]);
21
+ }
22
+ exports.createTranslateFiles = createTranslateFiles;
23
+ //# sourceMappingURL=translation-files.gen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translation-files.gen.js","sourceRoot":"","sources":["../../../../../../../libs/transloco-schematics/src/ng-add/generators/translation-files.gen.ts"],"names":[],"mappings":";;;AAAA,2DAMoC;AAEpC,SAAgB,gCAAgC,CAAC,MAAY,EAAE,IAAY;IACzE,MAAM,CAAC,MAAM,CACX,GAAG,IAAI,KAAK,EACZ;CACH,CACE,CAAC;AACJ,CAAC;AAND,4EAMC;AAED,SAAgB,0BAA0B,CAAC,MAAY,EAAE,IAAY;IACnE,MAAM,CAAC,MAAM,CACX,GAAG,IAAI,OAAO,EACd;CACH,CACE,CAAC;AACJ,CAAC;AAND,gEAMC;AAED,SAAgB,oBAAoB,CAClC,KAAe,EACf,OAA6C,EAC7C,IAAI;IAEJ,MAAM,UAAU,GAAG,IAAI,sBAAS,EAAE,CAAC;IACnC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,OAAO,IAAA,kBAAK,EAAC,IAAA,mBAAM,EAAC,UAAU,CAAC,EAAE,CAAC,IAAA,iBAAI,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAXD,oDAWC"}
@@ -0,0 +1,3 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ import { SchemaOptions } from './schema';
3
+ export default function (options: SchemaOptions): Rule;
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const node_path_1 = require("node:path");
4
+ const schematics_1 = require("@angular-devkit/schematics");
5
+ const ng_ast_utils_1 = require("@schematics/angular/utility/ng-ast-utils");
6
+ const util_1 = require("@schematics/angular/utility/standalone/util");
7
+ const rules_1 = require("@schematics/angular/utility/standalone/rules");
8
+ const app_config_1 = require("@schematics/angular/utility/standalone/app_config");
9
+ const array_1 = require("../utils/array");
10
+ const projects_1 = require("../utils/projects");
11
+ const translations_1 = require("../utils/translations");
12
+ const transloco_1 = require("../utils/transloco");
13
+ const schema_1 = require("./schema");
14
+ const http_loader_gen_1 = require("./generators/http-loader.gen");
15
+ const translation_files_gen_1 = require("./generators/translation-files.gen");
16
+ const root_module_gen_1 = require("./generators/root-module.gen");
17
+ function updateEnvironmentBaseUrl(host, sourceRoot, defaultValue) {
18
+ const template = `$1{
19
+ baseUrl: '${defaultValue}',`;
20
+ (0, projects_1.setEnvironments)(host, sourceRoot, (env) => env.indexOf('baseUrl') === -1
21
+ ? env.replace(/(environment.*=*)\{/, template)
22
+ : env);
23
+ }
24
+ function resolveLoaderPath({ host, mainPath, isStandalone, modulePath }) {
25
+ let resolved = modulePath;
26
+ if (isStandalone) {
27
+ const bootstrapCall = (0, util_1.findBootstrapApplicationCall)(host, mainPath);
28
+ resolved =
29
+ (0, app_config_1.findAppConfig)(bootstrapCall, host, mainPath)?.filePath || mainPath;
30
+ resolved = (0, node_path_1.dirname)(resolved);
31
+ }
32
+ return resolved;
33
+ }
34
+ function default_1(options) {
35
+ return async (host, context) => {
36
+ const langs = options.langs.split(',').map((l) => l.trim());
37
+ const project = (0, projects_1.getProject)(host, options.project);
38
+ const sourceRoot = project.sourceRoot ?? 'src';
39
+ const isLib = project.projectType === 'library';
40
+ const assetsPath = `${sourceRoot}/${options.path}`;
41
+ const mainPath = await (0, util_1.getMainFilePath)(host, options.project);
42
+ const isStandalone = (0, ng_ast_utils_1.isStandaloneApp)(host, mainPath);
43
+ const modulePath = isStandalone
44
+ ? ''
45
+ : (0, node_path_1.dirname)((0, ng_ast_utils_1.getAppModulePath)(host, mainPath));
46
+ const actions = [];
47
+ if (options.loader === schema_1.Loaders.Http) {
48
+ const loaderPath = resolveLoaderPath({
49
+ host,
50
+ mainPath,
51
+ isStandalone,
52
+ modulePath,
53
+ });
54
+ if (isStandalone) {
55
+ actions.push((0, rules_1.addRootProvider)(options.project, ({ code, external }) => code `${external('provideHttpClient', '@angular/common/http')}()`));
56
+ }
57
+ else {
58
+ actions.push((0, rules_1.addRootImport)(options.project, ({ code, external }) => code `${external('HttpClientModule', '@angular/common/http')}`));
59
+ }
60
+ actions.push((0, schematics_1.mergeWith)((0, http_loader_gen_1.createLoaderFile)({
61
+ ssr: options.ssr,
62
+ loaderPath,
63
+ })));
64
+ }
65
+ const hasTranslationFiles = (0, translations_1.checkIfTranslationFilesExist)(assetsPath, langs, '.json', true);
66
+ if (!hasTranslationFiles) {
67
+ actions.push((0, schematics_1.mergeWith)((0, translation_files_gen_1.createTranslateFiles)(langs, translation_files_gen_1.jsonTranslationFileCreator, assetsPath)));
68
+ }
69
+ if (isStandalone) {
70
+ actions.push((0, rules_1.addRootProvider)(options.project, ({ code, external }) => {
71
+ external('isDevMode', '@angular/core');
72
+ external('TranslocoHttpLoader', './transloco-loader');
73
+ return code `${external('provideTransloco', '@jsverse/transloco')}({
74
+ config: {
75
+ availableLangs: [${(0, array_1.stringifyList)(langs)}],
76
+ defaultLang: '${langs[0]}',
77
+ // Remove this option if your application doesn't support changing language in runtime.
78
+ reRenderOnLangChange: true,
79
+ prodMode: !isDevMode(),
80
+ },
81
+ loader: TranslocoHttpLoader
82
+ })`;
83
+ }));
84
+ }
85
+ else {
86
+ actions.push((0, rules_1.addRootImport)(options.project, ({ code, external }) => code `${external('TranslocoRootModule', './transloco-root.module')}`), (0, schematics_1.mergeWith)((0, root_module_gen_1.createTranslocoModule)({
87
+ sourceRoot,
88
+ isLib,
89
+ ssr: options.ssr,
90
+ langs,
91
+ modulePath,
92
+ host,
93
+ })));
94
+ }
95
+ if (options.ssr) {
96
+ updateEnvironmentBaseUrl(host, sourceRoot, 'http://localhost:4200');
97
+ }
98
+ (0, transloco_1.createConfig)(host, langs, assetsPath);
99
+ return (0, schematics_1.chain)(actions)(host, context);
100
+ };
101
+ }
102
+ exports.default = default_1;
103
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/transloco-schematics/src/ng-add/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ export declare enum Loaders {
2
+ Http = "Http",
3
+ Webpack = "Webpack"
4
+ }
5
+ export declare enum TranslationFileTypes {
6
+ Typescript = "Typescript",
7
+ JSON = "JSON"
8
+ }
9
+ export interface SchemaOptions {
10
+ /**
11
+ * The languages of the project.
12
+ */
13
+ langs: string;
14
+ /**
15
+ * The translations loader
16
+ */
17
+ loader: Loaders;
18
+ /**
19
+ * The translation files type.
20
+ */
21
+ translateType: TranslationFileTypes;
22
+ /**
23
+ * The translation files folder.
24
+ */
25
+ path: string;
26
+ /**
27
+ * The root module name.
28
+ */
29
+ module: string;
30
+ /**
31
+ * The root project name.
32
+ */
33
+ project: string;
34
+ /**
35
+ * If the user is working with server side rendering.
36
+ */
37
+ ssr: boolean;
38
+ /**
39
+ * If the user is working with server side rendering.
40
+ */
41
+ translocoKeysManager: boolean;
42
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TranslationFileTypes = exports.Loaders = void 0;
4
+ var Loaders;
5
+ (function (Loaders) {
6
+ Loaders["Http"] = "Http";
7
+ Loaders["Webpack"] = "Webpack";
8
+ })(Loaders || (exports.Loaders = Loaders = {}));
9
+ var TranslationFileTypes;
10
+ (function (TranslationFileTypes) {
11
+ TranslationFileTypes["Typescript"] = "Typescript";
12
+ TranslationFileTypes["JSON"] = "JSON";
13
+ })(TranslationFileTypes || (exports.TranslationFileTypes = TranslationFileTypes = {}));
14
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../../libs/transloco-schematics/src/ng-add/schema.ts"],"names":[],"mappings":";;;AAAA,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,wBAAa,CAAA;IACb,8BAAmB,CAAA;AACrB,CAAC,EAHW,OAAO,uBAAP,OAAO,QAGlB;AAED,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,iDAAyB,CAAA;IACzB,qCAAa,CAAA;AACf,CAAC,EAHW,oBAAoB,oCAApB,oBAAoB,QAG/B"}
@@ -0,0 +1,53 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "transloco-ng-add",
4
+ "title": "Adds Transloco to a project",
5
+ "type": "object",
6
+ "properties": {
7
+ "langs": {
8
+ "description": "The languages of the project.",
9
+ "x-prompt": "\uD83C\uDF0D Which languages do you need?",
10
+ "type": "string",
11
+ "default": "en, es",
12
+ "alias": "la"
13
+ },
14
+ "ssr": {
15
+ "description": "If the user is working with server side rendering.",
16
+ "x-prompt": "\uD83D\uDE80 Are you working with server side rendering?",
17
+ "type": "boolean",
18
+ "default": false
19
+ },
20
+ "loader": {
21
+ "description": "The loader strategy for the translate files.",
22
+ "type": "string",
23
+ "default": "Http",
24
+ "enum": ["Http", "Webpack"],
25
+ "alias": "lo"
26
+ },
27
+ "translateType": {
28
+ "description": "The translation files type.",
29
+ "type": "string",
30
+ "default": "JSON",
31
+ "enum": ["JSON", "Typescript"],
32
+ "alias": "t"
33
+ },
34
+ "path": {
35
+ "type": "string",
36
+ "default": "assets/i18n/",
37
+ "alias": "p"
38
+ },
39
+ "project": {
40
+ "description": "The project name.",
41
+ "type": "string",
42
+ "$default": {
43
+ "$source": "projectName"
44
+ }
45
+ },
46
+ "module": {
47
+ "description": "The root module name.",
48
+ "type": "string",
49
+ "default": "app"
50
+ }
51
+ },
52
+ "required": []
53
+ }
@@ -0,0 +1,3 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ import { SchemaOptions } from './schema';
3
+ export default function (options: SchemaOptions): Rule;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const process_1 = require("process");
4
+ const ng_migrate_1 = require("./ng-migrate");
5
+ function default_1(options) {
6
+ return () => {
7
+ const langs = options.langs.split(',').map((l) => l.trim());
8
+ (0, ng_migrate_1.run)({ input: options.path, output: options.translationFilesPath, langs });
9
+ // prevent "nothing to be done".
10
+ (0, process_1.exit)();
11
+ };
12
+ }
13
+ exports.default = default_1;
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/transloco-schematics/src/ng-migrate/index.ts"],"names":[],"mappings":";;AAAA,qCAA+B;AAI/B,6CAAmC;AAGnC,mBAAyB,OAAsB;IAC7C,OAAO,GAAG,EAAE;QACV,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,IAAA,gBAAG,EAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1E,gCAAgC;QAChC,IAAA,cAAI,GAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAPD,4BAOC"}
@@ -0,0 +1,5 @@
1
+ export declare function run({ input, output, langs }: {
2
+ input: any;
3
+ output: any;
4
+ langs: any;
5
+ }): void;