Skip to content

Instantly share code, notes, and snippets.

@roytouw7
Created August 20, 2020 13:56
Show Gist options
  • Save roytouw7/a28a2b1874ce48da1ff155dad420f9a7 to your computer and use it in GitHub Desktop.
Save roytouw7/a28a2b1874ce48da1ff155dad420f9a7 to your computer and use it in GitHub Desktop.
// Create TypeScript property with given name and value, primitive literal values only.
const createPrimitiveProperty = (name: string, value: any) => ts.createPropertyAssignment(name, ts.createLiteral(defined(value)));
// Turn metadata object into TypeScript ObjectLiteralExpression.
const createMetadataObjectLiteral = (metadata: Metadata): ts.ObjectLiteralExpression => {
return ts.createObjectLiteral([
createPrimitiveProperty('uuid', metadata.uuid),
createPrimitiveProperty('part', metadata.part),
createPrimitiveProperty('observable', metadata.observable),
createPrimitiveProperty('identifier', metadata.identifier),
createPrimitiveProperty('pipe', metadata.pipe),
createPrimitiveProperty('fn', metadata.fn),
createPrimitiveProperty('file', metadata.file),
createPrimitiveProperty('line', metadata.line),
createPrimitiveProperty('pos', metadata.pos)
]);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment