本文整理匯總了TypeScript中plywood.Expression.fromJSLoose方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript Expression.fromJSLoose方法的具體用法?TypeScript Expression.fromJSLoose怎麽用?TypeScript Expression.fromJSLoose使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類plywood.Expression
的用法示例。
在下文中一共展示了Expression.fromJSLoose方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: fromJS
static fromJS(parameters: DimensionJS): Dimension {
var value: DimensionValue = {
name: parameters.name,
title: parameters.title,
expression: parameters.expression ? Expression.fromJSLoose(parameters.expression) : null,
kind: parameters.kind || typeToKind((parameters as any).type),
url: parameters.url
};
var granularities = parameters.granularities;
if (granularities) {
if (!Array.isArray(granularities) || granularities.length !== 5) {
throw new Error(`must have list of 5 granularities in dimension '${parameters.name}'`);
}
var runningActionType: string = null;
value.granularities = granularities.map((g) => {
var granularity = granularityFromJS(g);
if (runningActionType === null) runningActionType = granularity.action;
if (granularity.action !== runningActionType) throw new Error("granularities must have the same type of actions");
return granularity;
});
}
return new Dimension(value);
}
示例2: fromJS
static fromJS(parameters: SplitCombineJS, context?: SplitCombineContext): SplitCombine {
if (typeof parameters === 'string') {
if (!context) throw new Error('must have context for string split');
var dimension = context.dimensions.find(d => d.name === parameters);
if (!dimension) throw new Error(`can not find dimension ${parameters}`);
return new SplitCombine({
expression: dimension.expression,
bucketAction: null,
sortAction: null,
limitAction: null
});
} else {
var value: SplitCombineValue = {
expression: Expression.fromJSLoose(parameters.expression),
bucketAction: null,
sortAction: null,
limitAction: null
};
if (parameters.bucketAction) value.bucketAction = Action.fromJS(parameters.bucketAction);
if (parameters.sortAction) value.sortAction = SortAction.fromJS(parameters.sortAction);
if (parameters.limitAction) value.limitAction = LimitAction.fromJS(parameters.limitAction);
return new SplitCombine(value);
}
}
示例3: fromJS
static fromJS(parameters: DimensionJS): Dimension {
return new Dimension({
name: parameters.name,
title: parameters.title,
expression: parameters.expression ? Expression.fromJSLoose(parameters.expression) : null,
kind: parameters.kind || typeToKind((parameters as any).type)
});
}
示例4: fromJS
static fromJS(parameters: DimensionJS): Dimension {
return new Dimension({
name: parameters.name,
title: parameters.title,
expression: parameters.expression ? Expression.fromJSLoose(parameters.expression) : null,
type: parameters.type || 'STRING',
sortOn: parameters.sortOn || null
});
}
示例5: createJSONServer
createJSONServer(port, (parameters: JSONParameters, res: any) => {
var { sql, expression } = parameters;
var resultPromise: Q.Promise<PlywoodValue>;
if (expression) {
try {
var ex = Expression.fromJSLoose(expression);
} catch (e) {
res.status(400).send({ error: e.message });
return;
}
resultPromise = executePlywood(ex, context, timezone);
} else {
try {
var sqlParse = Expression.parseSQL(sql);
} catch (e) {
res.status(400).send({ error: e.message });
return;
}
if (sqlParse.verb && sqlParse.verb !== 'SELECT') { // DESCRIBE + SHOW get re-written
res.status(400).send({ error: `Unsupported SQL verb ${sqlParse.verb} must be SELECT, DESCRIBE, SHOW, or a raw expression` });
return;
}
resultPromise = executeSQLParse(sqlParse, context, timezone);
}
resultPromise
.then((value: PlywoodValue) => {
if (Dataset.isDataset(value)) {
res.json({
result: value.toJS()
});
} else {
res.json({
result: value
});
}
})
.fail((e) => {
res.status(500).send({ error: e.message });
})
.done();
});