ts-ref-kit 1.0.3 → 1.0.5
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.
|
@@ -1 +1,3 @@
|
|
|
1
|
-
var fe=Object.create;var A=Object.defineProperty;var ce=Object.getOwnPropertyDescriptor;var pe=Object.getOwnPropertyNames;var le=Object.getPrototypeOf,ue=Object.prototype.hasOwnProperty;var ye=(e,t)=>{for(var i in t)A(e,i,{get:t[i],enumerable:!0})},G=(e,t,i,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let f of pe(t))!ue.call(e,f)&&f!==i&&A(e,f,{get:()=>t[f],enumerable:!(s=ce(t,f))||s.enumerable});return e};var k=(e,t,i)=>(i=e!=null?fe(le(e)):{},G(t||!e||!e.__esModule?A(i,"default",{value:e,enumerable:!0}):i,e)),me=e=>G(A({},"__esModule",{value:!0}),e);var _=(e,t,i)=>new Promise((s,f)=>{var r=m=>{try{T(i.next(m))}catch(g){f(g)}},p=m=>{try{T(i.throw(m))}catch(g){f(g)}},T=m=>m.done?s(m.value):Promise.resolve(m.value).then(r,p);T((i=i.apply(e,t)).next())});var Ae={};ye(Ae,{parseSource:()=>ee,setupReflectTypes:()=>Te,updateReflectModules:()=>j});module.exports=me(Ae);var n=k(require("typescript"),1),R=k(require("fs"),1),v=k(require("process"),1),w=k(require("path"),1);var de=!0,K=new Map,x=new Map,C=new Map,N=new Map,I=new Map,P=new Set,Q={[n.SyntaxKind.BooleanKeyword]:"boolean",[n.SyntaxKind.StringKeyword]:"string",[n.SyntaxKind.BigIntKeyword]:"bigint",[n.SyntaxKind.NumberKeyword]:"number",[n.SyntaxKind.SymbolKeyword]:"symbol",[n.SyntaxKind.VoidKeyword]:"void",[n.SyntaxKind.UndefinedKeyword]:"undefined",[n.SyntaxKind.UnknownKeyword]:"unknown",[n.SyntaxKind.AnyKeyword]:"any",[n.SyntaxKind.ObjectKeyword]:"object"},S="any",X=["string","number","boolean","bigint","symbol"],Y=["any","Promise","Date","Error","undefined","unknown","object","Map","Set"],Z=["Mappable","EnableReflect"];[...X,...Y,...Z].forEach(se);Z.forEach(e=>x.set(e,{name:e}));var M,H=!1,d=Reflect;function Te(s,f){return _(this,arguments,function*(e,t,i=v.cwd()){if(i=w.resolve(i),d.__classes===void 0){e=oe(e),ee(e,t),d.__classes={};for(let[r,p]of K)d.__classes[r]=p;d.__interfaces={};for(let[r,p]of x)d.__interfaces[r]=p;d.__typeAliases={};for(let[r,p]of N)d.__typeAliases[r]=p;d.__constTypes={};for(let[r,p]of I)d.__constTypes[r]=p;yield Promise.all(e.map(r=>j(r,i)))}})}function j(e,t){return _(this,null,function*(){if(!R.existsSync(e))return;if(R.statSync(e).isDirectory()){R.readdirSync(e).forEach(r=>{j(w.join(e,r),t)});return}let s=yield import(w.join(t,e).replace(/\.ts$/,".js"));d.__classDef={},Object.values(s).forEach(f=>{typeof f=="function"&&(d.__classDef[f.name]=f)})})}function ee(e,t){if(e||(e=[v.cwd()]),e=oe(e),!H){let i=ne(e,t),s=n.createProgram(i,{});M=s.getTypeChecker(),i=i.map(r=>J(r)),s.getSourceFiles().filter(r=>i.includes(J(r.fileName))).forEach(r=>{D(`parse file: ${r.fileName}`),te(r)});for(let r of P.keys())!K.has(r)&&!x.has(r)&&!C.has(r)&&!N.has(r)&&!X.includes(r)&&!Y.includes(r)&&(D(`remove unknown typeName: ${r}`),P.delete(r));Array.from(K.values()).forEach(Se),Array.from(x.values()).forEach(Ke),[K,x,N].forEach(Ee),H=!0}return{classDefinitions:K,interfaceDefinitions:x,enumDefinitions:C,typeAliasDefinitions:N,constTypeDefinitions:I}}function ne(e,t){let i=[];return e.forEach(s=>{if(s=w.resolve(s),Ne(s,t)){D(`ignore excluded ${s}`);return}if(!R.existsSync(s)){console.error(`Path ${s} does not exist.`);return}if(R.statSync(s).isFile()){i.push(s);return}R.readdirSync(s).forEach(p=>i.push(...ne([w.join(s,p)],t)))}),i}function te(e){n.isClassDeclaration(e)?ge(e):n.isInterfaceDeclaration(e)?we(e):n.isEnumDeclaration(e)?De(e):n.isTypeAliasDeclaration(e)?Re(e):n.isConstTypeReference(e)?he(e):e.forEachChild(te)}function ge(e){var T,m,g,E,l,y,$,z,q,U,V,B;let t=a(e.name);if(!t)return;let i=a((g=(m=(T=e.heritageClauses)==null?void 0:T.find(o=>o.token===n.SyntaxKind.ExtendsKeyword))==null?void 0:m.types)==null?void 0:g[0].expression),s=(l=(E=e.heritageClauses)==null?void 0:E.find(o=>o.token===n.SyntaxKind.ImplementsKeyword))==null?void 0:l.types.map(o=>a(o.expression)),f=[],r=[];for(let o of e.members)if(n.isPropertyDeclaration(o))f.push({name:a(o.name),isOptional:o.questionToken!==void 0,type:u(o),isPrivate:(y=o.modifiers)==null?void 0:y.some(c=>c.kind===n.SyntaxKind.PrivateKeyword),isStatic:($=o.modifiers)==null?void 0:$.some(c=>c.kind===n.SyntaxKind.StaticKeyword)});else if(n.isMethodDeclaration(o))r.push({name:a(o.name),returnType:u(o),isPrivate:(z=o.modifiers)==null?void 0:z.some(c=>c.kind===n.SyntaxKind.PrivateKeyword),isStatic:(q=o.modifiers)==null?void 0:q.some(c=>c.kind===n.SyntaxKind.StaticKeyword),isAsync:(U=o.modifiers)==null?void 0:U.some(c=>c.kind===n.SyntaxKind.AsyncKeyword),args:o.parameters.map(c=>({name:a(c.name),type:u(c),isOptional:c.questionToken!==void 0}))});else if(n.isGetAccessorDeclaration(o)){let c=f.find(b=>b.name===a(o.name));c||(c={name:a(o.name),isOptional:o.questionToken===void 0,type:u(o)},f.push(c)),c.accessor=c.accessor||{},c.accessor.getter={isPrivate:((V=o.modifiers)==null?void 0:V.some(b=>b.kind===n.SyntaxKind.PrivateKeyword))||!1},c.isPrivate=c.accessor.getter.isPrivate}else if(n.isSetAccessorDeclaration(o)){let c=f.find(b=>b.name===a(o.name));c||(c={name:a(o.name),isOptional:o.questionToken===void 0,type:u(o)},f.push(c)),c.accessor=c.accessor||{},c.accessor.setter={isPrivate:((B=o.modifiers)==null?void 0:B.some(b=>b.kind===n.SyntaxKind.PrivateKeyword))||!1}}let p={name:t,superClassName:i,implementations:s,properties:f,methods:r};D(`Define class: ${a(e.name)}`),K.set(t,p)}function we(e){var T,m,g,E;let t=a(e.name);if(!t)return;let i=((m=(T=e.heritageClauses)==null?void 0:T.find(l=>l.token===n.SyntaxKind.ExtendsKeyword))==null?void 0:m.types.map(l=>a(l.expression)))||[],s=[],f=[],r;for(let l of e.members)n.isPropertySignature(l)?s.push({name:a(l.name),isOptional:l.questionToken!==void 0,type:u(l),isPrivate:((g=l.modifiers)==null?void 0:g.some(y=>y.kind===n.SyntaxKind.PrivateKeyword))||!1}):n.isMethodSignature(l)?f.push({name:l.name.text,returnType:u(l),isPrivate:((E=l.modifiers)==null?void 0:E.some(y=>y.kind===n.SyntaxKind.PrivateKeyword))||!1,args:l.parameters.map(y=>({name:a(y.name),type:u(y),isOptional:y.questionToken!==void 0}))}):n.isIndexSignatureDeclaration(l)&&(r=u(l));let p=x.get(t);p?(p.implementations=O(p.implementations||[],i),p.methods=O(p.methods||[],f,(l,y)=>l.name===y.name),p.properties=O(p.properties||[],s,(l,y)=>l.name===y.name),p.indexElementType=r,D(`Merge interface ${a(e.name)}`)):(p={name:t,implementations:i,methods:f,properties:s,indexElementType:r},x.set(t,p),D(`Define interface ${a(e.name)}`))}function De(e){let t=a(e.name);t&&(C.set(t,{name:t,members:e.members.map(i=>({name:a(i.name),initializer:a(i.initializer)}))}),D(`Define enum: ${a(e.name)}`))}function Re(e){D(`Define typeAlias: ${a(e.name)}`),N.set(a(e.name),u(e))}function he(e){let t=e.parent.parent;n.isVariableDeclaration(t)&&t.initializer&&n.isAsExpression(t.initializer)&&I.set(a(t.name),ie(t.initializer.expression))}function ie(e){return n.isArrayLiteralExpression(e)?xe(e):n.isObjectLiteralExpression(e)?be(e):n.isNumericLiteral(e)?"number":n.isStringLiteral(e)?"string":n.isBigIntLiteral(e)?"bigint":[n.SyntaxKind.TrueKeyword,n.SyntaxKind.FalseKeyword].includes(e.kind)?"boolean":S}function xe(e){let t=[];return e.elements.forEach(i=>{if(n.isStringLiteral(i))return t.push(a(i))}),t.length===0?S:t.length===1?t[0]:{unionMembers:t}}function be(e){let t=[];return e.properties.map(i=>{n.isPropertyAssignment(i)?t.push({name:a(i.name),type:ie(i.initializer)}):D(`unsupported property: ${i.name}`)}),{typeLiteralMembers:t}}function se(e){P.add(e)}function u(e,t=!1){if(e.type&&!t)return h(e.type);if(!M)return console.error("TypeChecker not initialized!"),S;let i=M.getTypeAtLocation(e),s=M.typeToTypeNode(i,void 0,void 0);return s?h("type"in s?s.type:s):S}function h(e){let t={};if(e===void 0)return S;if(n.isUnionTypeNode(e))t.unionMembers=e.types.map(h);else if(n.isIntersectionTypeNode(e))t.intersectionMembers=e.types.map(h);else if(n.isLiteralTypeNode(e))t.literalValue=a(e.literal);else if(n.isTypeLiteralNode(e)){let i=[];e.members.forEach(s=>{n.isPropertySignature(s)?i.push({name:a(s.name),isOptional:s.questionToken!==void 0,type:u(s)}):n.isIndexSignatureDeclaration(s)?t.indexElementType=u(s):i.push({name:a(s.name)||"",isOptional:s.questionToken!==void 0,type:h()})}),t.typeLiteralMembers=i}else if(n.isArrayTypeNode(e))t.arrayElementType=h(e.elementType);else if(n.isFunctionTypeNode(e))t.isFunction=!0;else if(n.isTypeReferenceNode(e))if(se(a(e.typeName)),e.typeArguments)t.generics=[a(e.typeName),...e.typeArguments.map(i=>h(i))];else return a(e.typeName);else{if(n.isIndexedAccessTypeNode(e))return u(e,!0);if(n.isThisTypeNode(e))return u(e);if(n.isParenthesizedTypeNode(e))return u(e);if(n.isConditionalTypeNode(e))return u(e);if(n.isTypeQueryNode(e))return u(e);if(n.isConstructorTypeNode(e))t.isConstructor=!0;else if(n.isTupleTypeNode(e))t.tupleMembers=e.elements.map(h);else{if(Object.keys(Q).includes(String(e.kind)))return Q[e.kind]||S;if(n.isOptionalTypeNode(e))Object.assign(t,u(e)),t.isOptionalInTuple=!0;else if(n.isNamedTupleMember(e))Object.assign(t,u(e));else return n.isTypeOperatorNode(e)&&e.operator===n.SyntaxKind.KeyOfKeyword,u(e,!0)}}return t}var O=(e,t,i)=>[...(e==null?void 0:e.filter(s=>!(t!=null&&t.some(f=>(i||(()=>f===s))(f,s)))))||[],...t||[]];function F(e){if(e!==void 0&&e!==S)return typeof e=="string"?P.has(e)?e:void 0:e}function Se(e){var t,i;(t=e.methods)==null||t.forEach(ae),(i=e.properties)==null||i.forEach(re)}function Ke(e){var t,i;(t=e.methods)==null||t.forEach(ae),(i=e.properties)==null||i.forEach(re)}function re(e){e.type=F(e.type)}function ae(e){var t;(t=e.args)==null||t.forEach(i=>i.type=F(i.type)),e.returnType=F(e.returnType)}function a(e){if(!e)return e;if(e.end<0)return e.text;try{return n.isQualifiedName(e)?a(e.right):e.getText()}catch(t){return e.text}}function L(e){e&&Object.entries(e).forEach(t=>{let[i,s]=t;s instanceof Array&&s.length===0||s===!1||s===void 0?delete e[i]:s.constructor===Array?s.forEach(L):s.constructor===Object&&L(s)})}function Ee(e){for(let t of e.values())L(t)}function Ne(e,t){return t?(t=t instanceof Array?t:[t],t.some(i=>(i instanceof RegExp||(i=new RegExp(i.replace(/\./g,"\\.").replace(/\*/g,".*"))),e.match(i)))):!1}function J(e,t=v.cwd()){return W(e).replace(W(t)+"/","")}function W(e){let t=w.sep;return e.split(t).join("/")}function oe(e){return e instanceof Array?e:[e]}function D(e){de&&console.log(e)}0&&(module.exports={parseSource,setupReflectTypes,updateReflectModules});
|
|
1
|
+
var pe=Object.create;var v=Object.defineProperty;var ue=Object.getOwnPropertyDescriptor;var me=Object.getOwnPropertyNames;var ye=Object.getPrototypeOf,de=Object.prototype.hasOwnProperty;var ge=(e,t)=>{for(var s in t)v(e,s,{get:t[s],enumerable:!0})},H=(e,t,s,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of me(t))!de.call(e,a)&&a!==s&&v(e,a,{get:()=>t[a],enumerable:!(i=ue(t,a))||i.enumerable});return e};var A=(e,t,s)=>(s=e!=null?pe(ye(e)):{},H(t||!e||!e.__esModule?v(s,"default",{value:e,enumerable:!0}):s,e)),Te=e=>H(v({},"__esModule",{value:!0}),e);var z=(e,t,s)=>new Promise((i,a)=>{var r=m=>{try{w(s.next(m))}catch(D){a(D)}},l=m=>{try{w(s.throw(m))}catch(D){a(D)}},w=m=>m.done?i(m.value):Promise.resolve(m.value).then(r,l);w((s=s.apply(e,t)).next())});var ke={};ge(ke,{parseSource:()=>I,reflectLoader:()=>W,reflectParserPlugin:()=>Me,setupReflectTypes:()=>we,updateReflectModules:()=>G});module.exports=Te(ke);var j=A(require("typescript"),1);var n=A(require("typescript"),1),E=A(require("fs"),1),L=A(require("process"),1),x=A(require("path"),1);var De=!0,O=new Map,K=new Map,U=new Map,M=new Map,B=new Map,$=new Set,X={[n.SyntaxKind.BooleanKeyword]:"boolean",[n.SyntaxKind.StringKeyword]:"string",[n.SyntaxKind.BigIntKeyword]:"bigint",[n.SyntaxKind.NumberKeyword]:"number",[n.SyntaxKind.SymbolKeyword]:"symbol",[n.SyntaxKind.VoidKeyword]:"void",[n.SyntaxKind.UndefinedKeyword]:"undefined",[n.SyntaxKind.UnknownKeyword]:"unknown",[n.SyntaxKind.AnyKeyword]:"any",[n.SyntaxKind.ObjectKeyword]:"object"},P="any",te=["string","number","boolean","bigint","symbol"],ne=["any","Promise","Date","Error","undefined","unknown","object","Map","Set"],se=["Mappable","EnableReflect"];[...te,...ne,...se].forEach(oe);se.forEach(e=>K.set(e,{name:e}));var C,Y=!1,R=Reflect;function we(i,a){return z(this,arguments,function*(e,t,s=L.cwd()){if(s=x.resolve(s),R.__classes===void 0){e=le(e),I(e,t),R.__classes={};for(let[r,l]of O)R.__classes[r]=l;R.__interfaces={};for(let[r,l]of K)R.__interfaces[r]=l;R.__typeAliases={};for(let[r,l]of M)R.__typeAliases[r]=l;R.__constTypes={};for(let[r,l]of B)R.__constTypes[r]=l;yield Promise.all(e.map(r=>G(r,s)))}})}function G(e,t){return z(this,null,function*(){if(!E.existsSync(e))return;if(E.statSync(e).isDirectory()){E.readdirSync(e).forEach(r=>{G(x.join(e,r),t)});return}let i=yield import(x.join(t,e).replace(/\.ts$/,".js"));R.__classDef={},Object.values(i).forEach(a=>{typeof a=="function"&&(R.__classDef[a.name]=a)})})}function I(e,t){if(e||(e=[L.cwd()]),e=le(e),!Y){let s=ie(e,t),i=n.createProgram(s,{});C=i.getTypeChecker(),s=s.map(r=>Z(r)),i.getSourceFiles().filter(r=>s.includes(Z(r.fileName))).forEach(r=>{b(`parse file: ${r.fileName}`),re(r)});for(let r of $.keys())!O.has(r)&&!K.has(r)&&!U.has(r)&&!M.has(r)&&!te.includes(r)&&!ne.includes(r)&&(b(`remove unknown typeName: ${r}`),$.delete(r));Array.from(O.values()).forEach(Ke),Array.from(K.values()).forEach(Ne),[O,K,M].forEach(Pe),Y=!0}return{classDefinitions:O,interfaceDefinitions:K,enumDefinitions:U,typeAliasDefinitions:M,constTypeDefinitions:B}}function ie(e,t){let s=[];return e.forEach(i=>{if(i=x.resolve(i),Oe(i,t)){b(`ignore excluded ${i}`);return}if(!E.existsSync(i)){console.error(`Path ${i} does not exist.`);return}if(E.statSync(i).isFile()){s.push(i);return}E.readdirSync(i).forEach(l=>s.push(...ie([x.join(i,l)],t)))}),s}function re(e){n.isClassDeclaration(e)?he(e):n.isInterfaceDeclaration(e)?Re(e):n.isEnumDeclaration(e)?xe(e):n.isTypeAliasDeclaration(e)?be(e):n.isConstTypeReference(e)?Ee(e):e.forEachChild(re)}function he(e){var w,m,D,S,u,T,k,F,y,o,d,h;let t=f(e.name);if(!t)return;let s=f((D=(m=(w=e.heritageClauses)==null?void 0:w.find(c=>c.token===n.SyntaxKind.ExtendsKeyword))==null?void 0:m.types)==null?void 0:D[0].expression),i=(u=(S=e.heritageClauses)==null?void 0:S.find(c=>c.token===n.SyntaxKind.ImplementsKeyword))==null?void 0:u.types.map(c=>f(c.expression)),a=[],r=[];for(let c of e.members)if(n.isPropertyDeclaration(c))a.push({name:f(c.name),isOptional:c.questionToken!==void 0,type:g(c),isPrivate:(T=c.modifiers)==null?void 0:T.some(p=>p.kind===n.SyntaxKind.PrivateKeyword),isStatic:(k=c.modifiers)==null?void 0:k.some(p=>p.kind===n.SyntaxKind.StaticKeyword)});else if(n.isMethodDeclaration(c))r.push({name:f(c.name),returnType:g(c),isPrivate:(F=c.modifiers)==null?void 0:F.some(p=>p.kind===n.SyntaxKind.PrivateKeyword),isStatic:(y=c.modifiers)==null?void 0:y.some(p=>p.kind===n.SyntaxKind.StaticKeyword),isAsync:(o=c.modifiers)==null?void 0:o.some(p=>p.kind===n.SyntaxKind.AsyncKeyword),args:c.parameters.map(p=>({name:f(p.name),type:g(p),isOptional:p.questionToken!==void 0}))});else if(n.isGetAccessorDeclaration(c)){let p=a.find(N=>N.name===f(c.name));p||(p={name:f(c.name),isOptional:c.questionToken===void 0,type:g(c)},a.push(p)),p.accessor=p.accessor||{},p.accessor.getter={isPrivate:((d=c.modifiers)==null?void 0:d.some(N=>N.kind===n.SyntaxKind.PrivateKeyword))||!1},p.isPrivate=p.accessor.getter.isPrivate}else if(n.isSetAccessorDeclaration(c)){let p=a.find(N=>N.name===f(c.name));p||(p={name:f(c.name),isOptional:c.questionToken===void 0,type:g(c)},a.push(p)),p.accessor=p.accessor||{},p.accessor.setter={isPrivate:((h=c.modifiers)==null?void 0:h.some(N=>N.kind===n.SyntaxKind.PrivateKeyword))||!1}}let l={name:t,superClassName:s,implementations:i,properties:a,methods:r};b(`Define class: ${f(e.name)}`),O.set(t,l)}function Re(e){var w,m,D,S;let t=f(e.name);if(!t)return;let s=((m=(w=e.heritageClauses)==null?void 0:w.find(u=>u.token===n.SyntaxKind.ExtendsKeyword))==null?void 0:m.types.map(u=>f(u.expression)))||[],i=[],a=[],r;for(let u of e.members)n.isPropertySignature(u)?i.push({name:f(u.name),isOptional:u.questionToken!==void 0,type:g(u),isPrivate:((D=u.modifiers)==null?void 0:D.some(T=>T.kind===n.SyntaxKind.PrivateKeyword))||!1}):n.isMethodSignature(u)?a.push({name:u.name.text,returnType:g(u),isPrivate:((S=u.modifiers)==null?void 0:S.some(T=>T.kind===n.SyntaxKind.PrivateKeyword))||!1,args:u.parameters.map(T=>({name:f(T.name),type:g(T),isOptional:T.questionToken!==void 0}))}):n.isIndexSignatureDeclaration(u)&&(r=g(u));let l=K.get(t);l?(l.implementations=q(l.implementations||[],s),l.methods=q(l.methods||[],a,(u,T)=>u.name===T.name),l.properties=q(l.properties||[],i,(u,T)=>u.name===T.name),l.indexElementType=r,b(`Merge interface ${f(e.name)}`)):(l={name:t,implementations:s,methods:a,properties:i,indexElementType:r},K.set(t,l),b(`Define interface ${f(e.name)}`))}function xe(e){let t=f(e.name);t&&(U.set(t,{name:t,members:e.members.map(s=>({name:f(s.name),initializer:f(s.initializer)}))}),b(`Define enum: ${f(e.name)}`))}function be(e){b(`Define typeAlias: ${f(e.name)}`),M.set(f(e.name),g(e))}function Ee(e){let t=e.parent.parent;n.isVariableDeclaration(t)&&t.initializer&&n.isAsExpression(t.initializer)&&B.set(f(t.name),ae(t.initializer.expression))}function ae(e){return n.isArrayLiteralExpression(e)?Se(e):n.isObjectLiteralExpression(e)?_e(e):n.isNumericLiteral(e)?"number":n.isStringLiteral(e)?"string":n.isBigIntLiteral(e)?"bigint":[n.SyntaxKind.TrueKeyword,n.SyntaxKind.FalseKeyword].includes(e.kind)?"boolean":P}function Se(e){let t=[];return e.elements.forEach(s=>{if(n.isStringLiteral(s))return t.push(f(s))}),t.length===0?P:t.length===1?t[0]:{unionMembers:t}}function _e(e){let t=[];return e.properties.map(s=>{n.isPropertyAssignment(s)?t.push({name:f(s.name),type:ae(s.initializer)}):b(`unsupported property: ${s.name}`)}),{typeLiteralMembers:t}}function oe(e){$.add(e)}function g(e,t=!1){if(e.type&&!t)return _(e.type);if(!C)return console.error("TypeChecker not initialized!"),P;let s=C.getTypeAtLocation(e),i=C.typeToTypeNode(s,void 0,void 0);return i?_("type"in i?i.type:i):P}function _(e){let t={};if(e===void 0)return P;if(n.isUnionTypeNode(e))t.unionMembers=e.types.map(_);else if(n.isIntersectionTypeNode(e))t.intersectionMembers=e.types.map(_);else if(n.isLiteralTypeNode(e))t.literalValue=f(e.literal);else if(n.isTypeLiteralNode(e)){let s=[];e.members.forEach(i=>{n.isPropertySignature(i)?s.push({name:f(i.name),isOptional:i.questionToken!==void 0,type:g(i)}):n.isIndexSignatureDeclaration(i)?t.indexElementType=g(i):s.push({name:f(i.name)||"",isOptional:i.questionToken!==void 0,type:_()})}),t.typeLiteralMembers=s}else if(n.isArrayTypeNode(e))t.arrayElementType=_(e.elementType);else if(n.isFunctionTypeNode(e))t.isFunction=!0;else if(n.isTypeReferenceNode(e))if(oe(f(e.typeName)),e.typeArguments)t.generics=[f(e.typeName),...e.typeArguments.map(s=>_(s))];else return f(e.typeName);else{if(n.isIndexedAccessTypeNode(e))return g(e,!0);if(n.isThisTypeNode(e))return g(e);if(n.isParenthesizedTypeNode(e))return g(e);if(n.isConditionalTypeNode(e))return g(e);if(n.isTypeQueryNode(e))return g(e);if(n.isConstructorTypeNode(e))t.isConstructor=!0;else if(n.isTupleTypeNode(e))t.tupleMembers=e.elements.map(_);else{if(Object.keys(X).includes(String(e.kind)))return X[e.kind]||P;if(n.isOptionalTypeNode(e))Object.assign(t,g(e)),t.isOptionalInTuple=!0;else if(n.isNamedTupleMember(e))Object.assign(t,g(e));else return n.isTypeOperatorNode(e)&&e.operator===n.SyntaxKind.KeyOfKeyword,g(e,!0)}}return t}var q=(e,t,s)=>[...(e==null?void 0:e.filter(i=>!(t!=null&&t.some(a=>(s||(()=>a===i))(a,i)))))||[],...t||[]];function V(e){if(e!==void 0&&e!==P)return typeof e=="string"?$.has(e)?e:void 0:e}function Ke(e){var t,s;(t=e.methods)==null||t.forEach(ce),(s=e.properties)==null||s.forEach(fe)}function Ne(e){var t,s;(t=e.methods)==null||t.forEach(ce),(s=e.properties)==null||s.forEach(fe)}function fe(e){e.type=V(e.type)}function ce(e){var t;(t=e.args)==null||t.forEach(s=>s.type=V(s.type)),e.returnType=V(e.returnType)}function f(e){if(!e)return e;if(e.end<0)return e.text;try{return n.isQualifiedName(e)?f(e.right):e.getText()}catch(t){return e.text}}function J(e){e&&Object.entries(e).forEach(t=>{let[s,i]=t;i instanceof Array&&i.length===0||i===!1||i===void 0?delete e[s]:i.constructor===Array?i.forEach(J):i.constructor===Object&&J(i)})}function Pe(e){for(let t of e.values())J(t)}function Oe(e,t){return t?(t=t instanceof Array?t:[t],t.some(s=>(s instanceof RegExp||(s=new RegExp(s.replace(/\./g,"\\.").replace(/\*/g,".*"))),e.match(s)))):!1}function Z(e,t=L.cwd()){return ee(e).replace(ee(t)+"/","")}function ee(e){let t=x.sep;return e.split(t).join("/")}function le(e){return e instanceof Array?e:[e]}function b(e){De&&console.log(e)}function Q(e,t){let s=a=>{let r=e.replace(/\\/g,"/"),l=a.replace(/\\/g,"/");l=l.replace(/\*\*/g,"<<double_star>>");let m=l.replace(/([.+^${}()|[\]\\])/g,"\\$1").replace(/<<double_star>>/g,".*").replace(/\*/g,"[^/]*");return!a.startsWith("/")&&!a.startsWith("*")&&(m=".*"+m),m="^"+m+"$",new RegExp(m).test(r)};return(t instanceof Array?t:[t]).some(s)}function W(e){let{sourcePaths:t,exclude:s,forEnabledClassOnly:i}=e;if(!t)throw new Error("need provide source paths for reflect loader");let{classDefinitions:a,interfaceDefinitions:r,enumDefinitions:l,typeAliasDefinitions:w}=I(t,s),m=[],D=[];function S(y){let o=a.get(y),d=[];return o?(o.superClassName&&d.push(o.superClassName),d.push(...o.implementations||[])):(o=r.get(y),o?d.push(...o.implementations||[]):(o=w.get(y),o&&d.push(...o.implementations||[]))),d.flatMap(h=>[h,...S(h)])||[]}function u(y,o){return S(y.name).includes(o)}function T(y){if(j.default.isClassDeclaration(y)&&y.name!==void 0){let o=y.name.text,d=a.get(o);if(!o||!d||i&&!u(d,"EnableReflect"))return;D.push(`Reflect.__classDef = Object.assign(Reflect.__classDef || {}, { ${o} })`);return}y.forEachChild(T)}function k(){let y=[];return a.forEach((o,d)=>{i&&!u(o,"EnableReflect")||y.push(`Reflect.__classes = Object.assign(Reflect.__classes || {}, { ${d}: ${JSON.stringify(o)} })`)}),r.forEach((o,d)=>{i&&!u(o,"EnableReflect")||y.push(`Reflect.__interfaces = Object.assign(Reflect.__interfaces || {}, { ${d}: ${JSON.stringify(o)} })`)}),l.forEach((o,d)=>{y.push(`Reflect.__enums = Object.assign(Reflect.__enums || {}, { ${d}: ${JSON.stringify(o)} })`)}),w.forEach((o,d)=>{y.push(`Reflect.__typeAliases = Object.assign(Reflect.__typeAliases || {}, { ${d}: ${JSON.stringify(o)} })`)}),y.join(`
|
|
2
|
+
`)}return{outputAllMetas:k,transform:(y,o)=>{let d=(typeof t=="string"?[t]:t).map(h=>h+"/**.ts");if(Q(o,d))try{let h=j.default.createSourceFile(o,y,j.default.ScriptTarget.Latest,!1);return m.length=0,D.length=0,T(h),`${m.join(";")};${y};${D.join(";")}`}catch(h){return console.error(`[reflect-parser-plugin] Error processing ${o}:`,h),null}}}}var Ae=process.cwd().replace(/\\/g,"/")+"/";function Me(e){let t=W(e);return{name:"reflect-parser-plugin",enforce:"pre",transform:(s,i)=>(i=i.replace(Ae,""),i===e.entry?`${t.outputAllMetas()}
|
|
3
|
+
${s}`:t.transform(s,i))}}0&&(module.exports={parseSource,reflectLoader,reflectParserPlugin,setupReflectTypes,updateReflectModules});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-ref-kit",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "Type reflection and validation library for TypeScript",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
"types": "./types/index.d.ts"
|
|
17
17
|
},
|
|
18
18
|
"./parser": {
|
|
19
|
-
"import": "./dist/parser/
|
|
19
|
+
"import": "./dist/parser/reflect-parser.js",
|
|
20
20
|
"types": "./types/parser/index.d.ts"
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
"scripts": {
|
|
24
|
-
"
|
|
24
|
+
"build-dts": "rm -rf types/* && tsc --emitDeclarationOnly --outDir types",
|
|
25
25
|
"build": "node esbuild.config.js",
|
|
26
26
|
"build-parser": "node esbuild.parser.config.js"
|
|
27
27
|
},
|