34 lines
		
	
	
		
			654 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			654 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict'
 | |
| 
 | |
| let Container = require('./container')
 | |
| 
 | |
| let LazyResult, Processor
 | |
| 
 | |
| class Document extends Container {
 | |
|   constructor(defaults) {
 | |
|     // type needs to be passed to super, otherwise child roots won't be normalized correctly
 | |
|     super({ type: 'document', ...defaults })
 | |
| 
 | |
|     if (!this.nodes) {
 | |
|       this.nodes = []
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   toResult(opts = {}) {
 | |
|     let lazy = new LazyResult(new Processor(), this, opts)
 | |
| 
 | |
|     return lazy.stringify()
 | |
|   }
 | |
| }
 | |
| 
 | |
| Document.registerLazyResult = dependant => {
 | |
|   LazyResult = dependant
 | |
| }
 | |
| 
 | |
| Document.registerProcessor = dependant => {
 | |
|   Processor = dependant
 | |
| }
 | |
| 
 | |
| module.exports = Document
 | |
| Document.default = Document
 |