You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					83 lines
				
				1.4 KiB
			
		
		
			
		
	
	
					83 lines
				
				1.4 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								const moment = require('moment')
							 | 
						||
| 
								 | 
							
								const fastJson = require('fast-json-stringify')
							 | 
						||
| 
								 | 
							
								const stringify = fastJson({
							 | 
						||
| 
								 | 
							
								  title: 'Example Schema',
							 | 
						||
| 
								 | 
							
								  type: 'object',
							 | 
						||
| 
								 | 
							
								  properties: {
							 | 
						||
| 
								 | 
							
								    firstName: {
							 | 
						||
| 
								 | 
							
								      type: 'string'
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    lastName: {
							 | 
						||
| 
								 | 
							
								      type: 'string'
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    age: {
							 | 
						||
| 
								 | 
							
								      description: 'Age in years',
							 | 
						||
| 
								 | 
							
								      type: 'integer'
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    now: {
							 | 
						||
| 
								 | 
							
								      type: 'string'
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    birthdate: {
							 | 
						||
| 
								 | 
							
								      type: ['string'],
							 | 
						||
| 
								 | 
							
								      format: 'date-time'
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    reg: {
							 | 
						||
| 
								 | 
							
								      type: 'string'
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    obj: {
							 | 
						||
| 
								 | 
							
								      type: 'object',
							 | 
						||
| 
								 | 
							
								      properties: {
							 | 
						||
| 
								 | 
							
								        bool: {
							 | 
						||
| 
								 | 
							
								          type: 'boolean'
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    arr: {
							 | 
						||
| 
								 | 
							
								      type: 'array',
							 | 
						||
| 
								 | 
							
								      items: {
							 | 
						||
| 
								 | 
							
								        type: 'object',
							 | 
						||
| 
								 | 
							
								        properties: {
							 | 
						||
| 
								 | 
							
								          str: {
							 | 
						||
| 
								 | 
							
								            type: 'string'
							 | 
						||
| 
								 | 
							
								          }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  required: ['now'],
							 | 
						||
| 
								 | 
							
								  patternProperties: {
							 | 
						||
| 
								 | 
							
								    '.*foo$': {
							 | 
						||
| 
								 | 
							
								      type: 'string'
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    test: {
							 | 
						||
| 
								 | 
							
								      type: 'number'
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    date: {
							 | 
						||
| 
								 | 
							
								      type: 'string',
							 | 
						||
| 
								 | 
							
								      format: 'date-time'
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  additionalProperties: {
							 | 
						||
| 
								 | 
							
								    type: 'string'
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								console.log(stringify({
							 | 
						||
| 
								 | 
							
								  firstName: 'Matteo',
							 | 
						||
| 
								 | 
							
								  lastName: 'Collina',
							 | 
						||
| 
								 | 
							
								  age: 32,
							 | 
						||
| 
								 | 
							
								  now: new Date(),
							 | 
						||
| 
								 | 
							
								  birthdate: moment(),
							 | 
						||
| 
								 | 
							
								  reg: /"([^"]|\\")*"/,
							 | 
						||
| 
								 | 
							
								  foo: 'hello',
							 | 
						||
| 
								 | 
							
								  numfoo: 42,
							 | 
						||
| 
								 | 
							
								  test: 42,
							 | 
						||
| 
								 | 
							
								  date: moment(),
							 | 
						||
| 
								 | 
							
								  strtest: '23',
							 | 
						||
| 
								 | 
							
								  arr: [{ str: 'stark' }, { str: 'lannister' }],
							 | 
						||
| 
								 | 
							
								  obj: { bool: true },
							 | 
						||
| 
								 | 
							
								  notmatch: 'valar morghulis',
							 | 
						||
| 
								 | 
							
								  notmatchobj: { a: true },
							 | 
						||
| 
								 | 
							
								  notmatchnum: 42
							 | 
						||
| 
								 | 
							
								}))
							 |