本文整理汇总了TypeScript中@glimmer/opcode-compiler.OpcodeBuilder类的典型用法代码示例。如果您正苦于以下问题:TypeScript OpcodeBuilder类的具体用法?TypeScript OpcodeBuilder怎么用?TypeScript OpcodeBuilder使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了OpcodeBuilder类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: blockLetMacro
export function blockLetMacro(params: WireFormat.Core.Params, _hash: WireFormat.Core.Hash, template: Option<CompilableBlock>, _inverse: Option<CompilableBlock>, builder: OpcodeBuilder<OwnedTemplateMeta>) {
if (template !== null) {
if (params !== null) {
builder.compileParams(params);
builder.invokeStaticBlock(template, params.length);
} else {
builder.invokeStatic(template);
}
}
return true;
}
示例2: inputMacro
export function inputMacro(_name: string, params: Option<WireFormat.Core.Params>, hash: Option<WireFormat.Core.Hash>, builder: OpcodeBuilder<OwnedTemplateMeta>) {
if (params === null) {
params = [];
}
if (hash !== null) {
let keys = hash[0];
let values = hash[1];
let typeIndex = keys.indexOf('type');
if (typeIndex > -1) {
let typeArg = values[typeIndex];
if (Array.isArray(typeArg)) {
// there is an AST plugin that converts this to an expression
// it really should just compile in the component call too.
let inputTypeExpr = params[0] as WireFormat.Expression;
builder.dynamicComponent(inputTypeExpr, params.slice(1), hash, true, null, null);
return true;
}
if (typeArg === 'checkbox') {
assert(
'{{input type=\'checkbox\'}} does not support setting `value=someBooleanValue`; ' +
'you must use `checked=someBooleanValue` instead.',
keys.indexOf('value') === -1,
);
wrapComponentClassAttribute(hash);
return buildSyntax('-checkbox', params, hash, builder);
}
}
}
return buildSyntax('-text-field', params, hash, builder);
}
示例3: outletMacro
export function outletMacro(
_name: string,
params: Option<WireFormat.Core.Params>,
hash: Option<WireFormat.Core.Hash>,
builder: OpcodeBuilder<OwnedTemplateMeta>
) {
let expr: WireFormat.Expressions.Helper = [WireFormat.Ops.Helper, '-outlet', params || [], hash];
builder.dynamicComponent(expr, null, [], null, false, null, null);
return true;
}
示例4: renderMacro
export function renderMacro(_name: string, params: Option<WireFormat.Core.Params>, hash: Option<WireFormat.Core.Hash>, builder: OpcodeBuilder<OwnedTemplateMeta>) {
if (ENV._ENABLE_RENDER_SUPPORT === true) {
// TODO needs makeComponentDefinition a helper that returns a curried definition
// TODO not sure all args are for definition or component
// likely the controller name should be a arg to create?
let expr: WireFormat.Expressions.Helper = [WireFormat.Ops.Helper, '-render', params || [], hash];
builder.dynamicComponent(expr, null, null, false, null, null);
return true;
}
return false;
}
示例5: mountMacro
export function mountMacro(
_name: string,
params: Option<WireFormat.Core.Params>,
hash: Option<WireFormat.Core.Hash>,
builder: OpcodeBuilder<OwnedTemplateMeta>
) {
assert(
'You can only pass a single positional argument to the {{mount}} helper, e.g. {{mount "chat-engine"}}.',
params!.length === 1
);
let expr: WireFormat.Expressions.Helper = [WireFormat.Ops.Helper, '-mount', params || [], hash];
builder.dynamicComponent(expr, null, [], null, false, null, null);
return true;
}