@intlify/bundle-utils 5.2.0 → 5.3.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.
- package/lib/codegen.d.ts +1 -0
- package/lib/js.js +9 -6
- package/lib/json.d.ts +1 -1
- package/lib/json.js +30 -7
- package/lib/legacy.d.ts +2 -0
- package/lib/legacy.js +17 -0
- package/lib/yaml.d.ts +1 -1
- package/lib/yaml.js +30 -7
- package/package.json +2 -1
package/lib/codegen.d.ts
CHANGED
package/lib/js.js
CHANGED
|
@@ -113,12 +113,7 @@ function generateNode(generator, node, options, injector) {
|
|
|
113
113
|
const { forceStringify } = generator.context();
|
|
114
114
|
const codeMaps = new Map();
|
|
115
115
|
const { type, bridge, exportESM, sourceMap, isGlobal, locale, useClassComponent } = options;
|
|
116
|
-
|
|
117
|
-
const componentNamespace = bridge
|
|
118
|
-
? `Component.options`
|
|
119
|
-
: useClassComponent
|
|
120
|
-
? `Component.__o`
|
|
121
|
-
: `Component`;
|
|
116
|
+
const componentNamespace = '_Component';
|
|
122
117
|
(0, estree_walker_1.walk)(node, {
|
|
123
118
|
/**
|
|
124
119
|
* NOTE:
|
|
@@ -144,6 +139,14 @@ function generateNode(generator, node, options, injector) {
|
|
|
144
139
|
: `export default`;
|
|
145
140
|
generator.push(`${exportSyntax} function (Component) {`);
|
|
146
141
|
generator.indent();
|
|
142
|
+
// prettier-ignore
|
|
143
|
+
const componentVariable = bridge
|
|
144
|
+
? `Component.options || Component`
|
|
145
|
+
: useClassComponent
|
|
146
|
+
? `Component.__o || Component`
|
|
147
|
+
: `Component`;
|
|
148
|
+
// prettier-ignore
|
|
149
|
+
generator.pushline(`const ${componentNamespace} = ${componentVariable}`);
|
|
147
150
|
generator.pushline(`${componentNamespace}.${variableName} = ${componentNamespace}.${variableName} || []`);
|
|
148
151
|
generator.push(`${componentNamespace}.${variableName}.push({`);
|
|
149
152
|
generator.indent();
|
package/lib/json.d.ts
CHANGED
|
@@ -7,4 +7,4 @@ import type { CodeGenOptions, CodeGenResult } from './codegen';
|
|
|
7
7
|
/**
|
|
8
8
|
* @internal
|
|
9
9
|
*/
|
|
10
|
-
export declare function generate(targetSource: string | Buffer, { type, bridge, exportESM, filename, inSourceMap, locale, isGlobal, sourceMap, env, forceStringify, onError, useClassComponent }: CodeGenOptions, injector?: () => string): CodeGenResult<JSONProgram>;
|
|
10
|
+
export declare function generate(targetSource: string | Buffer, { type, legacy, bridge, exportESM, filename, inSourceMap, locale, isGlobal, sourceMap, env, forceStringify, onError, useClassComponent }: CodeGenOptions, injector?: () => string): CodeGenResult<JSONProgram>;
|
package/lib/json.js
CHANGED
|
@@ -2,15 +2,20 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Code generator for i18n json/json5 resource
|
|
4
4
|
*/
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
5
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
9
|
exports.generate = void 0;
|
|
7
10
|
const jsonc_eslint_parser_1 = require("jsonc-eslint-parser");
|
|
8
11
|
const shared_1 = require("@intlify/shared");
|
|
9
12
|
const codegen_1 = require("./codegen");
|
|
13
|
+
const legacy_1 = require("./legacy");
|
|
14
|
+
const magic_string_1 = __importDefault(require("magic-string"));
|
|
10
15
|
/**
|
|
11
16
|
* @internal
|
|
12
17
|
*/
|
|
13
|
-
function generate(targetSource, { type = 'plain', bridge = false, exportESM = false, filename = 'vue-i18n-loader.json', inSourceMap = undefined, locale = '', isGlobal = false, sourceMap = false, env = 'development', forceStringify = false, onError = undefined, useClassComponent = false }, injector) {
|
|
18
|
+
function generate(targetSource, { type = 'plain', legacy = false, bridge = false, exportESM = false, filename = 'vue-i18n-loader.json', inSourceMap = undefined, locale = '', isGlobal = false, sourceMap = false, env = 'development', forceStringify = false, onError = undefined, useClassComponent = false }, injector) {
|
|
14
19
|
const target = Buffer.isBuffer(targetSource)
|
|
15
20
|
? targetSource.toString()
|
|
16
21
|
: targetSource;
|
|
@@ -35,6 +40,21 @@ function generate(targetSource, { type = 'plain', bridge = false, exportESM = fa
|
|
|
35
40
|
};
|
|
36
41
|
const generator = (0, codegen_1.createCodeGenerator)(options);
|
|
37
42
|
const ast = (0, jsonc_eslint_parser_1.parseJSON)(value, { filePath: filename });
|
|
43
|
+
// for vue 2.x
|
|
44
|
+
if (legacy && type === 'sfc') {
|
|
45
|
+
const gen = () => (0, shared_1.friendlyJSONstringify)((0, jsonc_eslint_parser_1.getStaticJSONValue)(ast));
|
|
46
|
+
const code = (0, legacy_1.generateLegacyCode)(options, gen);
|
|
47
|
+
const s = new magic_string_1.default(code);
|
|
48
|
+
return {
|
|
49
|
+
ast,
|
|
50
|
+
code: s.toString(),
|
|
51
|
+
map: s.generateMap({
|
|
52
|
+
file: filename,
|
|
53
|
+
source: value,
|
|
54
|
+
includeContent: true
|
|
55
|
+
})
|
|
56
|
+
};
|
|
57
|
+
}
|
|
38
58
|
const codeMaps = generateNode(generator, ast, options, injector);
|
|
39
59
|
const { code, map } = generator.context();
|
|
40
60
|
// if (map) {
|
|
@@ -61,12 +81,7 @@ function generateNode(generator, node, options, injector) {
|
|
|
61
81
|
const { forceStringify } = generator.context();
|
|
62
82
|
const codeMaps = new Map();
|
|
63
83
|
const { type, bridge, exportESM, sourceMap, isGlobal, locale, useClassComponent } = options;
|
|
64
|
-
|
|
65
|
-
const componentNamespace = bridge
|
|
66
|
-
? `Component.options`
|
|
67
|
-
: useClassComponent
|
|
68
|
-
? `Component.__o`
|
|
69
|
-
: `Component`;
|
|
84
|
+
const componentNamespace = '_Component';
|
|
70
85
|
(0, jsonc_eslint_parser_1.traverseNodes)(node, {
|
|
71
86
|
enterNode(node, parent) {
|
|
72
87
|
switch (node.type) {
|
|
@@ -85,6 +100,14 @@ function generateNode(generator, node, options, injector) {
|
|
|
85
100
|
: `export default`;
|
|
86
101
|
generator.push(`${exportSyntax} function (Component) {`);
|
|
87
102
|
generator.indent();
|
|
103
|
+
// prettier-ignore
|
|
104
|
+
const componentVariable = bridge
|
|
105
|
+
? `Component.options || Component`
|
|
106
|
+
: useClassComponent
|
|
107
|
+
? `Component.__o || Component`
|
|
108
|
+
: `Component`;
|
|
109
|
+
// prettier-ignore
|
|
110
|
+
generator.pushline(`const ${componentNamespace} = ${componentVariable}`);
|
|
88
111
|
generator.pushline(`${componentNamespace}.${variableName} = ${componentNamespace}.${variableName} || []`);
|
|
89
112
|
generator.push(`${componentNamespace}.${variableName}.push({`);
|
|
90
113
|
generator.indent();
|
package/lib/legacy.d.ts
ADDED
package/lib/legacy.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateLegacyCode = void 0;
|
|
4
|
+
const shared_1 = require("@intlify/shared");
|
|
5
|
+
function generateLegacyCode({ isGlobal }, generator) {
|
|
6
|
+
// prettier-ignore
|
|
7
|
+
const componentNamespace = `Component.options`;
|
|
8
|
+
const variableName = !isGlobal ? '__i18n' : '__i18nGlobal';
|
|
9
|
+
const exportSyntax = 'export default';
|
|
10
|
+
const code = `${exportSyntax} function (Component) {
|
|
11
|
+
${componentNamespace}.${variableName} = ${componentNamespace}.${variableName} || []
|
|
12
|
+
${componentNamespace}.${variableName}.push(${(0, shared_1.friendlyJSONstringify)(generator())})
|
|
13
|
+
delete ${componentNamespace}._Ctor
|
|
14
|
+
}`;
|
|
15
|
+
return code;
|
|
16
|
+
}
|
|
17
|
+
exports.generateLegacyCode = generateLegacyCode;
|
package/lib/yaml.d.ts
CHANGED
|
@@ -7,4 +7,4 @@ import type { CodeGenOptions, CodeGenResult } from './codegen';
|
|
|
7
7
|
/**
|
|
8
8
|
* @internal
|
|
9
9
|
*/
|
|
10
|
-
export declare function generate(targetSource: string | Buffer, { type, bridge, exportESM, useClassComponent, filename, inSourceMap, locale, isGlobal, sourceMap, env, forceStringify, onError }: CodeGenOptions, injector?: () => string): CodeGenResult<YAMLProgram>;
|
|
10
|
+
export declare function generate(targetSource: string | Buffer, { type, legacy, bridge, exportESM, useClassComponent, filename, inSourceMap, locale, isGlobal, sourceMap, env, forceStringify, onError }: CodeGenOptions, injector?: () => string): CodeGenResult<YAMLProgram>;
|
package/lib/yaml.js
CHANGED
|
@@ -2,15 +2,20 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Code generator for i18n yaml resource
|
|
4
4
|
*/
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
5
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
9
|
exports.generate = void 0;
|
|
7
10
|
const shared_1 = require("@intlify/shared");
|
|
8
11
|
const codegen_1 = require("./codegen");
|
|
9
12
|
const yaml_eslint_parser_1 = require("yaml-eslint-parser");
|
|
13
|
+
const legacy_1 = require("./legacy");
|
|
14
|
+
const magic_string_1 = __importDefault(require("magic-string"));
|
|
10
15
|
/**
|
|
11
16
|
* @internal
|
|
12
17
|
*/
|
|
13
|
-
function generate(targetSource, { type = 'plain', bridge = false, exportESM = false, useClassComponent = false, filename = 'vue-i18n-loader.yaml', inSourceMap = undefined, locale = '', isGlobal = false, sourceMap = false, env = 'development', forceStringify = false, onError = undefined }, injector) {
|
|
18
|
+
function generate(targetSource, { type = 'plain', legacy = false, bridge = false, exportESM = false, useClassComponent = false, filename = 'vue-i18n-loader.yaml', inSourceMap = undefined, locale = '', isGlobal = false, sourceMap = false, env = 'development', forceStringify = false, onError = undefined }, injector) {
|
|
14
19
|
const value = Buffer.isBuffer(targetSource)
|
|
15
20
|
? targetSource.toString()
|
|
16
21
|
: targetSource;
|
|
@@ -31,6 +36,21 @@ function generate(targetSource, { type = 'plain', bridge = false, exportESM = fa
|
|
|
31
36
|
};
|
|
32
37
|
const generator = (0, codegen_1.createCodeGenerator)(options);
|
|
33
38
|
const ast = (0, yaml_eslint_parser_1.parseYAML)(value, { filePath: filename });
|
|
39
|
+
// for vue 2.x
|
|
40
|
+
if (legacy && type === 'sfc') {
|
|
41
|
+
const gen = () => (0, shared_1.friendlyJSONstringify)((0, yaml_eslint_parser_1.getStaticYAMLValue)(ast));
|
|
42
|
+
const code = (0, legacy_1.generateLegacyCode)(options, gen);
|
|
43
|
+
const s = new magic_string_1.default(code);
|
|
44
|
+
return {
|
|
45
|
+
ast,
|
|
46
|
+
code: s.toString(),
|
|
47
|
+
map: s.generateMap({
|
|
48
|
+
file: filename,
|
|
49
|
+
source: value,
|
|
50
|
+
includeContent: true
|
|
51
|
+
})
|
|
52
|
+
};
|
|
53
|
+
}
|
|
34
54
|
const codeMaps = generateNode(generator, ast, options, injector);
|
|
35
55
|
const { code, map } = generator.context();
|
|
36
56
|
// prettier-ignore
|
|
@@ -51,12 +71,7 @@ function generateNode(generator, node, options, injector) {
|
|
|
51
71
|
const { forceStringify } = generator.context();
|
|
52
72
|
const codeMaps = new Map();
|
|
53
73
|
const { type, bridge, exportESM, sourceMap, isGlobal, locale, useClassComponent } = options;
|
|
54
|
-
|
|
55
|
-
const componentNamespace = bridge
|
|
56
|
-
? `Component.options`
|
|
57
|
-
: useClassComponent
|
|
58
|
-
? `Component.__o`
|
|
59
|
-
: `Component`;
|
|
74
|
+
const componentNamespace = '_Component';
|
|
60
75
|
(0, yaml_eslint_parser_1.traverseNodes)(node, {
|
|
61
76
|
enterNode(node, parent) {
|
|
62
77
|
switch (node.type) {
|
|
@@ -74,6 +89,14 @@ function generateNode(generator, node, options, injector) {
|
|
|
74
89
|
: `export default`;
|
|
75
90
|
generator.push(`${exportSyntax} function (Component) {`);
|
|
76
91
|
generator.indent();
|
|
92
|
+
// prettier-ignore
|
|
93
|
+
const componentVariable = bridge
|
|
94
|
+
? `Component.options || Component`
|
|
95
|
+
: useClassComponent
|
|
96
|
+
? `Component.__o || Component`
|
|
97
|
+
: `Component`;
|
|
98
|
+
// prettier-ignore
|
|
99
|
+
generator.pushline(`const ${componentNamespace} = ${componentVariable}`);
|
|
77
100
|
generator.pushline(`${componentNamespace}.${variableName} = ${componentNamespace}.${variableName} || []`);
|
|
78
101
|
generator.push(`${componentNamespace}.${variableName}.push({`);
|
|
79
102
|
generator.indent();
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intlify/bundle-utils",
|
|
3
3
|
"description": "Bundle utilities for Intlify project",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.3.1",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "kazuya kawaguchi",
|
|
7
7
|
"email": "kawakazu80@gmail.com"
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"acorn": "^8.8.2",
|
|
24
24
|
"estree-walker": "^2.0.2",
|
|
25
25
|
"jsonc-eslint-parser": "^1.0.1",
|
|
26
|
+
"magic-string": "^0.30.0",
|
|
26
27
|
"source-map": "0.6.1",
|
|
27
28
|
"yaml-eslint-parser": "^0.3.2"
|
|
28
29
|
},
|