dinoql 是一个很不错的javascript objects 查询处理方案,基于graphql,当前版本有点问题
解决方法:
a: 使用猴子补丁
还需要使用node 运行在require("dinoql") 之前,添加以下代码:
window=global||window
b: 在浏览器端运行
可以用parcel、webpack、browserify、rollup 等处理
基本上看官方demo 都是通过模板传递参数如下:
const users = dinoql(data)`
requests {
users {
name
id
}
friends {
name
}
}
实际上参数传递也是一个函数调用,但是直接通过函数调用就有问题,如下
nction(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)
GraphQLError: Syntax Error: Expected Name, found }
at v (/Users/dalong/mylearning/dinoql-demo/node_modules/dinoql/dist/dinoql.min.js:1:33268)
at he (/Users/dalong/mylearning/dinoql-demo/node_modules/dinoql/dist/dinoql.min.js:1:52238)
解决方法,使用graphql-tag npm 包解决,实际上官方的webpack demo 也是使用此方法
const idQuery = gql `
query userids {
requests {
users {
id
}
}
}
`
const userids = dinoql(data)(idQuery)
console.log(userids)
https://www.npmjs.com/package/graphql-tag
https://github.com/victorvoid/dinoql/tree/master/examples/webpack
原文:https://www.cnblogs.com/rongfengliang/p/10844029.html