Working with Node.js
Cicero Node.js API
You can work with Accord Project templates directly in JavaScript using Node.js.
Documentation for the API can be found in Cicero API.
Working with Templates
Import the Template class
To import the Cicero class for templates:
const Template = require('@accordproject/cicero-core').Template;
Copy
Load a Template
To create a Template instance in memory call the fromDirectory, fromArchive or fromUrl methods:
const template = await Template.fromDirectory('./test/data/latedeliveryandpenalty');
Copy
These methods are asynchronous and return a Promise, so you should use await to wait for the promise to be resolved.
Instantiate a Template
Once a Template has been loaded, you can create a Clause based on the Template. You can either instantiate the Clause using source DSL text (by calling parse), or you can set an instance of the template model as JSON data (by calling setData):
// load the DSL text for the template
const testLatePenaltyInput = fs.readFileSync(path.resolve(__dirname, 'data/', 'sample.txt'), 'utf8');
const clause = new Clause(template);
clause.parse(testLatePenaltyInput);
// get the JSON object created from the parse
const data = clause.getData();
Copy
OR - create a contract and set the data from a JSON object.
const clause = new Clause(template);
clause.setData( {$class: 'org.acme.MyTemplateModel', 'foo': 42 } );
Copy
Executing a Template Instance
Once you have instantiated a smart clause of contract instance, you can execute it.
Import the Engine class
To execute a Clause you first need to create an instance of the Engine class:
const Engine = require('@accordproject/cicero-engine').Engine;
Copy
Send a request to the contract
You can then call execute on it, passing in the clause or contract instance, and the request:
const request = {
'$class': 'org.accordproject.latedeliveryandpenalty.LateDeliveryAndPenaltyRequest',
'forceMajeure': false,
'agreedDelivery': '2017-10-07T16:38:01.412Z',
'goodsValue': 200,
'transactionId': '402c8f50-9e61-433e-a7c1-afe61c06ef00',
'timestamp': '2017-11-12T17:38:01.412Z'
};
const state = {};
state.$class = 'org.accordproject.cicero.contract.AccordContractState';
state.stateId = 'org.accordproject.cicero.contract.AccordContractState#1';
const result = await engine.execute(clause, request, state);
Copy
← Template Generator
Cicero API
Modules
cicero-engine
Clause Engine
cicero-core
Cicero Core - defines the core data types for Cicero.
Classes
Clause
A Clause is executable business logic, linked to a natural language (legally enforceable) template. A Clause must be constructed with a template and then prior to execution the data for the clause must be set. Set the data for the clause (an instance of the template model) by either calling the setData method or by calling the parse method and passing in natural language text that conforms to the template grammar.
Contract
A Contract is executable business logic, linked to a natural language (legally enforceable) template. A Clause must be constructed with a template and then prior to execution the data for the clause must be set. Set the data for the clause (an instance of the template model) by either calling the setData method or by calling the parse method and passing in natural language text that conforms to the template grammar.
DateTimeFormatParser
Parses a date/time format string
Metadata
Defines the metadata for a Template, including the name, version, README markdown.
ParserManager
Generates and manages a Nearley parser for a template.
Template
A template for a legal clause or contract. A Template has a template model, request/response transaction types, a template grammar (natural language for the template) as well as Ergo code for the business logic of the template.
TemplateInstance
A TemplateInstance is an instance of a Clause or Contract template. It is executable business logic, linked to a natural language (legally enforceable) template. A TemplateInstance must be constructed with a template and then prior to execution the data for the clause must be set. Set the data for the TemplateInstance by either calling the setData method or by calling the parse method and passing in natural language text that conforms to the template grammar.
Functions
locationOfError(error) ⇒ object
Extract the file location from the parse error
cicero-engine
Clause Engine
cicero-engine
~Engine
new Engine()
.execute(clause, request, state, currentTime) ⇒ Promise
.invoke(clause, clauseName, params, state, currentTime) ⇒ Promise
.init(clause, currentTime) ⇒ Promise
.generateText(clause, [options], currentTime) ⇒ Promise
.getErgoEngine() ⇒ ErgoEngine
cicero-engine~Engine
Engine class. Stateless execution of clauses against a request object, returning a response to the caller.
Kind: inner class of cicero-engine
Access: public
~Engine
new Engine()
.execute(clause, request, state, currentTime) ⇒ Promise
.invoke(clause, clauseName, params, state, currentTime) ⇒ Promise
.init(clause, currentTime) ⇒ Promise
.generateText(clause, [options], currentTime) ⇒ Promise
.getErgoEngine() ⇒ ErgoEngine
new Engine()
Create the Engine.
engine.execute(clause, request, state, currentTime) ⇒ Promise
Send a request to a clause for execution
Kind: instance method of Engine
Returns: Promise - a promise that resolves to a result for the clause
Param Type Description
clause Clause the clause to execute
request object the request, a JS object that can be deserialized using the Composer serializer.
state object the contract state, a JS object that can be deserialized using the Composer serializer.
currentTime string the definition of 'now'
engine.invoke(clause, clauseName, params, state, currentTime) ⇒ Promise
Invoke a specific clause for execution
Kind: instance method of Engine
Returns: Promise - a promise that resolves to a result for the clause
Param Type Description
clause Clause the clause to execute
clauseName string the clause name
params object the clause parameters, a JS object whose fields that can be deserialized using the Composer serializer.
state object the contract state, a JS object that can be deserialized using the Composer serializer.
currentTime string the definition of 'now'
engine.init(clause, currentTime) ⇒ Promise
Initialize a clause
Kind: instance method of Engine
Returns: Promise - a promise that resolves to a result for the clause initialization
Param Type Description
clause Clause the clause to execute
currentTime string the definition of 'now'
engine.generateText(clause, [options], currentTime) ⇒ Promise
Generate Text for a clause
Kind: instance method of Engine
Returns: Promise - a promise that resolves to a result for the clause initialization
Param Type Description
clause Clause the clause to execute
[options] * text generation options. options.wrapVariables encloses variables and editable sections in '<variable ...' and '/>'
currentTime string the definition of 'now'
engine.getErgoEngine() ⇒ ErgoEngine
Provides access to the underlying Ergo engine.
Kind: instance method of Engine
Returns: ErgoEngine - the Ergo Engine for this Engine
cicero-core
Cicero Core - defines the core data types for Cicero.
Clause
A Clause is executable business logic, linked to a natural language (legally enforceable) template. A Clause must be constructed with a template and then prior to execution the data for the clause must be set. Set the data for the clause (an instance of the template model) by either calling the setData method or by calling the parse method and passing in natural language text that conforms to the template grammar.
Kind: global class
Access: public
Contract
A Contract is executable business logic, linked to a natural language (legally enforceable) template. A Clause must be constructed with a template and then prior to execution the data for the clause must be set. Set the data for the clause (an instance of the template model) by either calling the setData method or by calling the parse method and passing in natural language text that conforms to the template grammar.
Kind: global class
Access: public
DateTimeFormatParser
Parses a date/time format string
Kind: global class
Access: public
DateTimeFormatParser
.parseDateTimeFormatField(field) ⇒ string
.buildDateTimeFormatRule(formatString) ⇒ Object
DateTimeFormatParser.parseDateTimeFormatField(field) ⇒ string
Given a format field (like HH or D) this method returns a logical name for the field. Note the logical names have been picked to align with the moment constructor that takes an object.
Kind: static method of DateTimeFormatParser
Returns: string - the field designator
Param Type Description
field string the input format field
DateTimeFormatParser.buildDateTimeFormatRule(formatString) ⇒ Object
Converts a format string to a Nearley action
Kind: static method of DateTimeFormatParser
Returns: Object - the tokens and action and name to use for the Nearley rule
Param Type Description
formatString string the input format string
Metadata
Defines the metadata for a Template, including the name, version, README markdown.
Kind: global class
Access: public
Metadata
new Metadata(packageJson, readme, samples, request)
.getTemplateType() ⇒ number
.getRuntime() ⇒ string
.getErgoVersion() ⇒ string
.getCiceroVersion() ⇒ string
.satisfiesCiceroVersion(version) ⇒ string
.getSamples() ⇒ object
.getRequest() ⇒ object
.getSample(locale) ⇒ string
.getREADME() ⇒ String
.getPackageJson() ⇒ object
.getName() ⇒ string
.getDisplayName() ⇒ string
.getKeywords() ⇒ Array
.getDescription() ⇒ string
.getVersion() ⇒ string
.getIdentifier() ⇒ string
.createTargetMetadata(runtimeName) ⇒ object
new Metadata(packageJson, readme, samples, request)
Create the Metadata.
Note: Only to be called by framework code. Applications should retrieve instances from [Template](#Template)
Param Type Description
packageJson object the JS object for package.json (required)
readme String the README.md for the template (may be null)
samples object the sample markdown for the template in different locales,
request object the JS object for the sample request represented as an object whose keys are the locales and whose values are the sample markdown. For example: { default: 'default sample markdown', en: 'sample text in english', fr: 'exemple de texte français' } Locale keys (with the exception of default) conform to the IETF Language Tag specification (BCP 47). THe default key represents sample template text in a non-specified language, stored in a file called sample.md.
metadata.getTemplateType() ⇒ number
Returns either a 0 (for a contract template), or 1 (for a clause template)
Kind: instance method of Metadata
Returns: number - the template type
metadata.getRuntime() ⇒ string
Returns the name of the runtime target for this template, or null if this template has not been compiled for a specific runtime.
Kind: instance method of Metadata
Returns: string - the name of the runtime
metadata.getErgoVersion() ⇒ string
Returns the Ergo version that the Ergo code in this template is compatible with. This is null for templates that do not contain source Ergo code.
Kind: instance method of Metadata
Returns: string - the version of Ergo
metadata.getCiceroVersion() ⇒ string
Returns the version of Cicero that this template is compatible with. i.e. which version of the runtime was this template built for? The version string conforms to the semver definition
Kind: instance method of Metadata
Returns: string - the semantic version
metadata.satisfiesCiceroVersion(version) ⇒ string
Only returns true if the current cicero version satisfies the target version of this template
Kind: instance method of Metadata
Returns: string - the semantic version
Param Type Description
version string the cicero version to check against
metadata.getSamples() ⇒ object
Returns the samples for this template.
Kind: instance method of Metadata
Returns: object - the sample files for the template
metadata.getRequest() ⇒ object
Returns the sample request for this template.
Kind: instance method of Metadata
Returns: object - the sample request for the template
metadata.getSample(locale) ⇒ string
Returns the sample for this template in the given locale. This may be null. If no locale is specified returns the default sample if it has been specified.
Kind: instance method of Metadata
Returns: string - the sample file for the template in the given locale or null
Param Type Default Description
locale string null the IETF language code for the language.
metadata.getREADME() ⇒ String
Returns the README.md for this template. This may be null if the template does not have a README.md
Kind: instance method of Metadata
Returns: String - the README.md file for the template or null
metadata.getPackageJson() ⇒ object
Returns the package.json for this template.
Kind: instance method of Metadata
Returns: object - the Javascript object for package.json
metadata.getName() ⇒ string
Returns the name for this template.
Kind: instance method of Metadata
Returns: string - the name of the template
metadata.getDisplayName() ⇒ string
Returns the display name for this template.
Kind: instance method of Metadata
Returns: string - the display name of the template
metadata.getKeywords() ⇒ Array
Returns the name for this template.
Kind: instance method of Metadata
Returns: Array - the name of the template
metadata.getDescription() ⇒ string
Returns the description for this template.
Kind: instance method of Metadata
Returns: string - the description of the template
metadata.getVersion() ⇒ string
Returns the version for this template.
Kind: instance method of Metadata
Returns: string - the description of the template
metadata.getIdentifier() ⇒ string
Returns the identifier for this template, formed from name@version.
Kind: instance method of Metadata
Returns: string - the identifier of the template
metadata.createTargetMetadata(runtimeName) ⇒ object
Return new Metadata for a target runtime
Kind: instance method of Metadata
Returns: object - the new Metadata
Param Type Description
runtimeName string the target runtime name
ParserManager
Generates and manages a Nearley parser for a template.
Kind: global class
ParserManager
new ParserManager(template)
instance
.getParser() ⇒ object
.getTemplateAst() ⇒ object
.setGrammar(grammar)
.buildGrammar(templatizedGrammar)
.buildGrammarRules(ast, templateModel, prefix, parts)
.handleBinding(templateModel, parts, inputRule, element)
.cleanChunk(input) ⇒ string
.findFirstBinding(propertyName, elements) ⇒ int
.getGrammar() ⇒ String
.getTemplatizedGrammar() ⇒ String
.roundtripMarkdown(text) ⇒ string
static
.getProperty(templateModel, element) ⇒ *
._throwTemplateExceptionForElement(message, element)
.compileGrammar(sourceCode) ⇒ object
new ParserManager(template)
Create the ParserManager.
Param Type Description
template object the template instance
parserManager.getParser() ⇒ object
Gets a parser object for this template
Kind: instance method of ParserManager
Returns: object - the parser for this template
parserManager.getTemplateAst() ⇒ object
Gets the AST for the template
Kind: instance method of ParserManager
Returns: object - the AST for the template
parserManager.setGrammar(grammar)
Set the grammar for the template
Kind: instance method of ParserManager
Param Type Description
grammar String the grammar for the template
parserManager.buildGrammar(templatizedGrammar)
Build a grammar from a template
Kind: instance method of ParserManager
Param Type Description
templatizedGrammar String the annotated template using the markdown parser
parserManager.buildGrammarRules(ast, templateModel, prefix, parts)
Build grammar rules from a template
Kind: instance method of ParserManager
Param Type Description
ast object the AST from which to build the grammar
templateModel ClassDeclaration the type of the parent class for this AST
prefix String A unique prefix for the grammar rules
parts Object Result object to acculumate rules and required sub-grammars
parserManager.handleBinding(templateModel, parts, inputRule, element)
Utility method to generate a grammar rule for a variable binding
Kind: instance method of ParserManager
Param Type Description
templateModel ClassDeclaration the current template model
parts * the parts, where the rule will be added
inputRule * the rule we are processing in the AST
element * the current element in the AST
parserManager.cleanChunk(input) ⇒ string
Cleans a chunk of text to make it safe to include as a grammar rule. We need to remove linefeeds and escape any '"' characters.
Kind: instance method of ParserManager
Returns: string - cleaned text
Param Type Description
input string the input text from the template
parserManager.findFirstBinding(propertyName, elements) ⇒ int
Finds the first binding for the given property
Kind: instance method of ParserManager
Returns: int - the index of the element or -1
Param Type Description
propertyName string the name of the property
elements Array.<object> the result of parsing the template_txt.
parserManager.getGrammar() ⇒ String
Get the (compiled) grammar for the template
Kind: instance method of ParserManager
Returns: String - - the grammar for the template
parserManager.getTemplatizedGrammar() ⇒ String
Returns the templatized grammar
Kind: instance method of ParserManager
Returns: String - the contents of the templatized grammar
parserManager.roundtripMarkdown(text) ⇒ string
Round-trip markdown
Kind: instance method of ParserManager
Returns: string - the result of parsing and printing back the text
Param Type Description
text string the markdown text
ParserManager.getProperty(templateModel, element) ⇒ *
Throws an error if a template variable doesn't exist on the model.
Kind: static method of ParserManager
Returns: * - the property
Param Type Description
templateModel * the model for the template
element * the current element in the AST
ParserManager._throwTemplateExceptionForElement(message, element)
Throw a template exception for the element
Kind: static method of ParserManager
Throws:
TemplateException
Param Type Description
message string the error message
element object the AST
ParserManager.compileGrammar(sourceCode) ⇒ object
Compiles a Nearley grammar to its AST
Kind: static method of ParserManager
Returns: object - the AST for the grammar
Param Type Description
sourceCode string the source text for the grammar
Template
A template for a legal clause or contract. A Template has a template model, request/response transaction types, a template grammar (natural language for the template) as well as Ergo code for the business logic of the template.
Kind: global abstract class
Access: public
Template
new Template(packageJson, readme, samples, request, options)
instance
.validate()
.getTemplateModel() ⇒ ClassDeclaration
.getIdentifier() ⇒ String
.getMetadata() ⇒ Metadata
.getName() ⇒ String
.getDisplayName() ⇒ string
.getVersion() ⇒ String
.getDescription() ⇒ String
.getHash() ⇒ string
.toArchive([language], [options]) ⇒ Promise.<Buffer>
.getParserManager() ⇒ ParserManager
.getLogicManager() ⇒ LogicManager
.getIntrospector() ⇒ Introspector
.getFactory() ⇒ Factory
.getSerializer() ⇒ Serializer
.getRequestTypes() ⇒ Array
.getResponseTypes() ⇒ Array
.getEmitTypes() ⇒ Array
.getStateTypes() ⇒ Array
.hasLogic() ⇒ boolean
static
.fromDirectory(path, [options]) ⇒ Promise.<Template>
.fromArchive(buffer, [options]) ⇒ Promise.<Template>
.fromUrl(url, [options]) ⇒ Promise
.instanceOf(classDeclaration, fqt) ⇒ boolean
new Template(packageJson, readme, samples, request, options)
Create the Template. Note: Only to be called by framework code. Applications should retrieve instances from fromArchive or fromDirectory.
Param Type Description
packageJson object the JS object for package.json
readme String the readme in markdown for the template (optional)
samples object the sample text for the template in different locales
request object the JS object for the sample request
options Object e.g., { warnings: true }
template.validate()
Verifies that the template is well formed. Throws an exception with the details of any validation errors.
Kind: instance method of Template
template.getTemplateModel() ⇒ ClassDeclaration
Returns the template model for the template
Kind: instance method of Template
Returns: ClassDeclaration - the template model for the template
Throws:
Error if no template model is found, or multiple template models are found
template.getIdentifier() ⇒ String
Returns the identifier for this template
Kind: instance method of Template
Returns: String - the identifier of this template
template.getMetadata() ⇒ Metadata
Returns the metadata for this template
Kind: instance method of Template
Returns: Metadata - the metadata for this template
template.getName() ⇒ String
Returns the name for this template
Kind: instance method of Template
Returns: String - the name of this template
template.getDisplayName() ⇒ string
Returns the display name for this template.
Kind: instance method of Template
Returns: string - the display name of the template
template.getVersion() ⇒ String
Returns the version for this template
Kind: instance method of Template
Returns: String - the version of this template. Use semver module to parse.
template.getDescription() ⇒ String
Returns the description for this template
Kind: instance method of Template
Returns: String - the description of this template
template.getHash() ⇒ string
Gets a content based SHA-256 hash for this template. Hash is based on the metadata for the template plus the contents of all the models and all the script files.
Kind: instance method of Template
Returns: string - the SHA-256 hash in hex format
template.toArchive([language], [options]) ⇒ Promise.<Buffer>
Persists this template to a Cicero Template Archive (cta) file.
Kind: instance method of Template
Returns: Promise.<Buffer> - the zlib buffer
Param Type Description
[language] string target language for the archive (should be 'ergo')
[options] Object JSZip options
template.getParserManager() ⇒ ParserManager
Provides access to the parser manager for this template. The parser manager can convert template data to and from natural language text.
Kind: instance method of Template
Returns: ParserManager - the ParserManager for this template
template.getLogicManager() ⇒ LogicManager
Provides access to the template logic for this template. The template logic encapsulate the code necessary to execute the clause or contract.
Kind: instance method of Template
Returns: LogicManager - the LogicManager for this template
template.getIntrospector() ⇒ Introspector
Provides access to the Introspector for this template. The Introspector is used to reflect on the types defined within this template.
Kind: instance method of Template
Returns: Introspector - the Introspector for this template
template.getFactory() ⇒ Factory
Provides access to the Factory for this template. The Factory is used to create the types defined in this template.
Kind: instance method of Template
Returns: Factory - the Factory for this template
template.getSerializer() ⇒ Serializer
Provides access to the Serializer for this template. The Serializer is used to serialize instances of the types defined within this template.
Kind: instance method of Template
Returns: Serializer - the Serializer for this template
template.getRequestTypes() ⇒ Array
Provides a list of the input types that are accepted by this Template. Types use the fully-qualified form.
Kind: instance method of Template
Returns: Array - a list of the request types
template.getResponseTypes() ⇒ Array
Provides a list of the response types that are returned by this Template. Types use the fully-qualified form.
Kind: instance method of Template
Returns: Array - a list of the response types
template.getEmitTypes() ⇒ Array
Provides a list of the emit types that are emitted by this Template. Types use the fully-qualified form.
Kind: instance method of Template
Returns: Array - a list of the emit types
template.getStateTypes() ⇒ Array
Provides a list of the state types that are expected by this Template. Types use the fully-qualified form.
Kind: instance method of Template
Returns: Array - a list of the state types
template.hasLogic() ⇒ boolean
Returns true if the template has logic, i.e. has more than one script file.
Kind: instance method of Template
Returns: boolean - true if the template has logic
Template.fromDirectory(path, [options]) ⇒ Promise.<Template>
Builds a Template from the contents of a directory. The directory must include a package.json in the root (used to specify the name, version and description of the template).
Kind: static method of Template
Returns: Promise.<Template> - a Promise to the instantiated template
Param Type Default Description
path String to a local directory
[options] Object an optional set of options to configure the instance.
Template.fromArchive(buffer, [options]) ⇒ Promise.<Template>
Create a template from an archive.
Kind: static method of Template
Returns: Promise.<Template> - a Promise to the template
Param Type Default Description
buffer Buffer the buffer to a Cicero Template Archive (cta) file
[options] Object an optional set of options to configure the instance.
Template.fromUrl(url, [options]) ⇒ Promise
Create a template from an URL.
Kind: static method of Template
Returns: Promise - a Promise to the template
Param Type Default Description
url String the URL to a Cicero Template Archive (cta) file
[options] Object an optional set of options to configure the instance.
Template.instanceOf(classDeclaration, fqt) ⇒ boolean
Check to see if a ClassDeclaration is an instance of the specified fully qualified type name.
Kind: static method of Template
Returns: boolean - True if classDeclaration an instance of the specified fully qualified type name, false otherwise.
Internal:
Param Type Description
classDeclaration ClassDeclaration The class to test
fqt String The fully qualified type name.
TemplateInstance
A TemplateInstance is an instance of a Clause or Contract template. It is executable business logic, linked to a natural language (legally enforceable) template. A TemplateInstance must be constructed with a template and then prior to execution the data for the clause must be set. Set the data for the TemplateInstance by either calling the setData method or by calling the parse method and passing in natural language text that conforms to the template grammar.
Kind: global abstract class
Access: public
TemplateInstance
new TemplateInstance(template)
instance
.setData(data)
.getData() ⇒ object
.getEngine() ⇒ object
.getDataAsConcertoObject() ⇒ object
.parse(input, [currentTime], [fileName])
.generateText([options], currentTime) ⇒ string
.getIdentifier() ⇒ String
.getTemplate() ⇒ Template
.getLogicManager() ⇒ LogicManager
.toJSON() ⇒ object
static
.convertDateTimes(obj, utcOffset) ⇒ *
new TemplateInstance(template)
Create the Clause and link it to a Template.
Param Type Description
template Template the template for the clause
templateInstance.setData(data)
Set the data for the clause
Kind: instance method of TemplateInstance
Param Type Description
data object the data for the clause, must be an instance of the template model for the clause's template. This should be a plain JS object and will be deserialized and validated into the Concerto object before assignment.
templateInstance.getData() ⇒ object
Get the data for the clause. This is a plain JS object. To retrieve the Concerto object call getConcertoData().
Kind: instance method of TemplateInstance
Returns: object - - the data for the clause, or null if it has not been set
templateInstance.getEngine() ⇒ object
Get the current Ergo engine
Kind: instance method of TemplateInstance
Returns: object - - the data for the clause, or null if it has not been set
templateInstance.getDataAsConcertoObject() ⇒ object
Get the data for the clause. This is a Concerto object. To retrieve the plain JS object suitable for serialization call toJSON() and retrieve the data property.
Kind: instance method of TemplateInstance
Returns: object - - the data for the clause, or null if it has not been set
templateInstance.parse(input, [currentTime], [fileName])
Set the data for the clause by parsing natural language text.
Kind: instance method of TemplateInstance
Param Type Description
input string the text for the clause
[currentTime] string the definition of 'now' (optional)
[fileName] string the fileName for the text (optional)
templateInstance.generateText([options], currentTime) ⇒ string
Generates the natural language text for a contract or clause clause; combining the text from the template and the instance data.
Kind: instance method of TemplateInstance
Returns: string - the natural language text for the contract or clause; created by combining the structure of the template with the JSON data for the clause.
Param Type Description
[options] * text generation options. options.wrapVariables encloses variables and editable sections in '<variable ...' and '/>'
currentTime string the definition of 'now' (optional)
templateInstance.getIdentifier() ⇒ String
Returns the identifier for this clause. The identifier is the identifier of the template plus '-' plus a hash of the data for the clause (if set).
Kind: instance method of TemplateInstance
Returns: String - the identifier of this clause
templateInstance.getTemplate() ⇒ Template
Returns the template for this clause
Kind: instance method of TemplateInstance
Returns: Template - the template for this clause
templateInstance.getLogicManager() ⇒ LogicManager
Returns the template logic for this clause
Kind: instance method of TemplateInstance
Returns: LogicManager - the template for this clause
templateInstance.toJSON() ⇒ object
Returns a JSON representation of the clause
Kind: instance method of TemplateInstance
Returns: object - the JS object for serialization
TemplateInstance.convertDateTimes(obj, utcOffset) ⇒ *
Recursive function that converts all instances of ParsedDateTime to a Moment.
Kind: static method of TemplateInstance
Returns: * - the converted object
Param Type Description
obj * the input object
utcOffset number the default utcOffset
locationOfError(error) ⇒ object
Extract the file location from the parse error
Kind: global function
Returns: object - - the file location information
Param Type Description
error object the parse error
← Markdown Transform CLI