"use strict"; const Promise = require("bluebird"); const dlayer = require("."); const loaders = require("../../api/data-sources"); let schema = { hardware: { drives: function () { return [{ name: "foo", size: () => "4 GiB" }, { name: "bar", size: () => "2 TiB" }]; }, primaryNetworkInterface: function () { return { name: "baz", dataRate: () => "2.5 gbps" }; } } }; let api = dlayer({ schema: schema }); return Promise.try(() => { return api.query({ hardware: { drives: { name: true, size: true }, primaryNetworkInterface: { name: true } } }); }).then((result) => { console.dir(result, {depth: null}); }).catch((error) => { console.dir("Unhandled error", error); });