@kronor/dtv 5.0.0 → 5.1.0
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/assets/{index-BCuRRUo9.js → index-JkFoTAyM.js} +1 -1
- package/dist/cli/commands/init.js +106 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/typegen.js +26 -0
- package/dist/cli/commands/typegen.js.map +1 -0
- package/dist/cli/config/loadConfig.js +101 -0
- package/dist/cli/config/loadConfig.js.map +1 -0
- package/dist/cli/config/types.js +2 -0
- package/dist/cli/config/types.js.map +1 -0
- package/dist/cli/dtv.js +4 -504
- package/dist/cli/dtv.js.map +1 -1
- package/dist/cli/typegen/runTypegen.js +638 -0
- package/dist/cli/typegen/runTypegen.js.map +1 -0
- package/dist/cli/typegen/schemaToTs.js +5 -1
- package/dist/cli/typegen/schemaToTs.js.map +1 -1
- package/dist/index.es.js +5 -4
- package/dist/index.html +1 -1
- package/dist/types/cli/commands/init.d.ts +3 -0
- package/dist/types/cli/commands/init.d.ts.map +1 -0
- package/dist/types/cli/commands/typegen.d.ts +3 -0
- package/dist/types/cli/commands/typegen.d.ts.map +1 -0
- package/dist/types/cli/config/loadConfig.d.ts +3 -0
- package/dist/types/cli/config/loadConfig.d.ts.map +1 -0
- package/dist/types/cli/config/types.d.ts +34 -0
- package/dist/types/cli/config/types.d.ts.map +1 -0
- package/dist/types/cli/typegen/runTypegen.d.ts +9 -0
- package/dist/types/cli/typegen/runTypegen.d.ts.map +1 -0
- package/dist/types/cli/typegen/schemaToTs.d.ts.map +1 -1
- package/dist/types/dsl/filterExpr.d.ts +130 -46
- package/dist/types/dsl/filterExpr.d.ts.map +1 -1
- package/dist/types/dsl/filters.d.ts +72 -2
- package/dist/types/dsl/filters.d.ts.map +1 -1
- package/docs/typegen.md +4 -0
- package/package.json +1 -1
|
@@ -6,7 +6,7 @@ var NE=Object.defineProperty;var PE=(e,r,t)=>r in e?NE(e,r,{enumerable:!0,config
|
|
|
6
6
|
*
|
|
7
7
|
* This source code is licensed under the MIT license found in the
|
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
|
9
|
-
*/var Rb;function ME(){if(Rb)return Un;Rb=1;var e=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),t=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),n=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),p=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),b=Symbol.iterator;function O(j){return j===null||typeof j!="object"?null:(j=b&&j[b]||j["@@iterator"],typeof j=="function"?j:null)}var T={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},I=Object.assign,R={};function U(j,ae,ie){this.props=j,this.context=ae,this.refs=R,this.updater=ie||T}U.prototype.isReactComponent={},U.prototype.setState=function(j,ae){if(typeof j!="object"&&typeof j!="function"&&j!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,j,ae,"setState")},U.prototype.forceUpdate=function(j){this.updater.enqueueForceUpdate(this,j,"forceUpdate")};function $(){}$.prototype=U.prototype;function H(j,ae,ie){this.props=j,this.context=ae,this.refs=R,this.updater=ie||T}var E=H.prototype=new $;E.constructor=H,I(E,U.prototype),E.isPureReactComponent=!0;var M=Array.isArray,D={H:null,A:null,T:null,S:null,V:null},re=Object.prototype.hasOwnProperty;function G(j,ae,ie,K,le,ce){return ie=ce.ref,{$$typeof:e,type:j,key:ae,ref:ie!==void 0?ie:null,props:ce}}function V(j,ae){return G(j.type,ae,void 0,void 0,void 0,j.props)}function A(j){return typeof j=="object"&&j!==null&&j.$$typeof===e}function k(j){var ae={"=":"=0",":":"=2"};return"$"+j.replace(/[=:]/g,function(ie){return ae[ie]})}var L=/\/+/g;function q(j,ae){return typeof j=="object"&&j!==null&&j.key!=null?k(""+j.key):ae.toString(36)}function B(){}function W(j){switch(j.status){case"fulfilled":return j.value;case"rejected":throw j.reason;default:switch(typeof j.status=="string"?j.then(B,B):(j.status="pending",j.then(function(ae){j.status==="pending"&&(j.status="fulfilled",j.value=ae)},function(ae){j.status==="pending"&&(j.status="rejected",j.reason=ae)})),j.status){case"fulfilled":return j.value;case"rejected":throw j.reason}}throw j}function Q(j,ae,ie,K,le){var ce=typeof j;(ce==="undefined"||ce==="boolean")&&(j=null);var Oe=!1;if(j===null)Oe=!0;else switch(ce){case"bigint":case"string":case"number":Oe=!0;break;case"object":switch(j.$$typeof){case e:case r:Oe=!0;break;case h:return Oe=j._init,Q(Oe(j._payload),ae,ie,K,le)}}if(Oe)return le=le(j),Oe=K===""?"."+q(j,0):K,M(le)?(ie="",Oe!=null&&(ie=Oe.replace(L,"$&/")+"/"),Q(le,ae,ie,"",function(jt){return jt})):le!=null&&(A(le)&&(le=V(le,ie+(le.key==null||j&&j.key===le.key?"":(""+le.key).replace(L,"$&/")+"/")+Oe)),ae.push(le)),1;Oe=0;var it=K===""?".":K+":";if(M(j))for(var ut=0;ut<j.length;ut++)K=j[ut],ce=it+q(K,ut),Oe+=Q(K,ae,ie,ce,le);else if(ut=O(j),typeof ut=="function")for(j=ut.call(j),ut=0;!(K=j.next()).done;)K=K.value,ce=it+q(K,ut++),Oe+=Q(K,ae,ie,ce,le);else if(ce==="object"){if(typeof j.then=="function")return Q(W(j),ae,ie,K,le);throw ae=String(j),Error("Objects are not valid as a React child (found: "+(ae==="[object Object]"?"object with keys {"+Object.keys(j).join(", ")+"}":ae)+"). If you meant to render a collection of children, use an array instead.")}return Oe}function J(j,ae,ie){if(j==null)return j;var K=[],le=0;return Q(j,K,"","",function(ce){return ae.call(ie,ce,le++)}),K}function ge(j){if(j._status===-1){var ae=j._result;ae=ae(),ae.then(function(ie){(j._status===0||j._status===-1)&&(j._status=1,j._result=ie)},function(ie){(j._status===0||j._status===-1)&&(j._status=2,j._result=ie)}),j._status===-1&&(j._status=0,j._result=ae)}if(j._status===1)return j._result.default;throw j._result}var de=typeof reportError=="function"?reportError:function(j){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var ae=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof j=="object"&&j!==null&&typeof j.message=="string"?String(j.message):String(j),error:j});if(!window.dispatchEvent(ae))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",j);return}console.error(j)};function ye(){}return Un.Children={map:J,forEach:function(j,ae,ie){J(j,function(){ae.apply(this,arguments)},ie)},count:function(j){var ae=0;return J(j,function(){ae++}),ae},toArray:function(j){return J(j,function(ae){return ae})||[]},only:function(j){if(!A(j))throw Error("React.Children.only expected to receive a single React element child.");return j}},Un.Component=U,Un.Fragment=t,Un.Profiler=n,Un.PureComponent=H,Un.StrictMode=l,Un.Suspense=m,Un.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=D,Un.__COMPILER_RUNTIME={__proto__:null,c:function(j){return D.H.useMemoCache(j)}},Un.cache=function(j){return function(){return j.apply(null,arguments)}},Un.cloneElement=function(j,ae,ie){if(j==null)throw Error("The argument must be a React element, but you passed "+j+".");var K=I({},j.props),le=j.key,ce=void 0;if(ae!=null)for(Oe in ae.ref!==void 0&&(ce=void 0),ae.key!==void 0&&(le=""+ae.key),ae)!re.call(ae,Oe)||Oe==="key"||Oe==="__self"||Oe==="__source"||Oe==="ref"&&ae.ref===void 0||(K[Oe]=ae[Oe]);var Oe=arguments.length-2;if(Oe===1)K.children=ie;else if(1<Oe){for(var it=Array(Oe),ut=0;ut<Oe;ut++)it[ut]=arguments[ut+2];K.children=it}return G(j.type,le,void 0,void 0,ce,K)},Un.createContext=function(j){return j={$$typeof:p,_currentValue:j,_currentValue2:j,_threadCount:0,Provider:null,Consumer:null},j.Provider=j,j.Consumer={$$typeof:c,_context:j},j},Un.createElement=function(j,ae,ie){var K,le={},ce=null;if(ae!=null)for(K in ae.key!==void 0&&(ce=""+ae.key),ae)re.call(ae,K)&&K!=="key"&&K!=="__self"&&K!=="__source"&&(le[K]=ae[K]);var Oe=arguments.length-2;if(Oe===1)le.children=ie;else if(1<Oe){for(var it=Array(Oe),ut=0;ut<Oe;ut++)it[ut]=arguments[ut+2];le.children=it}if(j&&j.defaultProps)for(K in Oe=j.defaultProps,Oe)le[K]===void 0&&(le[K]=Oe[K]);return G(j,ce,void 0,void 0,null,le)},Un.createRef=function(){return{current:null}},Un.forwardRef=function(j){return{$$typeof:d,render:j}},Un.isValidElement=A,Un.lazy=function(j){return{$$typeof:h,_payload:{_status:-1,_result:j},_init:ge}},Un.memo=function(j,ae){return{$$typeof:g,type:j,compare:ae===void 0?null:ae}},Un.startTransition=function(j){var ae=D.T,ie={};D.T=ie;try{var K=j(),le=D.S;le!==null&&le(ie,K),typeof K=="object"&&K!==null&&typeof K.then=="function"&&K.then(ye,de)}catch(ce){de(ce)}finally{D.T=ae}},Un.unstable_useCacheRefresh=function(){return D.H.useCacheRefresh()},Un.use=function(j){return D.H.use(j)},Un.useActionState=function(j,ae,ie){return D.H.useActionState(j,ae,ie)},Un.useCallback=function(j,ae){return D.H.useCallback(j,ae)},Un.useContext=function(j){return D.H.useContext(j)},Un.useDebugValue=function(){},Un.useDeferredValue=function(j,ae){return D.H.useDeferredValue(j,ae)},Un.useEffect=function(j,ae,ie){var K=D.H;if(typeof ie=="function")throw Error("useEffect CRUD overload is not enabled in this build of React.");return K.useEffect(j,ae)},Un.useId=function(){return D.H.useId()},Un.useImperativeHandle=function(j,ae,ie){return D.H.useImperativeHandle(j,ae,ie)},Un.useInsertionEffect=function(j,ae){return D.H.useInsertionEffect(j,ae)},Un.useLayoutEffect=function(j,ae){return D.H.useLayoutEffect(j,ae)},Un.useMemo=function(j,ae){return D.H.useMemo(j,ae)},Un.useOptimistic=function(j,ae){return D.H.useOptimistic(j,ae)},Un.useReducer=function(j,ae,ie){return D.H.useReducer(j,ae,ie)},Un.useRef=function(j){return D.H.useRef(j)},Un.useState=function(j){return D.H.useState(j)},Un.useSyncExternalStore=function(j,ae,ie){return D.H.useSyncExternalStore(j,ae,ie)},Un.useTransition=function(){return D.H.useTransition()},Un.version="19.1.0",Un}var Ib;function og(){return Ib||(Ib=1,mm.exports=ME()),mm.exports}var s=og();const zn=W0(s),AE="
|
|
9
|
+
*/var Rb;function ME(){if(Rb)return Un;Rb=1;var e=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),t=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),n=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),p=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),b=Symbol.iterator;function O(j){return j===null||typeof j!="object"?null:(j=b&&j[b]||j["@@iterator"],typeof j=="function"?j:null)}var T={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},I=Object.assign,R={};function U(j,ae,ie){this.props=j,this.context=ae,this.refs=R,this.updater=ie||T}U.prototype.isReactComponent={},U.prototype.setState=function(j,ae){if(typeof j!="object"&&typeof j!="function"&&j!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,j,ae,"setState")},U.prototype.forceUpdate=function(j){this.updater.enqueueForceUpdate(this,j,"forceUpdate")};function $(){}$.prototype=U.prototype;function H(j,ae,ie){this.props=j,this.context=ae,this.refs=R,this.updater=ie||T}var E=H.prototype=new $;E.constructor=H,I(E,U.prototype),E.isPureReactComponent=!0;var M=Array.isArray,D={H:null,A:null,T:null,S:null,V:null},re=Object.prototype.hasOwnProperty;function G(j,ae,ie,K,le,ce){return ie=ce.ref,{$$typeof:e,type:j,key:ae,ref:ie!==void 0?ie:null,props:ce}}function V(j,ae){return G(j.type,ae,void 0,void 0,void 0,j.props)}function A(j){return typeof j=="object"&&j!==null&&j.$$typeof===e}function k(j){var ae={"=":"=0",":":"=2"};return"$"+j.replace(/[=:]/g,function(ie){return ae[ie]})}var L=/\/+/g;function q(j,ae){return typeof j=="object"&&j!==null&&j.key!=null?k(""+j.key):ae.toString(36)}function B(){}function W(j){switch(j.status){case"fulfilled":return j.value;case"rejected":throw j.reason;default:switch(typeof j.status=="string"?j.then(B,B):(j.status="pending",j.then(function(ae){j.status==="pending"&&(j.status="fulfilled",j.value=ae)},function(ae){j.status==="pending"&&(j.status="rejected",j.reason=ae)})),j.status){case"fulfilled":return j.value;case"rejected":throw j.reason}}throw j}function Q(j,ae,ie,K,le){var ce=typeof j;(ce==="undefined"||ce==="boolean")&&(j=null);var Oe=!1;if(j===null)Oe=!0;else switch(ce){case"bigint":case"string":case"number":Oe=!0;break;case"object":switch(j.$$typeof){case e:case r:Oe=!0;break;case h:return Oe=j._init,Q(Oe(j._payload),ae,ie,K,le)}}if(Oe)return le=le(j),Oe=K===""?"."+q(j,0):K,M(le)?(ie="",Oe!=null&&(ie=Oe.replace(L,"$&/")+"/"),Q(le,ae,ie,"",function(jt){return jt})):le!=null&&(A(le)&&(le=V(le,ie+(le.key==null||j&&j.key===le.key?"":(""+le.key).replace(L,"$&/")+"/")+Oe)),ae.push(le)),1;Oe=0;var it=K===""?".":K+":";if(M(j))for(var ut=0;ut<j.length;ut++)K=j[ut],ce=it+q(K,ut),Oe+=Q(K,ae,ie,ce,le);else if(ut=O(j),typeof ut=="function")for(j=ut.call(j),ut=0;!(K=j.next()).done;)K=K.value,ce=it+q(K,ut++),Oe+=Q(K,ae,ie,ce,le);else if(ce==="object"){if(typeof j.then=="function")return Q(W(j),ae,ie,K,le);throw ae=String(j),Error("Objects are not valid as a React child (found: "+(ae==="[object Object]"?"object with keys {"+Object.keys(j).join(", ")+"}":ae)+"). If you meant to render a collection of children, use an array instead.")}return Oe}function J(j,ae,ie){if(j==null)return j;var K=[],le=0;return Q(j,K,"","",function(ce){return ae.call(ie,ce,le++)}),K}function ge(j){if(j._status===-1){var ae=j._result;ae=ae(),ae.then(function(ie){(j._status===0||j._status===-1)&&(j._status=1,j._result=ie)},function(ie){(j._status===0||j._status===-1)&&(j._status=2,j._result=ie)}),j._status===-1&&(j._status=0,j._result=ae)}if(j._status===1)return j._result.default;throw j._result}var de=typeof reportError=="function"?reportError:function(j){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var ae=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof j=="object"&&j!==null&&typeof j.message=="string"?String(j.message):String(j),error:j});if(!window.dispatchEvent(ae))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",j);return}console.error(j)};function ye(){}return Un.Children={map:J,forEach:function(j,ae,ie){J(j,function(){ae.apply(this,arguments)},ie)},count:function(j){var ae=0;return J(j,function(){ae++}),ae},toArray:function(j){return J(j,function(ae){return ae})||[]},only:function(j){if(!A(j))throw Error("React.Children.only expected to receive a single React element child.");return j}},Un.Component=U,Un.Fragment=t,Un.Profiler=n,Un.PureComponent=H,Un.StrictMode=l,Un.Suspense=m,Un.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=D,Un.__COMPILER_RUNTIME={__proto__:null,c:function(j){return D.H.useMemoCache(j)}},Un.cache=function(j){return function(){return j.apply(null,arguments)}},Un.cloneElement=function(j,ae,ie){if(j==null)throw Error("The argument must be a React element, but you passed "+j+".");var K=I({},j.props),le=j.key,ce=void 0;if(ae!=null)for(Oe in ae.ref!==void 0&&(ce=void 0),ae.key!==void 0&&(le=""+ae.key),ae)!re.call(ae,Oe)||Oe==="key"||Oe==="__self"||Oe==="__source"||Oe==="ref"&&ae.ref===void 0||(K[Oe]=ae[Oe]);var Oe=arguments.length-2;if(Oe===1)K.children=ie;else if(1<Oe){for(var it=Array(Oe),ut=0;ut<Oe;ut++)it[ut]=arguments[ut+2];K.children=it}return G(j.type,le,void 0,void 0,ce,K)},Un.createContext=function(j){return j={$$typeof:p,_currentValue:j,_currentValue2:j,_threadCount:0,Provider:null,Consumer:null},j.Provider=j,j.Consumer={$$typeof:c,_context:j},j},Un.createElement=function(j,ae,ie){var K,le={},ce=null;if(ae!=null)for(K in ae.key!==void 0&&(ce=""+ae.key),ae)re.call(ae,K)&&K!=="key"&&K!=="__self"&&K!=="__source"&&(le[K]=ae[K]);var Oe=arguments.length-2;if(Oe===1)le.children=ie;else if(1<Oe){for(var it=Array(Oe),ut=0;ut<Oe;ut++)it[ut]=arguments[ut+2];le.children=it}if(j&&j.defaultProps)for(K in Oe=j.defaultProps,Oe)le[K]===void 0&&(le[K]=Oe[K]);return G(j,ce,void 0,void 0,null,le)},Un.createRef=function(){return{current:null}},Un.forwardRef=function(j){return{$$typeof:d,render:j}},Un.isValidElement=A,Un.lazy=function(j){return{$$typeof:h,_payload:{_status:-1,_result:j},_init:ge}},Un.memo=function(j,ae){return{$$typeof:g,type:j,compare:ae===void 0?null:ae}},Un.startTransition=function(j){var ae=D.T,ie={};D.T=ie;try{var K=j(),le=D.S;le!==null&&le(ie,K),typeof K=="object"&&K!==null&&typeof K.then=="function"&&K.then(ye,de)}catch(ce){de(ce)}finally{D.T=ae}},Un.unstable_useCacheRefresh=function(){return D.H.useCacheRefresh()},Un.use=function(j){return D.H.use(j)},Un.useActionState=function(j,ae,ie){return D.H.useActionState(j,ae,ie)},Un.useCallback=function(j,ae){return D.H.useCallback(j,ae)},Un.useContext=function(j){return D.H.useContext(j)},Un.useDebugValue=function(){},Un.useDeferredValue=function(j,ae){return D.H.useDeferredValue(j,ae)},Un.useEffect=function(j,ae,ie){var K=D.H;if(typeof ie=="function")throw Error("useEffect CRUD overload is not enabled in this build of React.");return K.useEffect(j,ae)},Un.useId=function(){return D.H.useId()},Un.useImperativeHandle=function(j,ae,ie){return D.H.useImperativeHandle(j,ae,ie)},Un.useInsertionEffect=function(j,ae){return D.H.useInsertionEffect(j,ae)},Un.useLayoutEffect=function(j,ae){return D.H.useLayoutEffect(j,ae)},Un.useMemo=function(j,ae){return D.H.useMemo(j,ae)},Un.useOptimistic=function(j,ae){return D.H.useOptimistic(j,ae)},Un.useReducer=function(j,ae,ie){return D.H.useReducer(j,ae,ie)},Un.useRef=function(j){return D.H.useRef(j)},Un.useState=function(j){return D.H.useState(j)},Un.useSyncExternalStore=function(j,ae,ie){return D.H.useSyncExternalStore(j,ae,ie)},Un.useTransition=function(){return D.H.useTransition()},Un.version="19.1.0",Un}var Ib;function og(){return Ib||(Ib=1,mm.exports=ME()),mm.exports}var s=og();const zn=W0(s),AE="5.0.0",kE={version:AE};var vm={exports:{}},Fs={};/**
|
|
10
10
|
* @license React
|
|
11
11
|
* react-jsx-runtime.production.js
|
|
12
12
|
*
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import * as path from 'node:path';
|
|
2
|
+
import * as fs from 'node:fs/promises';
|
|
3
|
+
async function writeFileEnsuringDir(filePath, content) {
|
|
4
|
+
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
5
|
+
await fs.writeFile(filePath, content, 'utf8');
|
|
6
|
+
}
|
|
7
|
+
async function fileExists(filePath) {
|
|
8
|
+
try {
|
|
9
|
+
await fs.stat(filePath);
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function renderDefaultConfigTs(options) {
|
|
17
|
+
const stringifyArray = (items) => {
|
|
18
|
+
const outerIndent = ' ';
|
|
19
|
+
const innerIndent = ' ';
|
|
20
|
+
return `[
|
|
21
|
+
${items.map(v => `${innerIndent}${JSON.stringify(v)}`).join(',\n')}
|
|
22
|
+
${outerIndent}]`;
|
|
23
|
+
};
|
|
24
|
+
return [
|
|
25
|
+
"import type { DtvTypegenConfig } from '@kronor/dtv/typegen';",
|
|
26
|
+
'',
|
|
27
|
+
'const config: DtvTypegenConfig = {',
|
|
28
|
+
' schema: {',
|
|
29
|
+
` endpoint: ${JSON.stringify(options.endpoint)},`,
|
|
30
|
+
' headers: {',
|
|
31
|
+
' // Example header-based auth:',
|
|
32
|
+
' // Authorization: `Bearer ${process.env.HASURA_TOKEN}`,',
|
|
33
|
+
'',
|
|
34
|
+
' // Hasura admin secret:',
|
|
35
|
+
" // 'x-hasura-admin-secret': process.env.HASURA_ADMIN_SECRET ?? '',",
|
|
36
|
+
' }',
|
|
37
|
+
' },',
|
|
38
|
+
'',
|
|
39
|
+
' scan: {',
|
|
40
|
+
' // Scan TS/TSX files for `DSL.view({ ... })` calls (supports aliased/namespaced imports too)',
|
|
41
|
+
` include: ${stringifyArray(options.include)},`,
|
|
42
|
+
` exclude: ${stringifyArray(options.exclude)},`,
|
|
43
|
+
'',
|
|
44
|
+
' // Override if you re-export DTV under a different specifier.',
|
|
45
|
+
` dtvImport: ${JSON.stringify(options.dtvImport)}`,
|
|
46
|
+
' },',
|
|
47
|
+
'',
|
|
48
|
+
' output: {',
|
|
49
|
+
' // File name written next to each view module that calls DSL.view(...)',
|
|
50
|
+
` fileNamePattern: ${JSON.stringify(options.fileNamePattern)}`,
|
|
51
|
+
' },',
|
|
52
|
+
'',
|
|
53
|
+
' scalars: {',
|
|
54
|
+
" // DateTime: 'string'",
|
|
55
|
+
' },',
|
|
56
|
+
'',
|
|
57
|
+
' debug: {',
|
|
58
|
+
' // When true, include original GraphQL type refs as comments',
|
|
59
|
+
' includeGraphqlTypeComments: false',
|
|
60
|
+
' }',
|
|
61
|
+
'};',
|
|
62
|
+
'',
|
|
63
|
+
'export default config;',
|
|
64
|
+
''
|
|
65
|
+
].join('\n');
|
|
66
|
+
}
|
|
67
|
+
async function runInitConfig(outPath, force, overrides) {
|
|
68
|
+
const absOut = path.isAbsolute(outPath) ? outPath : path.resolve(process.cwd(), outPath);
|
|
69
|
+
if (!force && await fileExists(absOut)) {
|
|
70
|
+
throw new Error(`Refusing to overwrite existing file: ${absOut} (use --force to overwrite)`);
|
|
71
|
+
}
|
|
72
|
+
const content = renderDefaultConfigTs({
|
|
73
|
+
endpoint: overrides?.endpoint ?? 'https://my-hasura.example.com/v1/graphql',
|
|
74
|
+
fileNamePattern: overrides?.fileNamePattern ?? 'dtv.generated.{viewId}.ts',
|
|
75
|
+
include: ['src/**/*.{ts,tsx}'],
|
|
76
|
+
exclude: ['**/*.test.*', '**/node_modules/**'],
|
|
77
|
+
dtvImport: overrides?.dtvImport ?? '@kronor/dtv'
|
|
78
|
+
});
|
|
79
|
+
await writeFileEnsuringDir(absOut, content);
|
|
80
|
+
console.log(`Wrote ${absOut}`);
|
|
81
|
+
}
|
|
82
|
+
export function registerInitCommand(program) {
|
|
83
|
+
program
|
|
84
|
+
.command('init')
|
|
85
|
+
.description('Generate a dtv.config.ts template in the current project')
|
|
86
|
+
.option('-o, --out <path>', 'Output config file path', 'dtv.config.ts')
|
|
87
|
+
.option('--force', 'Overwrite if the file already exists', false)
|
|
88
|
+
.option('--endpoint <url>', 'Hasura GraphQL endpoint to prefill', 'https://my-hasura.example.com/v1/graphql')
|
|
89
|
+
.option('--file-pattern <pattern>', 'Output file name pattern written next to each view module', 'dtv.generated.{viewId}.ts')
|
|
90
|
+
.option('--dtv-import <specifier>', 'Module specifier used by views to import DSL', '@kronor/dtv')
|
|
91
|
+
.action(async (opts) => {
|
|
92
|
+
try {
|
|
93
|
+
await runInitConfig(opts.out, opts.force, {
|
|
94
|
+
endpoint: opts.endpoint,
|
|
95
|
+
fileNamePattern: opts.filePattern,
|
|
96
|
+
dtvImport: opts.dtvImport
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
catch (e) {
|
|
100
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
101
|
+
console.error(msg);
|
|
102
|
+
process.exitCode = 1;
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { runTypegen } from '../typegen/runTypegen.js';
|
|
2
|
+
export function registerTypegenCommand(program) {
|
|
3
|
+
program
|
|
4
|
+
.command('typegen')
|
|
5
|
+
.description('Generate TypeScript types from a Hasura GraphQL schema')
|
|
6
|
+
.argument('[viewId]', 'Optional view id to generate types for (only that view will be regenerated)')
|
|
7
|
+
.option('-c, --config <path>', 'Path to dtv.config.ts', 'dtv.config.ts')
|
|
8
|
+
.option('--debug-scan', 'Print view scanning debug information', false)
|
|
9
|
+
.option('--debug-scan-file <path>', 'Only scan a specific file and print debug output for it')
|
|
10
|
+
.action(async (viewId, opts) => {
|
|
11
|
+
try {
|
|
12
|
+
await runTypegen({
|
|
13
|
+
configPath: opts.config,
|
|
14
|
+
onlyViewId: viewId,
|
|
15
|
+
debugScan: Boolean(opts.debugScan || opts.debugScanFile),
|
|
16
|
+
debugScanFile: opts.debugScanFile
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
catch (e) {
|
|
20
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
21
|
+
console.error(msg);
|
|
22
|
+
process.exitCode = 1;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=typegen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typegen.js","sourceRoot":"","sources":["../../../src/cli/commands/typegen.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACnD,OAAO;SACF,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,wDAAwD,CAAC;SACrE,QAAQ,CAAC,UAAU,EAAE,6EAA6E,CAAC;SACnG,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,EAAE,eAAe,CAAC;SACvE,MAAM,CAAC,cAAc,EAAE,uCAAuC,EAAE,KAAK,CAAC;SACtE,MAAM,CAAC,0BAA0B,EAAE,yDAAyD,CAAC;SAC7F,MAAM,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAqE,EAAE,EAAE;QAChH,IAAI,CAAC;YACD,MAAM,UAAU,CAAC;gBACb,UAAU,EAAE,IAAI,CAAC,MAAM;gBACvB,UAAU,EAAE,MAAM;gBAClB,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC;gBACxD,aAAa,EAAE,IAAI,CAAC,aAAa;aACpC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACzB,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { pathToFileURL } from 'node:url';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import * as fs from 'node:fs/promises';
|
|
4
|
+
import ts from 'typescript';
|
|
5
|
+
function isRecord(value) {
|
|
6
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
7
|
+
}
|
|
8
|
+
function assertString(value, context) {
|
|
9
|
+
if (typeof value !== 'string' || value.length === 0) {
|
|
10
|
+
throw new Error(`${context} must be a non-empty string`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export async function loadConfig(configPath) {
|
|
14
|
+
const abs = path.isAbsolute(configPath) ? configPath : path.resolve(process.cwd(), configPath);
|
|
15
|
+
const cfg = await (async () => {
|
|
16
|
+
const ext = path.extname(abs).toLowerCase();
|
|
17
|
+
const url = pathToFileURL(abs).href;
|
|
18
|
+
if (ext === '.ts' || ext === '.tsx') {
|
|
19
|
+
// Load TS config in a way that works in both CJS and ESM projects.
|
|
20
|
+
// We transpile the config file to ESM and import the emitted JS.
|
|
21
|
+
// This avoids requiring the consuming repo to be `type: module`.
|
|
22
|
+
const sourceText = await fs.readFile(abs, 'utf8');
|
|
23
|
+
// Under `module: NodeNext`, TS decides ESM vs CJS based on file extension
|
|
24
|
+
// and nearest package.json `type`. We want the config to always be treated
|
|
25
|
+
// as ESM so it can be imported reliably from any project.
|
|
26
|
+
const transpileFileName = abs.replace(/\.(tsx?)$/i, '.mts');
|
|
27
|
+
const transpiled = ts.transpileModule(sourceText, {
|
|
28
|
+
compilerOptions: {
|
|
29
|
+
target: ts.ScriptTarget.ES2022,
|
|
30
|
+
module: ts.ModuleKind.NodeNext,
|
|
31
|
+
moduleResolution: ts.ModuleResolutionKind.NodeNext,
|
|
32
|
+
jsx: ts.JsxEmit.Preserve,
|
|
33
|
+
esModuleInterop: true,
|
|
34
|
+
sourceMap: false
|
|
35
|
+
},
|
|
36
|
+
fileName: transpileFileName,
|
|
37
|
+
reportDiagnostics: true
|
|
38
|
+
});
|
|
39
|
+
if (transpiled.diagnostics?.length) {
|
|
40
|
+
const errors = transpiled.diagnostics.filter(d => d.category === ts.DiagnosticCategory.Error);
|
|
41
|
+
if (errors.length) {
|
|
42
|
+
const msg = errors
|
|
43
|
+
.map(d => ts.flattenDiagnosticMessageText(d.messageText, '\n'))
|
|
44
|
+
.join('\n');
|
|
45
|
+
throw new Error(`Failed to transpile ${abs}:\n${msg}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const tmpFile = path.join(path.dirname(abs), `.${path.basename(abs)}.dtv-tmp.${Date.now()}.mjs`);
|
|
49
|
+
await fs.writeFile(tmpFile, transpiled.outputText, 'utf8');
|
|
50
|
+
try {
|
|
51
|
+
const tmpUrl = pathToFileURL(tmpFile).href;
|
|
52
|
+
const mod = await import(`${tmpUrl}?t=${Date.now()}`);
|
|
53
|
+
return (mod.default ?? mod.config ?? mod);
|
|
54
|
+
}
|
|
55
|
+
finally {
|
|
56
|
+
await fs.unlink(tmpFile).catch(() => undefined);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// JS/MJS/CJS (or any Node-supported module) can be imported directly.
|
|
60
|
+
// Cache-bust import to allow repeated runs.
|
|
61
|
+
const mod = await import(`${url}?t=${Date.now()}`);
|
|
62
|
+
return (mod.default ?? mod.config ?? mod);
|
|
63
|
+
})();
|
|
64
|
+
if (!isRecord(cfg)) {
|
|
65
|
+
throw new Error('Config must export a plain object (default export recommended)');
|
|
66
|
+
}
|
|
67
|
+
if (!isRecord(cfg.schema))
|
|
68
|
+
throw new Error('Config.schema is required');
|
|
69
|
+
assertString(cfg.schema.endpoint, 'Config.schema.endpoint');
|
|
70
|
+
if (cfg.schema.headers !== undefined && !isRecord(cfg.schema.headers)) {
|
|
71
|
+
throw new Error('Config.schema.headers must be an object when provided');
|
|
72
|
+
}
|
|
73
|
+
if (!isRecord(cfg.scan))
|
|
74
|
+
throw new Error('Config.scan is required');
|
|
75
|
+
if (!Array.isArray(cfg.scan.include) || cfg.scan.include.length === 0) {
|
|
76
|
+
throw new Error('Config.scan.include must be a non-empty array of glob patterns');
|
|
77
|
+
}
|
|
78
|
+
if (cfg.scan.exclude !== undefined && !Array.isArray(cfg.scan.exclude)) {
|
|
79
|
+
throw new Error('Config.scan.exclude must be an array when provided');
|
|
80
|
+
}
|
|
81
|
+
if (cfg.scan.dtvImport !== undefined)
|
|
82
|
+
assertString(cfg.scan.dtvImport, 'Config.scan.dtvImport');
|
|
83
|
+
if (!isRecord(cfg.output))
|
|
84
|
+
throw new Error('Config.output is required');
|
|
85
|
+
assertString(cfg.output.fileNamePattern, 'Config.output.fileNamePattern');
|
|
86
|
+
if (cfg.output.fileNamePattern.includes('/') || cfg.output.fileNamePattern.includes('\\')) {
|
|
87
|
+
throw new Error('Config.output.fileNamePattern must be a file name (no path separators)');
|
|
88
|
+
}
|
|
89
|
+
if (cfg.scalars !== undefined && !isRecord(cfg.scalars)) {
|
|
90
|
+
throw new Error('Config.scalars must be an object when provided');
|
|
91
|
+
}
|
|
92
|
+
if (cfg.debug !== undefined) {
|
|
93
|
+
if (!isRecord(cfg.debug))
|
|
94
|
+
throw new Error('Config.debug must be an object when provided');
|
|
95
|
+
if (cfg.debug.includeGraphqlTypeComments !== undefined && typeof cfg.debug.includeGraphqlTypeComments !== 'boolean') {
|
|
96
|
+
throw new Error('Config.debug.includeGraphqlTypeComments must be a boolean when provided');
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return cfg;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=loadConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadConfig.js","sourceRoot":"","sources":["../../../src/cli/config/loadConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cli/config/types.ts"],"names":[],"mappings":""}
|