本文整理匯總了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;
}