Skip to content

Commit

Permalink
Merge branch 'main' into fix/template
Browse files Browse the repository at this point in the history
  • Loading branch information
luckyadam authored Sep 29, 2024
2 parents bc96cec + 4bb4d2b commit a7b08bc
Show file tree
Hide file tree
Showing 27 changed files with 7,011 additions and 6,728 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@
"ts-jest": "^29.1.2",
"tslib": "^2.6.2",
"ts-node": "^10.9.1",
"typescript": "^5.4.5",
"typescript": "~5.4.5",
"vitest": "^1.6.0"
},
"pnpm": {
Expand Down
5 changes: 5 additions & 0 deletions packages/shared/src/is.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,18 @@ export function isFunction (o: unknown): o is (...args: any[]) => any {
}

export function isNumber (o: unknown): o is number {
if (Number.isFinite) return Number.isFinite(o)
return typeof o === 'number'
}

export function isBooleanStringLiteral (o: unknown): o is string {
return o === 'true' || o === 'false'
}

export function isObjectStringLiteral (o: unknown): o is string {
return o === '{}'
}

export const isArray = Array.isArray

export const isWebPlatform = () => process.env.TARO_ENV === 'h5' || process.env.TARO_PLATFORM === 'web'
33 changes: 22 additions & 11 deletions packages/shared/src/template.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import {
singleQuote,
voidElements
} from './components'
import { isBooleanStringLiteral, isFunction, isNumber, isString } from './is'
import { isBooleanStringLiteral, isFunction, isNumber, isObjectStringLiteral, isString } from './is'
import { Shortcuts } from './shortcuts'
import { capitalize, getComponentsAlias, hasOwn, indent, toCamelCase, toDashed, toKebabCase } from './utils'

Expand Down Expand Up @@ -134,17 +134,15 @@ export class BaseTemplate {

for (let prop in component) {
if (hasOwn(component, prop)) {
const propInCamelCase = toCamelCase(prop)
const propAlias = componentAlias[propInCamelCase] || propInCamelCase
let propValue = component[prop]

if (prop.startsWith('bind') || propValue === 'eh') {
propValue = 'eh'
} else if (propValue === '') {
const propInCamelCase = toCamelCase(prop)
const propAlias = componentAlias[propInCamelCase] || propInCamelCase
propValue = `i.${propAlias}`
} else if (isBooleanStringLiteral(propValue) || isNumber(+propValue)) {
const propInCamelCase = toCamelCase(prop)
const propAlias = componentAlias[propInCamelCase] || propInCamelCase

// cursor 默认取最后输入框最后一位 fix #13809
if (prop === 'cursor') {
propValue = `i.${componentAlias.value}?i.${componentAlias.value}.length:-1`
Expand All @@ -153,9 +151,11 @@ export class BaseTemplate {
propValue = this.supportXS
? `xs.b(i.${propAlias},${propValue})`
: `i.${propAlias}===undefined?${propValue}:i.${propAlias}`
} else if (isObjectStringLiteral(propValue)) {
propValue = this.supportXS
? `xs.d(i.${propAlias})`
: `i.${propAlias}===undefined?${propValue}:i.${propAlias}`
} else {
const propInCamelCase = toCamelCase(prop)
const propAlias = componentAlias[propInCamelCase] || propInCamelCase
propValue = `i.${propAlias}||${propValue || singleQuote('')}`
}

Expand Down Expand Up @@ -267,9 +267,17 @@ export class BaseTemplate {

const patchValue = patcher[attr]
if (isBooleanStringLiteral(patchValue) || isNumber(patchValue) || isString(patchValue)) {
const propValue = this.supportXS
? `xs.b(i.${toCamelCase(attr)},${patchValue})`
: `i.${toCamelCase(attr)}===undefined?${patchValue}:i.${toCamelCase(attr)}`
let propValue = ''

if (this.supportXS) {
if (isObjectStringLiteral(patchValue)) {
propValue = `xs.d(i.${toCamelCase(attr)})`
}
propValue = `xs.b(i.${toCamelCase(attr)},${patchValue})`
} else {
propValue = `i.${toCamelCase(attr)}===undefined?${patchValue}:i.${toCamelCase(attr)}`
}

return str + ` ${attr}="{{${propValue}}}"`
}
return str + ` ${attr}="{{i.${toCamelCase(attr)}}}"`
Expand Down Expand Up @@ -537,6 +545,9 @@ ${this.buildXsTemplate()}
return a === undefined ? b : a
},
c: ${this.buildXSTepFocus(Shortcuts.NodeName)},
d: function (a) {
return a === undefined ? {} : a
},
e: function (n) {
return 'tmpl_' + n + '_${Shortcuts.Container}'
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,18 +36,18 @@ class App extends React.Component {
return this.props.children;
}
}
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
this.props.children
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
this.props
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
React.Component
INFO [taro-cli-convertor] parseAst - 解析CallExpression
withWeapp(cacheOptions.getOptionsFromCache(), true)
INFO [taro-cli-convertor] parseAst - 解析CallExpression
cacheOptions.getOptionsFromCache()
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
cacheOptions.getOptionsFromCache
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
React.Component
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
this.props.children
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
this.props
INFO [taro-cli-convertor] parseAst - 解析ExportDefaultDeclaration
export default App;
INFO [taro-cli-convertor] parseAst - 解析StringLiteral
Expand All @@ -70,6 +70,10 @@ INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
require("@tarojs/with-weapp")
INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
cacheOptions.setOptionsToCache({})
INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
withWeapp(cacheOptions.getOptionsFromCache(), true)
INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
cacheOptions.getOptionsFromCache()
INFO [taro-cli-convertor] convertToOptional - 解析ClassBody
{
render() {
Expand All @@ -88,10 +92,6 @@ INFO [taro-cli-convertor] convertToOptional - 解析MemberExpression
return this.props.children;
}
}
INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
withWeapp(cacheOptions.getOptionsFromCache(), true)
INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
cacheOptions.getOptionsFromCache()
INFO [taro-cli-convertor] parseAst - 解析VariableDeclaration
const {
cacheOptions
Expand Down Expand Up @@ -154,20 +154,20 @@ class _C extends React.Component {
return <View><Text>{motto}</Text></View>;
}
}
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
this.data
INFO [taro-cli-convertor] parseAst - 解析JSXElement
<View><Text>{motto}</Text></View>
INFO [taro-cli-convertor] parseAst - 解析JSXElement
<Text>{motto}</Text>
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
React.Component
INFO [taro-cli-convertor] parseAst - 解析CallExpression
withWeapp(cacheOptions.getOptionsFromCache())
INFO [taro-cli-convertor] parseAst - 解析CallExpression
cacheOptions.getOptionsFromCache()
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
cacheOptions.getOptionsFromCache
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
React.Component
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
this.data
INFO [taro-cli-convertor] parseAst - 解析JSXElement
<View><Text>{motto}</Text></View>
INFO [taro-cli-convertor] parseAst - 解析JSXElement
<Text>{motto}</Text>
INFO [taro-cli-convertor] parseAst - 解析ExportDefaultDeclaration
export default _C;
INFO [taro-cli-convertor] parseAst - 解析StringLiteral
Expand Down Expand Up @@ -205,6 +205,10 @@ data: {
}
INFO [taro-cli-convertor] convertToOptional - 解析ObjectProperty
motto: 'Hello World'
INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
withWeapp(cacheOptions.getOptionsFromCache())
INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
cacheOptions.getOptionsFromCache()
INFO [taro-cli-convertor] convertToOptional - 解析ClassBody
{
render() {
Expand All @@ -225,10 +229,6 @@ INFO [taro-cli-convertor] convertToOptional - 解析MemberExpression
}
INFO [taro-cli-convertor] convertToOptional - 解析ObjectProperty
motto
INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
withWeapp(cacheOptions.getOptionsFromCache())
INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
cacheOptions.getOptionsFromCache()
INFO [taro-cli-convertor] parseAst - 解析VariableDeclaration
const {
cacheOptions
Expand Down Expand Up @@ -284,18 +284,18 @@ class App extends React.Component {
return this.props.children;
}
}
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
this.props.children
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
this.props
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
React.Component
INFO [taro-cli-convertor] parseAst - 解析CallExpression
withWeapp(cacheOptions.getOptionsFromCache(), true)
INFO [taro-cli-convertor] parseAst - 解析CallExpression
cacheOptions.getOptionsFromCache()
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
cacheOptions.getOptionsFromCache
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
React.Component
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
this.props.children
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
this.props
INFO [taro-cli-convertor] parseAst - 解析ExportDefaultDeclaration
export default App;
INFO [taro-cli-convertor] parseAst - 解析StringLiteral
Expand All @@ -318,6 +318,10 @@ INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
require("@tarojs/with-weapp")
INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
cacheOptions.setOptionsToCache({})
INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
withWeapp(cacheOptions.getOptionsFromCache(), true)
INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
cacheOptions.getOptionsFromCache()
INFO [taro-cli-convertor] convertToOptional - 解析ClassBody
{
render() {
Expand All @@ -336,10 +340,6 @@ INFO [taro-cli-convertor] convertToOptional - 解析MemberExpression
return this.props.children;
}
}
INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
withWeapp(cacheOptions.getOptionsFromCache(), true)
INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
cacheOptions.getOptionsFromCache()
INFO [taro-cli-convertor] parseAst - 解析VariableDeclaration
const {
cacheOptions
Expand Down Expand Up @@ -402,20 +402,20 @@ class _C extends React.Component {
return <View><Text>{motto}</Text></View>;
}
}
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
this.data
INFO [taro-cli-convertor] parseAst - 解析JSXElement
<View><Text>{motto}</Text></View>
INFO [taro-cli-convertor] parseAst - 解析JSXElement
<Text>{motto}</Text>
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
React.Component
INFO [taro-cli-convertor] parseAst - 解析CallExpression
withWeapp(cacheOptions.getOptionsFromCache())
INFO [taro-cli-convertor] parseAst - 解析CallExpression
cacheOptions.getOptionsFromCache()
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
cacheOptions.getOptionsFromCache
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
React.Component
INFO [taro-cli-convertor] parseAst - 解析MemberExpression
this.data
INFO [taro-cli-convertor] parseAst - 解析JSXElement
<View><Text>{motto}</Text></View>
INFO [taro-cli-convertor] parseAst - 解析JSXElement
<Text>{motto}</Text>
INFO [taro-cli-convertor] parseAst - 解析ExportDefaultDeclaration
export default _C;
INFO [taro-cli-convertor] parseAst - 解析StringLiteral
Expand Down Expand Up @@ -453,6 +453,10 @@ data: {
}
INFO [taro-cli-convertor] convertToOptional - 解析ObjectProperty
motto: 'Hello World'
INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
withWeapp(cacheOptions.getOptionsFromCache())
INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
cacheOptions.getOptionsFromCache()
INFO [taro-cli-convertor] convertToOptional - 解析ClassBody
{
render() {
Expand All @@ -473,10 +477,6 @@ INFO [taro-cli-convertor] convertToOptional - 解析MemberExpression
}
INFO [taro-cli-convertor] convertToOptional - 解析ObjectProperty
motto
INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
withWeapp(cacheOptions.getOptionsFromCache())
INFO [taro-cli-convertor] convertToOptional - 解析CallExpression
cacheOptions.getOptionsFromCache()
INFO [taro-cli-convertor] parseAst - 解析VariableDeclaration
const {
cacheOptions
Expand Down
2 changes: 1 addition & 1 deletion packages/taro-framework-solid/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
"webpack-chain": "^6.5.1",
"esbuild": "~0.19.5",
"solid-js": "^1.8.16",
"typescript": "^5.3.3",
"typescript": "~5.4.5",
"vite": "^4.2.0"
},
"peerDependencies": {
Expand Down
2 changes: 1 addition & 1 deletion packages/taro-h5/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
"react-test-renderer": "^18.2.0",
"rollup": "^3.29.4",
"rollup-plugin-node-externals": "^5.0.0",
"rollup-plugin-ts": "^3.0.2",
"rollup-plugin-ts": "^3.4.5",
"@rollup/plugin-node-resolve": "^15.2.3"
},
"peerDependencies": {
Expand Down
2 changes: 1 addition & 1 deletion packages/taro-platform-harmony/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
"rollup": "^3.29.4",
"rollup-plugin-copy": "workspace:*",
"rollup-plugin-node-externals": "^5.0.0",
"rollup-plugin-ts": "^3.0.2",
"rollup-plugin-ts": "^3.4.5",
"solid-js": "^1.8.16",
"tslib": "^2.4.0"
}
Expand Down
3 changes: 2 additions & 1 deletion packages/taro-platform-weapp/src/components.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ const _true = 'true'
const _false = 'false'
const _empty = ''
const _zero = '0'
const _object = '{}'

export const components = {
// ======== 调整属性 ========
Expand Down Expand Up @@ -39,7 +40,7 @@ export const components = {
'enable-traffic': _false,
'enable-poi': _true,
'enable-building': _true,
setting: '[]',
setting: _object,
bindLabelTap: _empty,
bindRegionChange: _empty,
bindPoiTap: _empty,
Expand Down
2 changes: 1 addition & 1 deletion packages/taro-runtime/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,6 @@
"@vue/runtime-core": "^3.4.23",
"lodash": "^4.17.21",
"react": "^18.2.0",
"rollup-plugin-ts": "^3.0.2"
"rollup-plugin-ts": "^3.4.5"
}
}
2 changes: 1 addition & 1 deletion packages/taro-transformer-wx/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
"eslint-plugin-taro": "^2.2.19",
"lodash": "^4.17.21",
"prettier": "^2.8.8",
"typescript": "^5.4.5"
"typescript": "~5.4.5"
},
"devDependencies": {
"@types/babel__core": "^7.20.5",
Expand Down
2 changes: 2 additions & 0 deletions packages/taro-webpack5-runner/src/webpack/WebpackModule.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,8 @@ export class WebpackModule {
implementation: require('sass'),
sassOptions: {
outputStyle: 'expanded',
// https://github.com/sass/dart-sass/blob/main/CHANGELOG.md#js-api
silenceDeprecations: ['legacy-js-api'],
importer (url, prev, done) {
// 让 sass 文件里的 @import 能解析小程序原生样式文体,如 @import "a.wxss";
const extname = path.extname(url)
Expand Down
Loading

0 comments on commit a7b08bc

Please sign in to comment.