@lakeql/file-generator 0.1.10 → 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 +6 -5
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",
|
|
@@ -60,16 +60,17 @@
|
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|
|
62
62
|
"typescript": "6.0.3",
|
|
63
|
-
"@lakeql/helpers": "0.1.
|
|
64
|
-
"@lakeql/schema-generator": "0.4.
|
|
63
|
+
"@lakeql/helpers": "0.1.6",
|
|
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",
|
|
70
71
|
"vitest": "4.1.9",
|
|
71
|
-
"@lakeql/
|
|
72
|
-
"@lakeql/
|
|
72
|
+
"@lakeql/column-parser": "0.1.5",
|
|
73
|
+
"@lakeql/tsconfig": "0.1.0"
|
|
73
74
|
},
|
|
74
75
|
"scripts": {
|
|
75
76
|
"build": "tsdown",
|