You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.7 KiB
65 lines
2.7 KiB
"use strict"; |
|
Object.defineProperty(exports, "__esModule", { value: true }); |
|
exports.compile = exports.getBaseTransformPreset = void 0; |
|
const shared_1 = require("@vue/shared"); |
|
const compiler_core_1 = require("@vue/compiler-core"); |
|
const uni_shared_1 = require("@dcloudio/uni-shared"); |
|
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); |
|
require("./runtimeHelpers"); |
|
const codegen_1 = require("./codegen"); |
|
const transform_1 = require("./transform"); |
|
const vIf_1 = require("./transforms/vIf"); |
|
const vFor_1 = require("./transforms/vFor"); |
|
const vModel_1 = require("./transforms/vModel"); |
|
const vShow_1 = require("./transforms/vShow"); |
|
const vText_1 = require("./transforms/vText"); |
|
const transformInterpolation_1 = require("./transforms/transformInterpolation"); |
|
const transformText_1 = require("./transforms/transformText"); |
|
const vOn_1 = require("./transforms/vOn"); |
|
const vBind_1 = require("./transforms/vBind"); |
|
const transformSlotOutlet_1 = require("./transforms/transformSlotOutlet"); |
|
function getBaseTransformPreset(prefixIdentifiers) { |
|
return [ |
|
[ |
|
vIf_1.transformIf, |
|
vFor_1.transformFor, |
|
// order is important |
|
compiler_core_1.trackVForSlotScopes, |
|
compiler_core_1.transformExpression, |
|
transformSlotOutlet_1.transformSlotOutlet, |
|
compiler_core_1.transformElement, |
|
compiler_core_1.trackSlotScopes, |
|
transformText_1.transformText, |
|
uni_cli_shared_1.transformTapToClick, |
|
transformInterpolation_1.transformInterpolation, |
|
], |
|
{ |
|
on: vOn_1.transformOn, |
|
bind: vBind_1.transformBind, |
|
model: vModel_1.transformModel, |
|
show: vShow_1.transformShow, |
|
text: vText_1.transformVText, |
|
}, |
|
]; |
|
} |
|
exports.getBaseTransformPreset = getBaseTransformPreset; |
|
function compile(template, options) { |
|
const ast = (0, compiler_core_1.baseParse)(template, { |
|
isNativeTag(tag) { |
|
return ((0, uni_shared_1.isAppUVueNativeTag)(tag) || |
|
!!options.parseUTSComponent?.(tag, options.targetLanguage)); |
|
}, |
|
}); |
|
const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(options.prefixIdentifiers); |
|
(0, transform_1.transform)(ast, (0, shared_1.extend)({}, options, { |
|
prefixIdentifiers: options.prefixIdentifiers, |
|
nodeTransforms: [ |
|
...nodeTransforms, |
|
...(options.nodeTransforms || []), // user transforms |
|
], |
|
directiveTransforms: (0, shared_1.extend)({}, directiveTransforms, options.directiveTransforms || {} // user transforms |
|
), |
|
})); |
|
return (0, codegen_1.generate)(ast, options); |
|
} |
|
exports.compile = compile;
|
|
|