JSFiddle - React, Tailwind, and code Playground

by abernier

HTML

<script src="https://raw.github.com/maccman/spine/master/lib/spine.js"></script>
<script src="https://raw.github.com/maccman/spine/master/lib/relation.js"></script>

CoffeeScript

class Book extends Spine.Model
  @configure 'Book', 'title'
  @hasMany 'pages', 'Page'
window.Book = Book

class Page extends Spine.Model
  @configure 'Page', 'content'
  @belongsTo 'book', 'Book'
  @hasMany 'photos', 'Photo'
window.Page = Page

class Photo extends Spine.Model
  @configure 'Photo', 'url'
  @belongsTo 'page', 'Page'
window.Photo = Photo

#
# Test 1: feeding 1 level
#
  
console.log '### TEST 1 ###'
  
myBook = Book.create(
  id: 1
  title: 'My book'
  pages: ({
    id: i
    content: "Lorem ipsum #{i}"
  } for i in [1..10])
)
console.log myBook.pages().all()

#
# Test 2: feeding 2 levels
#
  
console.log '### TEST 2 ###'
  
myBook2 = Book.create(
  id: 1
  title: 'My book'
  pages: ({
    id: i
    content: "Lorem ipsum #{i}"
    photos: ({
      id: i * 10 + j
      url: "photos/#{j}"
    } for j in [1..10])
  } for i in [1..10])
)
console.log myBook2.pages().all()
console.log myBook2.pages().first().photos().all()