Skip to content

Commit 4ecd69d

Browse files
authored
breaking: drop legacy compatible features for Vue 2 (#354)
* breaking: drop legacy compatible features for Vue 2 * update lock file
1 parent 5165c1d commit 4ecd69d

File tree

16 files changed

+41
-1412
lines changed

16 files changed

+41
-1412
lines changed

packages/bundle-utils/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
"escodegen": "^2.1.0",
2525
"estree-walker": "^2.0.2",
2626
"jsonc-eslint-parser": "^2.3.0",
27-
"magic-string": "^0.30.0",
2827
"mlly": "^1.2.0",
2928
"source-map-js": "^1.0.1",
3029
"yaml-eslint-parser": "^1.2.2"

packages/bundle-utils/src/deps.ts

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,6 @@ export function checkInstallPackage(
3636
)
3737
}
3838

39-
// eslint-disable-next-line @typescript-eslint/ban-types
40-
export function checkVueI18nBridgeInstallPackage(debug: Function): boolean {
41-
let ret = false
42-
try {
43-
debug(`vue-i18n-bridge load path: ${_require.resolve('vue-i18n-bridge')}`)
44-
ret = true
45-
} catch (e) {
46-
debug(`cannot find 'vue-i18n-bridge'`, e)
47-
}
48-
return ret
49-
}
50-
5139
type VueI18nVersion = '8' | '9' | 'unknown' | ''
5240

5341
export function getVueI18nVersion(debug: Function): VueI18nVersion {

packages/bundle-utils/src/index.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
export { generate as generateJSON } from './json'
22
export { generate as generateYAML } from './yaml'
33
export { generate as generateJavaScript } from './js'
4-
export {
5-
getVueI18nVersion,
6-
checkInstallPackage,
7-
checkVueI18nBridgeInstallPackage
8-
} from './deps'
4+
export { getVueI18nVersion, checkInstallPackage } from './deps'
95
export type { CodeGenOptions, CodeGenResult, DevEnv } from './codegen'
106
export type { InstalledPackage } from './deps'

packages/bundle-utils/src/js.ts

Lines changed: 6 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,6 @@ export function generate(
2929
targetSource: string | Buffer,
3030
{
3131
type = 'plain',
32-
bridge = false,
33-
exportESM = false,
3432
filename = 'vue-i18n-loader.js',
3533
inSourceMap = undefined,
3634
locale = '',
@@ -44,8 +42,7 @@ export function generate(
4442
useClassComponent = false,
4543
allowDynamic = false,
4644
jit = false
47-
}: CodeGenOptions,
48-
injector?: () => string
45+
}: CodeGenOptions
4946
): CodeGenResult<Node> {
5047
const target = Buffer.isBuffer(targetSource)
5148
? targetSource.toString()
@@ -54,8 +51,6 @@ export function generate(
5451

5552
const options = {
5653
type,
57-
bridge,
58-
exportESM,
5954
source: value,
6055
sourceMap,
6156
locale,
@@ -109,7 +104,7 @@ export function generate(
109104
}
110105
}
111106

112-
const codeMaps = _generate(generator, ast, options, injector)
107+
const codeMaps = _generate(generator, ast, options)
113108

114109
const { code, map } = generator.context()
115110
// if (map) {
@@ -155,25 +150,15 @@ function scanAst(ast: Node) {
155150
function _generate(
156151
generator: CodeGenerator,
157152
node: Node,
158-
options: CodeGenOptions = {},
159-
injector?: () => string
153+
options: CodeGenOptions = {}
160154
): Map<string, RawSourceMap> {
161155
const propsCountStack = [] as number[]
162156
const pathStack = [] as string[]
163157
const itemsCountStack = [] as number[]
164158
const skipStack = [] as boolean[]
165159
const { forceStringify } = generator.context()
166160
const codeMaps = new Map<string, RawSourceMap>()
167-
const {
168-
type,
169-
bridge,
170-
exportESM,
171-
sourceMap,
172-
isGlobal,
173-
locale,
174-
useClassComponent,
175-
jit
176-
} = options
161+
const { type, sourceMap, isGlobal, locale, useClassComponent, jit } = options
177162

178163
const codegenFn: CodeGenFunction = jit
179164
? generateResourceAst
@@ -200,17 +185,11 @@ function _generate(
200185
type === 'sfc' ? (!isGlobal ? '__i18n' : '__i18nGlobal') : ''
201186
const localeName =
202187
type === 'sfc' ? (locale != null ? locale : `""`) : ''
203-
const exportSyntax = bridge
204-
? exportESM
205-
? `export default`
206-
: `module.exports =`
207-
: `export default`
188+
const exportSyntax = 'export default'
208189
generator.push(`${exportSyntax} function (Component) {`)
209190
generator.indent()
210191
// prettier-ignore
211-
const componentVariable = bridge
212-
? `Component.options || Component`
213-
: useClassComponent
192+
const componentVariable = useClassComponent
214193
? `Component.__o || Component.__vccOpts || Component`
215194
: `Component`
216195
// prettier-ignore
@@ -383,16 +362,6 @@ function _generate(
383362
if (type === 'sfc') {
384363
generator.deindent()
385364
generator.push(`})`)
386-
if (bridge && injector) {
387-
generator.newline()
388-
generator.pushline(
389-
`${componentNamespace}.__i18nBridge = ${componentNamespace}.__i18nBridge || []`
390-
)
391-
generator.pushline(
392-
`${componentNamespace}.__i18nBridge.push('${injector()}')`
393-
)
394-
generator.pushline(`delete ${componentNamespace}._Ctor`)
395-
}
396365
generator.deindent()
397366
generator.pushline(`}`)
398367
} else if (type === 'plain') {

packages/bundle-utils/src/json.ts

Lines changed: 7 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,14 @@ import {
77
traverseNodes,
88
getStaticJSONValue
99
} from 'jsonc-eslint-parser'
10-
import { isString, friendlyJSONstringify } from '@intlify/shared'
10+
import { isString } from '@intlify/shared'
1111
import {
1212
createCodeGenerator,
1313
generateMessageFunction,
1414
generateResourceAst,
1515
mapLinesColumns,
1616
excludeLocales
1717
} from './codegen'
18-
import { generateLegacyCode } from './legacy'
19-
import MagicString from 'magic-string'
2018

2119
import type { RawSourceMap } from 'source-map-js'
2220
import type { JSONProgram, JSONNode } from 'jsonc-eslint-parser/lib/parser/ast'
@@ -31,11 +29,7 @@ export function generate(
3129
targetSource: string | Buffer,
3230
{
3331
type = 'plain',
34-
legacy = false,
35-
vueVersion = 'v2.6',
36-
bridge = false,
3732
onlyLocales = [],
38-
exportESM = false,
3933
filename = 'vue-i18n-loader.json',
4034
inSourceMap = undefined,
4135
locale = '',
@@ -48,8 +42,7 @@ export function generate(
4842
escapeHtml = false,
4943
useClassComponent = false,
5044
jit = false
51-
}: CodeGenOptions,
52-
injector?: () => string
45+
}: CodeGenOptions
5346
): CodeGenResult<JSONProgram> {
5447
let value = Buffer.isBuffer(targetSource)
5548
? targetSource.toString()
@@ -60,8 +53,6 @@ export function generate(
6053

6154
const options = {
6255
type,
63-
bridge,
64-
exportESM,
6556
source: value,
6657
sourceMap,
6758
locale,
@@ -92,23 +83,7 @@ export function generate(
9283
ast = parseJSON(value, { filePath: filename })
9384
}
9485

95-
// for vue 2.x
96-
if (legacy && type === 'sfc') {
97-
const gen = () => friendlyJSONstringify(getStaticJSONValue(ast))
98-
const code = generateLegacyCode({ isGlobal, vueVersion }, gen)
99-
const s = new MagicString(code)
100-
return {
101-
ast,
102-
code: s.toString(),
103-
map: s.generateMap({
104-
file: filename,
105-
source: value,
106-
includeContent: true
107-
}) as unknown as RawSourceMap
108-
}
109-
}
110-
111-
const codeMaps = _generate(generator, ast, options, injector)
86+
const codeMaps = _generate(generator, ast, options)
11287

11388
const { code, map } = generator.context()
11489
// if (map) {
@@ -132,24 +107,14 @@ export function generate(
132107
function _generate(
133108
generator: CodeGenerator,
134109
node: JSONProgram,
135-
options: CodeGenOptions = {},
136-
injector?: () => string
110+
options: CodeGenOptions = {}
137111
): Map<string, RawSourceMap> {
138112
const propsCountStack = [] as number[]
139113
const pathStack = [] as string[]
140114
const itemsCountStack = [] as number[]
141115
const { forceStringify } = generator.context()
142116
const codeMaps = new Map<string, RawSourceMap>()
143-
const {
144-
type,
145-
bridge,
146-
exportESM,
147-
sourceMap,
148-
isGlobal,
149-
locale,
150-
useClassComponent,
151-
jit
152-
} = options
117+
const { type, sourceMap, isGlobal, locale, useClassComponent, jit } = options
153118

154119
const codegenFn: CodeGenFunction = jit
155120
? generateResourceAst
@@ -169,17 +134,11 @@ function _generate(
169134
type === 'sfc' ? (!isGlobal ? '__i18n' : '__i18nGlobal') : ''
170135
const localeName =
171136
type === 'sfc' ? (locale != null ? locale : `""`) : ''
172-
const exportSyntax = bridge
173-
? exportESM
174-
? `export default`
175-
: `module.exports =`
176-
: `export default`
137+
const exportSyntax = 'export default'
177138
generator.push(`${exportSyntax} function (Component) {`)
178139
generator.indent()
179140
// prettier-ignore
180-
const componentVariable = bridge
181-
? `Component.options || Component`
182-
: useClassComponent
141+
const componentVariable = useClassComponent
183142
? `Component.__o || Component.__vccOpts || Component`
184143
: `Component`
185144
// prettier-ignore
@@ -297,16 +256,6 @@ function _generate(
297256
if (type === 'sfc') {
298257
generator.deindent()
299258
generator.push(`})`)
300-
if (bridge && injector) {
301-
generator.newline()
302-
generator.pushline(
303-
`${componentNamespace}.__i18nBridge = ${componentNamespace}.__i18nBridge || []`
304-
)
305-
generator.pushline(
306-
`${componentNamespace}.__i18nBridge.push('${injector()}')`
307-
)
308-
generator.pushline(`delete ${componentNamespace}._Ctor`)
309-
}
310259
generator.deindent()
311260
generator.pushline(`}`)
312261
} else if (type === 'plain') {

packages/bundle-utils/src/legacy.ts

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)