@lakeql/file-generator 0.1.11 → 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/query-schema.mjs +1 -1
- package/package.json +2 -1
package/dist/query-schema.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{access as e,arrayLiteral as t,arrowFunction as n,asConst as r,bool as i,builderCall as a,builderInputRef as o,builderObjectRef as s,constStatement as c,expressionStatement as l,fieldsFunction as u,id as d,implement as f,importDefault as p,importNames as m,objectLiteral as h,parameter as g,property as _,shorthand as v,stringLiteral as y,tArg as b,tExpose as x,tField as S,typeRef as C}from"./ast-builders.mjs";import w from"typescript";function T({models:e,queryName:t,transformFields:n,filterFields:r,filterTypes:i,dateTimeFields:a}){let o=Object.values(e).find(e=>e.root);if(!o)throw Error(`generateQuerySchema requires exactly one root model`);return[...D({filterTypes:i,models:e}),...O({filterFields:r,rootModel:o}),...M({filterFields:r,rootModel:o}),...N({rootModel:o}),...P({models:e,rootModel:o}),...F({models:e}),...I({transformFields:n}),...L({dateTimeFields:a}),...te({queryName:t})]}function E(e){switch(e.type){case`String`:return`StringFieldComparison`;case`Int`:return`IntFieldComparison`;case`Float`:return`FloatFieldComparison`;case`Boolean`:return`BooleanFieldComparison`;case`Date`:return`DateFieldComparison`;case`DateTime`:return`DateTimeFieldComparison`;case`ID`:return`IDFieldComparison`;default:return e.type}}function D({models:e,filterTypes:t}){return[m(`@lakeql/api/types`,[`ConnectionInterface`,`TrinoArrayResponse`],{typeOnly:!0}),m(`json-schema`,[`JSONSchema7`],{typeOnly:!0}),m(`@lakeql/api/builder`,[`builder`,...t.map(e=>`${e}FieldComparison`),`PageInfo`,`Paging`,`SortDirection`]),m(`~/env`,[`env`]),m(`@lakeql/api/helpers`,[`calculatePageInfoData`,`handleErrorResponse`,`transformTrinoResponse`]),m(`@lakeql/query-builder`,[`SortInput`],{typeOnly:!0}),m(`@lakeql/query-builder`,[`formatQuery`,`generateQuery`,`getSelectFields`]),m(`@lakeql/trino-client`,[`TrinoClient`]),m(`./interface`,[...Object.values(e).map(e=>e.interfaceName),`TableDefinition`],{typeOnly:!0}),m(`./config`,[`hiveConfig`]),p(`./json-schema.json`,`jsonSchema`)]}function O({rootModel:e,filterFields:n}){return[c(`FilterInput`,f(o(`${e.modelName}FilterInput`),[_(`fields`,u([...n.map(e=>_(e.name,S([_(`type`,d(E(e)))]))),_(`and`,S([_(`type`,t([d(`FilterInput`)]))])),_(`or`,S([_(`type`,t([d(`FilterInput`)]))]))]))]))]}function k(e,t){return _(e,S([_(`type`,d(t)),_(`required`,i(!0))]))}function A(e,t,n=[]){return _(e,x(e,[_(`type`,t),...n]))}function j(e){return[_(`fields`,u(e))]}function M({rootModel:e,filterFields:n}){return[c(`SortFields`,a(`enumType`,[y(`${e.modelName}SortFields`),h([_(`values`,r(t(n.map(e=>y(e.name)),!0)))])]))]}function N({rootModel:e}){return[c(`SortingInput`,f(o(`${e.modelName}SortOrder`),j([k(`field`,`SortFields`),k(`direction`,`SortDirection`)])))]}function P({rootModel:e,models:n}){return[...Object.values(n).map(e=>c(e.modelName,s(e.modelName,[C(e.interfaceName)]))),c(`Connection`,s(`${e.modelName}Connection`,[C(`ConnectionInterface`,[C(e.interfaceName)])])),l(f(`Connection`,j([A(`totalCount`,y(`Int`)),A(`pageInfo`,d(`PageInfo`)),A(`nodes`,t([d(e.modelName)]),[_(`nullable`,i(!1))])])))]}function F({models:e}){return Object.values(e).toReversed().map(e=>{let t=Object.values(e.fields).map(e=>{let t=A(e.name,d(e.graphqlTplType),[_(`nullable`,i(!0))]);return(e.graphqlType===`DateTime`||e.graphqlType===`Date`)&&(w.addSyntheticLeadingComment(t.initializer,w.SyntaxKind.SingleLineCommentTrivia,` @ts-expect-error not sure why, but it doesn't get the type`,!0),w.addSyntheticLeadingComment(t.initializer,w.SyntaxKind.SingleLineCommentTrivia,` GH Issue: https://github.com/hayes/pothos/issues/1277`,!0)),t});return l(f(e.modelName,j(t)))})}function I({transformFields:e}){return[
|
|
1
|
+
import{access as e,arrayLiteral as t,arrowFunction as n,asConst as r,bool as i,builderCall as a,builderInputRef as o,builderObjectRef as s,constStatement as c,expressionStatement as l,fieldsFunction as u,id as d,implement as f,importDefault as p,importNames as m,objectLiteral as h,parameter as g,property as _,shorthand as v,stringLiteral as y,tArg as b,tExpose as x,tField as S,typeRef as C}from"./ast-builders.mjs";import w from"typescript";function T({models:e,queryName:t,transformFields:n,filterFields:r,filterTypes:i,dateTimeFields:a}){let o=Object.values(e).find(e=>e.root);if(!o)throw Error(`generateQuerySchema requires exactly one root model`);return[...D({filterTypes:i,models:e}),...O({filterFields:r,rootModel:o}),...M({filterFields:r,rootModel:o}),...N({rootModel:o}),...P({models:e,rootModel:o}),...F({models:e}),...I({transformFields:n}),...L({dateTimeFields:a}),...te({queryName:t})]}function E(e){switch(e.type){case`String`:return`StringFieldComparison`;case`Int`:return`IntFieldComparison`;case`Float`:return`FloatFieldComparison`;case`Boolean`:return`BooleanFieldComparison`;case`Date`:return`DateFieldComparison`;case`DateTime`:return`DateTimeFieldComparison`;case`ID`:return`IDFieldComparison`;default:return e.type}}function D({models:e,filterTypes:t}){return[m(`@lakeql/api/types`,[`ConnectionInterface`,`TrinoArrayResponse`],{typeOnly:!0}),m(`json-schema`,[`JSONSchema7`],{typeOnly:!0}),m(`@lakeql/api/builder`,[`builder`,...t.map(e=>`${e}FieldComparison`),`PageInfo`,`Paging`,`SortDirection`]),m(`~/env`,[`env`]),m(`@lakeql/api/helpers`,[`calculatePageInfoData`,`handleErrorResponse`,`transformTrinoResponse`]),m(`@lakeql/query-builder`,[`SortInput`],{typeOnly:!0}),m(`@lakeql/query-builder`,[`formatQuery`,`generateQuery`,`getSelectFields`]),m(`@lakeql/trino-client`,[`TrinoClient`]),m(`./interface`,[...Object.values(e).map(e=>e.interfaceName),`TableDefinition`],{typeOnly:!0}),m(`./config`,[`hiveConfig`]),p(`./json-schema.json`,`jsonSchema`)]}function O({rootModel:e,filterFields:n}){return[c(`FilterInput`,f(o(`${e.modelName}FilterInput`),[_(`fields`,u([...n.map(e=>_(e.name,S([_(`type`,d(E(e)))]))),_(`and`,S([_(`type`,t([d(`FilterInput`)]))])),_(`or`,S([_(`type`,t([d(`FilterInput`)]))]))]))]))]}function k(e,t){return _(e,S([_(`type`,d(t)),_(`required`,i(!0))]))}function A(e,t,n=[]){return _(e,x(e,[_(`type`,t),...n]))}function j(e){return[_(`fields`,u(e))]}function M({rootModel:e,filterFields:n}){return[c(`SortFields`,a(`enumType`,[y(`${e.modelName}SortFields`),h([_(`values`,r(t(n.map(e=>y(e.name)),!0)))])]))]}function N({rootModel:e}){return[c(`SortingInput`,f(o(`${e.modelName}SortOrder`),j([k(`field`,`SortFields`),k(`direction`,`SortDirection`)])))]}function P({rootModel:e,models:n}){return[...Object.values(n).map(e=>c(e.modelName,s(e.modelName,[C(e.interfaceName)]))),c(`Connection`,s(`${e.modelName}Connection`,[C(`ConnectionInterface`,[C(e.interfaceName)])])),l(f(`Connection`,j([A(`totalCount`,y(`Int`)),A(`pageInfo`,d(`PageInfo`)),A(`nodes`,t([d(e.modelName)]),[_(`nullable`,i(!1))])])))]}function F({models:e}){return Object.values(e).toReversed().map(e=>{let t=Object.values(e.fields).map(e=>{let t=A(e.name,d(e.graphqlTplType),[_(`nullable`,i(!0))]);return(e.graphqlType===`DateTime`||e.graphqlType===`Date`)&&(w.addSyntheticLeadingComment(t.initializer,w.SyntaxKind.SingleLineCommentTrivia,` @ts-expect-error not sure why, but it doesn't get the type`,!0),w.addSyntheticLeadingComment(t.initializer,w.SyntaxKind.SingleLineCommentTrivia,` GH Issue: https://github.com/hayes/pothos/issues/1277`,!0)),t});return l(f(e.modelName,j(t)))})}function I({transformFields:e}){let t=new Map;for(let n of e){let[e,r]=n;if(e===void 0||r===void 0)continue;let i=t.get(e);if(i!==void 0&&i!==r)throw Error(`Conflicting transform field mapping for "${e}": "${i}" vs "${r}".`);t.set(e,r)}return[w.factory.createVariableStatement(void 0,w.factory.createVariableDeclarationList([w.factory.createVariableDeclaration(w.factory.createIdentifier(`transformFields`),void 0,w.factory.createTypeReferenceNode(`Record`,[w.factory.createKeywordTypeNode(w.SyntaxKind.StringKeyword),w.factory.createKeywordTypeNode(w.SyntaxKind.StringKeyword)]),h([...t.entries()].map(([e,t])=>_(e,y(t)))))],w.NodeFlags.Const))]}function L({dateTimeFields:e}){return[w.factory.createVariableStatement(void 0,w.factory.createVariableDeclarationList([w.factory.createVariableDeclaration(w.factory.createIdentifier(`dateFields`),void 0,w.factory.createArrayTypeNode(w.factory.createKeywordTypeNode(w.SyntaxKind.StringKeyword)),t(e.map(e=>y(e))))],w.NodeFlags.Const))]}function R(e,t,n){return _(e,b([_(`type`,t),_(`required`,i(n))]))}function z(e){return w.factory.createVariableStatement(void 0,w.factory.createVariableDeclarationList(e,w.NodeFlags.Const))}function B(t,n){return w.factory.createBinaryExpression(w.factory.createPropertyAccessChain(e(`args`,`paging`),w.factory.createToken(w.SyntaxKind.QuestionDotToken),d(t)),w.factory.createToken(w.SyntaxKind.QuestionQuestionToken),w.factory.createNumericLiteral(n))}function V(e){return h([_(`totalCount`,e),_(`page`,B(`page`,`1`)),_(`perPage`,B(`perPage`,`100`))])}function H(e){return w.factory.createCallExpression(d(`calculatePageInfoData`),void 0,[V(e)])}function U(){return z([w.factory.createVariableDeclaration(w.factory.createObjectBindingPattern([w.factory.createBindingElement(void 0,void 0,d(`offset`)),w.factory.createBindingElement(void 0,void 0,d(`limit`))]),void 0,void 0,H(w.factory.createNumericLiteral(`0`)))])}function W(){return z([w.factory.createVariableDeclaration(d(`selectFields`),void 0,void 0,w.factory.createCallExpression(d(`getSelectFields`),[C(`TableDefinition`)],[d(`info`),i(!0)]))])}function G(){return z([w.factory.createVariableDeclaration(d(`query`),void 0,void 0,w.factory.createCallExpression(d(`generateQuery`),[C(`TableDefinition`)],[h([v(`selectFields`),_(`schema`,e(`hiveConfig`,`schema`)),_(`table`,e(`hiveConfig`,`tableName`)),v(`transformFields`),_(`catalog`,e(`hiveConfig`,`catalog`)),_(`userQuery`,w.factory.createBinaryExpression(e(`args`,`filter`),w.factory.createToken(w.SyntaxKind.QuestionQuestionToken),h([],!1))),v(`dateFields`),_(`paging`,h([v(`offset`),v(`limit`)])),_(`sorting`,w.factory.createAsExpression(e(`args`,`sorting`),w.factory.createArrayTypeNode(C(`SortInput`,[C(`TableDefinition`)]))))])]))])}function K(){return z([w.factory.createVariableDeclaration(d(`client`),void 0,void 0,w.factory.createNewExpression(d(`TrinoClient`),void 0,[h([_(`host`,e(`env`,`HIVE_HOST`)),_(`port`,e(`env`,`HIVE_PORT`)),_(`auth`,h([_(`type`,y(`basic`)),_(`username`,e(`env`,`HIVE_USERNAME`)),_(`password`,e(`env`,`HIVE_PASSWORD`))])),_(`catalog`,e(`env`,`HIVE_CATALOG`)),_(`source`,e(`env`,`HIVE_SOURCE`))])]))])}function q(){return z([w.factory.createVariableDeclaration(d(`records`),void 0,void 0,w.factory.createAwaitExpression(w.factory.createCallExpression(e(w.factory.createCallExpression(e(d(`client`),`query`),[C(`TrinoArrayResponse`,[C(`TableDefinition`)])],[h([_(`sql`,w.factory.createCallExpression(d(`formatQuery`),[C(`TableDefinition`)],[h([v(`query`)],!1)]))],!0)]),`catch`),void 0,[n([w.factory.createParameterDeclaration(void 0,void 0,d(`e`),void 0,w.factory.createKeywordTypeNode(w.SyntaxKind.UnknownKeyword))],w.factory.createBlock([w.addSyntheticLeadingComment(w.factory.createThrowStatement(w.factory.createCallExpression(d(`handleErrorResponse`),void 0,[h([_(`errorMessage`,d(`e`)),v(`context`),v(`info`)],!1)])),w.SyntaxKind.SingleLineCommentTrivia,` @ts-expect-error e is unknown - ignore it for now`,!0)],!0))])))])}function J(){return z([w.factory.createVariableDeclaration(w.factory.createObjectBindingPattern([w.factory.createBindingElement(void 0,void 0,d(`total_count`)),w.factory.createBindingElement(void 0,void 0,d(`data`))]),void 0,void 0,w.factory.createCallExpression(d(`transformTrinoResponse`),void 0,[h([_(`response`,d(`records`)),_(`selectFields`,w.factory.createAsExpression(d(`selectFields`),w.factory.createArrayTypeNode(w.factory.createKeywordTypeNode(w.SyntaxKind.StringKeyword)))),v(`dateFields`),v(`transformFields`),_(`jsonSchema`,w.factory.createAsExpression(d(`jsonSchema`),C(`JSONSchema7`)))])]))])}function Y(){return z([w.factory.createVariableDeclaration(w.factory.createObjectBindingPattern([w.factory.createBindingElement(void 0,void 0,d(`totalCount`)),w.factory.createBindingElement(w.factory.createToken(w.SyntaxKind.DotDotDotToken),void 0,d(`pageInfo`))]),void 0,void 0,H(d(`total_count`)))])}function X(){return w.factory.createReturnStatement(h([v(`totalCount`),v(`pageInfo`),_(`nodes`,d(`data`))]))}function Z(){return h([_(`catalog`,e(`hiveConfig`,`catalog`)),_(`schema`,e(`hiveConfig`,`schema`)),_(`tableName`,e(`hiveConfig`,`tableName`))])}function Q(){return h([_(`authorized`,i(!0)),_(`readPermission`,Z())])}function $(){return n([g(`_parent`),g(`args`),g(`context`),g(`info`)],w.factory.createBlock([U(),W(),G(),K(),q(),J(),Y(),X()],!0),{async:!0})}function ee(e){return _(e,S([_(`type`,d(`Connection`)),_(`args`,h([R(`filter`,d(`FilterInput`),!1),R(`paging`,d(`Paging`),!1),R(`sorting`,t([d(`SortingInput`)]),!0)])),_(`authScopes`,Q()),_(`resolve`,$())]))}function te({queryName:e}){return[a(`queryFields`,[u([ee(e)])])]}export{T as generateQuerySchema};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lakeql/file-generator",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.12",
|
|
4
4
|
"description": "Generates TypeScript source files from Trino table metadata",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ast",
|
|
@@ -64,6 +64,7 @@
|
|
|
64
64
|
"@lakeql/schema-generator": "0.4.5"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
|
+
"@types/json-schema": "7.0.15",
|
|
67
68
|
"@types/node": "24.13.2",
|
|
68
69
|
"lodash-es": "4.18.1",
|
|
69
70
|
"tsdown": "0.22.3",
|