for

Prepare a template function to be used in query or watch.

static for<T, U>(
    specification: (target: T) => Specification<U>
): Preposition<T, U>;

Parameters

  • specification - A template function, which returns j.match

Returns

  • A preposition that can be passed to query or watch, or used to construct a preposition chain

Examples

Prepare a template function for query.

Blog Blog.Post Blog.Post Blog.Person Blog.Person Blog.Post->Blog.Person author
function postsByAuthor(a) {
    return j.match({
        type: 'Blog.Post',
        author: a
    });
}

const posts = await j.query(person, j.for(postsByAuthor));

Build a preposition chain.

Blog Blog.Post Blog.Post Blog.Person Blog.Person Blog.Post->Blog.Person author Blog.Post.Tags Blog.Post.Tags Blog.Post.Tags->Blog.Post post
function tagsForPost(p) {
    return j.match({
        type: 'Blog.Post.Tags',
        post: p
    });
}

const tags = await j.query(person, j
    .for(postsByAuthor)
    .then(tagsForPost));

Continue With

match