@fern-api/go-dynamic-snippets 0.0.18 → 0.0.19
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/cjs/DynamicSnippetsGenerator.cjs +6 -6
- package/cjs/DynamicSnippetsGenerator.cjs.map +1 -1
- package/cjs/DynamicSnippetsGenerator.d.cts +1 -1
- package/cjs/{DynamicSnippetsGeneratorContext-D8VcLYKk.d.cts → DynamicSnippetsGeneratorContext-X0Mtg6YW.d.cts} +1 -0
- package/cjs/EndpointSnippetGenerator.cjs +4 -4
- package/cjs/EndpointSnippetGenerator.cjs.map +1 -1
- package/cjs/EndpointSnippetGenerator.d.cts +1 -1
- package/cjs/context/DynamicSnippetsGeneratorContext.cjs +8 -8
- package/cjs/context/DynamicSnippetsGeneratorContext.cjs.map +1 -1
- package/cjs/context/DynamicSnippetsGeneratorContext.d.cts +1 -1
- package/cjs/context/DynamicTypeInstantiationMapper.cjs +1 -1
- package/cjs/context/DynamicTypeInstantiationMapper.cjs.map +1 -1
- package/cjs/context/DynamicTypeInstantiationMapper.d.cts +1 -1
- package/cjs/context/DynamicTypeMapper.cjs +4 -4
- package/cjs/context/DynamicTypeMapper.cjs.map +1 -1
- package/cjs/context/DynamicTypeMapper.d.cts +1 -1
- package/cjs/context/FilePropertyMapper.cjs +7 -7
- package/cjs/context/FilePropertyMapper.cjs.map +1 -1
- package/cjs/context/FilePropertyMapper.d.cts +1 -1
- package/cjs/index.cjs +7 -7
- package/cjs/index.cjs.map +1 -1
- package/cjs/index.d.cts +1 -1
- package/esm/DynamicSnippetsGenerator.d.ts +1 -1
- package/esm/DynamicSnippetsGenerator.js +1 -1
- package/esm/{DynamicSnippetsGeneratorContext-D8VcLYKk.d.ts → DynamicSnippetsGeneratorContext-X0Mtg6YW.d.ts} +1 -0
- package/esm/EndpointSnippetGenerator.d.ts +1 -1
- package/esm/EndpointSnippetGenerator.js +1 -1
- package/esm/{chunk-ZNTXZ3YV.js → chunk-5X6DU53C.js} +2 -2
- package/esm/{chunk-3Z2URLHB.js → chunk-EUHLPBOB.js} +2 -2
- package/esm/chunk-FVPD7ODP.js +2 -0
- package/esm/chunk-FVPD7ODP.js.map +1 -0
- package/esm/{chunk-MYN2HZVH.js → chunk-KGXOPYBU.js} +2 -2
- package/esm/chunk-NY6N4HP7.js +2 -0
- package/esm/chunk-NY6N4HP7.js.map +1 -0
- package/esm/{chunk-TXVHHFW3.js → chunk-S5R5YTLQ.js} +2 -2
- package/esm/chunk-T2DJJZPN.js +2 -0
- package/esm/chunk-T2DJJZPN.js.map +1 -0
- package/esm/{chunk-JHIUGKJ4.js → chunk-VY2BNRW5.js} +9 -9
- package/esm/chunk-VY2BNRW5.js.map +1 -0
- package/esm/context/DynamicSnippetsGeneratorContext.d.ts +1 -1
- package/esm/context/DynamicSnippetsGeneratorContext.js +1 -1
- package/esm/context/DynamicTypeInstantiationMapper.d.ts +1 -1
- package/esm/context/DynamicTypeInstantiationMapper.js +1 -1
- package/esm/context/DynamicTypeMapper.d.ts +1 -1
- package/esm/context/DynamicTypeMapper.js +1 -1
- package/esm/context/FilePropertyMapper.d.ts +1 -1
- package/esm/context/FilePropertyMapper.js +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.js +1 -1
- package/package.json +1 -1
- package/esm/chunk-B2A7QNZM.js +0 -2
- package/esm/chunk-B2A7QNZM.js.map +0 -1
- package/esm/chunk-DVDVP26D.js +0 -2
- package/esm/chunk-DVDVP26D.js.map +0 -1
- package/esm/chunk-JHIUGKJ4.js.map +0 -1
- package/esm/chunk-SVPRIX53.js +0 -2
- package/esm/chunk-SVPRIX53.js.map +0 -1
- /package/esm/{chunk-ZNTXZ3YV.js.map → chunk-5X6DU53C.js.map} +0 -0
- /package/esm/{chunk-3Z2URLHB.js.map → chunk-EUHLPBOB.js.map} +0 -0
- /package/esm/{chunk-MYN2HZVH.js.map → chunk-KGXOPYBU.js.map} +0 -0
- /package/esm/{chunk-TXVHHFW3.js.map → chunk-S5R5YTLQ.js.map} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import '@fern-api/browser-compatible-base-generator';
|
|
2
2
|
import '@fern-api/dynamic-ir-sdk';
|
|
3
3
|
import '@fern-api/go-ast';
|
|
4
|
-
export { D as DynamicSnippetsGeneratorContext } from '../DynamicSnippetsGeneratorContext-
|
|
4
|
+
export { D as DynamicSnippetsGeneratorContext } from '../DynamicSnippetsGeneratorContext-X0Mtg6YW.cjs';
|
|
@@ -23,7 +23,7 @@ ${this.buffer}`:t+this.buffer}stringifyImports(){let t=Object.entries(this.impor
|
|
|
23
23
|
${t}
|
|
24
24
|
)`:""}};var f={};$e(f,{Alias:()=>Z,AstNode:()=>d,CodeBlock:()=>_,Enum:()=>K,Field:()=>Q,File:()=>X,Func:()=>q,FuncInvocation:()=>b,IoReaderTypeReference:()=>Me,Method:()=>O,MethodInvocation:()=>$,MultiNode:()=>fe,Parameter:()=>ee,Pointer:()=>te,Selector:()=>ne,Struct:()=>re,TimeTypeReference:()=>ke,Type:()=>me,TypeDeclaration:()=>ie,TypeInstantiation:()=>N,TypeReference:()=>A,UuidTypeReference:()=>Se,Writer:()=>H,alias:()=>Vn,codeblock:()=>Yn,enum_:()=>Gn,field:()=>Wn,file:()=>jn,func:()=>zn,identifier:()=>Jn,invokeFunc:()=>Hn,invokeMethod:()=>Zn,method:()=>Kn,parameter:()=>Qn,pointer:()=>Xn,selector:()=>qn,struct:()=>er,switch_:()=>tr,typeDeclaration:()=>nr,typeReference:()=>rr});u();p();u();p();u();p();u();p();u();p();var d=class extends J{async toStringAsync({packageName:t,rootImportPath:e,importPath:n,customConfig:i,formatter:o}){let s=new le({packageName:t,rootImportPath:e,importPath:n,customConfig:i,formatter:o});return this.write(s),s.toStringAsync()}toString({packageName:t,rootImportPath:e,importPath:n,customConfig:i,formatter:o}){let s=new le({packageName:t,rootImportPath:e,importPath:n,customConfig:i,formatter:o});return this.write(s),s.toString()}};var I=class extends d{constructor({docs:e}={}){super();c(this,"docs");this.docs=e}write(e){this.docs!=null&&this.docs.split(`
|
|
25
25
|
`).forEach(n=>{e.writeLine(`// ${n}`)})}};var Z=class extends d{constructor({name:e,type:n,docs:i}){super();c(this,"name");c(this,"type");c(this,"docs");this.name=e,this.type=n,this.docs=i}write(e){e.writeNode(new I({docs:this.docs})),e.write("type "),e.write(this.name),e.write(" = "),e.writeNode(this.type)}};u();p();var _=class extends d{constructor(e){super();c(this,"arg");this.arg=e}write(e){return new S(this.arg).write(e)}};u();p();u();p();var D=class extends d{constructor(e){super();c(this,"name");this.name=e}write(e){e.write(this.name)}};u();p();u();p();u();p();function ae({writer:r,arguments_:t,multiline:e=!0}){let n=t.map(i=>i instanceof N&&N.isNop(i)?N.nil():i);if(n.length===0){r.write("()");return}if(e){Un({writer:r,arguments_:n});return}Ln({writer:r,arguments_:n})}function Un({writer:r,arguments_:t}){r.writeLine("("),r.indent();for(let e of t)e.write(r),r.writeLine(",");r.dedent(),r.write(")")}function Ln({writer:r,arguments_:t}){r.write("("),t.forEach((e,n)=>{n>0&&r.write(", "),e.write(r)}),r.write(")")}var b=class extends d{constructor({func:e,arguments_:n,multiline:i=!0}){super();c(this,"func");c(this,"arguments_");c(this,"multiline");this.func=e,this.arguments_=n,this.multiline=i}write(e){e.writeNode(this.func),ae({writer:e,arguments_:this.arguments_,multiline:this.multiline})}};u();p();u();p();function ht({writer:r,generics:t}){t.length!==0&&(r.write("["),t.forEach((e,n)=>{n>0&&r.write(", "),e!=null&&r.writeNode(e)}),r.write("]"))}var A=class extends d{constructor({name:e,importPath:n,generics:i}){super();c(this,"name");c(this,"importPath");c(this,"generics");this.name=e,this.importPath=n,this.generics=i}write(e){if(this.importPath==null||e.importPath===this.importPath){e.write(this.name);return}let n=e.addImport(this.importPath);e.write(`${n}.${this.name}`),this.generics!=null&&ht({writer:e,generics:this.generics})}};u();p();var $=class extends d{constructor({method:e,arguments_:n,on:i,multiline:o}){super();c(this,"on");c(this,"method");c(this,"arguments_");c(this,"multiline");this.on=i,this.method=e,this.arguments_=n,this.multiline=o}write(e){this.on.write(e),e.write("."),e.write(this.method),ae({writer:e,arguments_:this.arguments_,multiline:this.multiline})}};var Fn=new Set(["bool","date","dateTime","float64","int","int64","string","uuid"]),mt=new Set(["any","bytes","map","slice"]),N=class r extends d{constructor(e){super();c(this,"internalType");this.internalType=e}write(e){switch(this.internalType.type){case"any":this.writeAny({writer:e,value:this.internalType.value});break;case"bool":e.write(this.internalType.value.toString());break;case"bytes":e.write(`[]byte("${this.internalType.value}")`);break;case"date":case"dateTime":e.writeNode(Pn({writer:e,type:this.internalType}));break;case"enum":e.writeNode(this.internalType.typeReference);break;case"float64":e.write(this.internalType.value.toString());break;case"int":case"int64":e.write(this.internalType.value.toString());break;case"map":this.writeMap({writer:e,map:this.internalType});break;case"nil":e.write("nil");break;case"nop":break;case"optional":this.writeOptional({writer:e,type:this.internalType.value});break;case"reference":e.writeNode(this.internalType.value);break;case"slice":this.writeSlice({writer:e,slice:this.internalType});break;case"string":e.write(this.internalType.value.includes('"')||this.internalType.value.includes(`
|
|
26
|
-
`)?`\`${this.internalType.value}\``:`"${this.internalType.value}"`);break;case"struct":this.writeStruct({writer:e,struct:this.internalType});break;case"uuid":e.writeNode(Bn({value:this.internalType.value}));break;default:R(this.internalType)}}static any(e){return new this({type:"any",value:e})}static bool(e){return new this({type:"bool",value:e})}static bytes(e){return new this({type:"bytes",value:e})}static date(e){return new this({type:"date",value:e})}static dateTime(e){return new this({type:"dateTime",value:e})}static enum(e){return new this({type:"enum",typeReference:e})}static float64(e){return new this({type:"float64",value:e})}static int(e){return new this({type:"int",value:e})}static int64(e){return new this({type:"int64",value:e})}static map({keyType:e,valueType:n,entries:i}){return new this({type:"map",keyType:e,valueType:n,entries:i})}static nil(){return new this({type:"nil"})}static nop(){return new this({type:"nop"})}static optional(e){return this.isAlreadyOptional(e)?e:new this({type:"optional",value:e})}static reference(e){return new this({type:"reference",value:e})}static slice({valueType:e,values:n}){return new this({type:"slice",valueType:e,values:n})}static string(e){return new this({type:"string",value:e})}static struct({typeReference:e,fields:n}){return new this({type:"struct",typeReference:e,fields:n})}static structPointer({typeReference:e,fields:n,generics:i}){return new this({type:"optional",value:new this({type:"struct",typeReference:e,fields:n,generics:i})})}static uuid(e){return new this({type:"uuid",value:e})}static isNop(e){return e.internalType.type==="optional"?this.isNop(e.internalType.value):e.internalType.type==="nop"}writeAny({writer:e,value:n}){switch(typeof n){case"boolean":e.write(n.toString());return;case"string":e.write(n.includes('"')?`\`${n}\``:`"${n}"`);return;case"number":e.write(n.toString());return;case"object":if(n==null){e.write("nil");return}if(Array.isArray(n)){this.writeAnyArray({writer:e,value:n});return}this.writeAnyObject({writer:e,value:n});return;default:throw new Error(`Internal error; unsupported unknown type: ${typeof n}`)}}writeAnyArray({writer:e,value:n}){if(e.write("[]any"),n.length===0){e.write("{}");return}e.writeLine("{"),e.indent();for(let i of n)e.writeNode(r.any(i)),e.writeLine(",");e.dedent(),e.write("}")}writeAnyObject({writer:e,value:n}){e.write("map[string]any");let i=Object.entries(n);if(i.length===0){e.write("{}");return}e.writeLine("{"),e.indent();for(let[o,s]of i)e.write(`"${o}": `),e.writeNode(r.any(s)),e.writeLine(",");e.dedent(),e.write("}")}writeMap({writer:e,map:n}){e.write("map["),e.writeNode(n.keyType),e.write("]"),e.writeNode(n.valueType);let i=Mn({entries:n.entries});if(i.length===0){e.write("{}");return}e.writeLine("{"),e.indent();for(let o of i)o.key.write(e),e.write(": "),o.value.write(e),e.writeLine(",");e.dedent(),e.write("}")}writeOptional({writer:e,type:n}){if(Fn.has(n.internalType.type)){e.writeNode(_n({writer:e,type:n}));return}if(mt.has(n.internalType.type)){n.write(e);return}if(n.internalType.type==="enum"){e.writeNode(new $({on:n.internalType.typeReference,method:"Ptr",arguments_:[]}));return}e.write("&"),n.write(e)}static isAlreadyOptional(e){return e.internalType.type==="optional"||mt.has(e.internalType.type)}writeSlice({writer:e,slice:n}){e.write("[]"),e.writeNode(n.valueType);let i=$n({values:n.values});if(i.length===0){e.write("{}");return}e.writeLine("{"),e.indent();for(let o of i)o.write(e),e.writeLine(",");e.dedent(),e.write("}")}writeStruct({writer:e,struct:n}){e.writeNode(n.typeReference),n.generics!=null&&(e.write("["),n.generics.forEach((o,s)=>{s>0&&e.write(", "),e.writeNode(o)}),e.write("]"));let i=Dn({fields:n.fields});if(i.length===0){e.write("{}");return}e.writeLine("{"),e.indent();for(let o of i)e.write(`${o.name}: `),o.value.write(e),e.writeLine(",");e.dedent(),e.write("}")}};function _n({writer:r,type:t}){return new b({func:new A({name:Cn({type:t}),importPath:r.rootImportPath}),arguments_:[t]})}function Cn({type:r}){switch(r.internalType.type){case"bool":return"Bool";case"date":case"dateTime":return"Time";case"float64":return"Float64";case"int":return"Int";case"int64":return"Int64";case"string":return"String";case"uuid":return"UUID";default:return""}}function Pn({writer:r,type:t}){let e=t.type==="date"?"MustParseDate":"MustParseDateTime";return new b({func:new A({name:e,importPath:r.rootImportPath}),arguments_:[new _(`"${t.value}"`)]})}function Bn({value:r}){return new b({func:new A({name:"MustParse",importPath:"github.com/google/uuid"}),arguments_:[new _(`"${r}"`)]})}function Mn({entries:r}){return r.filter(t=>!N.isNop(t.key)&&!N.isNop(t.value))}function Dn({fields:r}){return r.filter(t=>!N.isNop(t.value))}function $n({values:r}){return r.filter(t=>!N.isNop(t))}var K=class r extends d{constructor({name:e,docs:n}){super();c(this,"name");c(this,"docs");c(this,"members",[]);c(this,"methods",[]);c(this,"constructor_");this.name=e,this.docs=n}addConstructor(e){this.constructor_=e}addMember(e){this.members.push(e)}addMethod(e){this.methods.push(e)}write(e){this.writeType({writer:e}),this.writeMembers({writer:e}),this.writeConstructor({writer:e}),this.writeMethods({writer:e})}writeType({writer:e}){e.writeNode(new I({docs:this.docs})),e.writeLine(`type ${this.name} string`)}writeMembers({writer:e}){if(this.members.length!==0){e.newLine(),e.writeLine("const ("),e.indent();for(let n of this.members)e.writeNode(new I({docs:n.docs})),e.writeNode(r.getMemberIdentifier({name:this.name,member:n})),e.write(" = "),e.writeNode(N.string(n.value)),e.newLine();e.dedent(),e.write(")")}}writeConstructor({writer:e}){this.constructor_!=null&&(e.newLine(),e.writeNode(this.constructor_))}writeMethods({writer:e}){e.newLine();for(let n of this.methods)e.newLine(),e.writeNode(n),e.newLine()}static getMemberIdentifier({name:e,member:n}){return new D(`${e}${n.name}`)}};u();p();var Q=class extends d{constructor({name:e,type:n,docs:i,tags:o}){super();c(this,"name");c(this,"type");c(this,"docs");c(this,"tags",[]);this.name=e,this.type=n,this.docs=i,this.tags=o!=null?o:[]}addTags(...e){this.tags.push(...e)}write(e){e.writeNode(new I({docs:this.docs})),e.write(`${this.name} `),this.type.write(e),this.writeTags({writer:e})}writeTags({writer:e}){this.tags.length!==0&&(e.write(" `"),this.tags.forEach((n,i)=>{i>0&&e.write(" "),e.write(`${n.name}:"${n.value}"`)}),e.write("`"))}};u();p();var X=class extends d{constructor({nodes:e}={nodes:[]}){super();c(this,"nodes");this.nodes=e!=null?e:[]}add(...e){this.nodes.push(...e)}write(e){for(let n of this.nodes)n.write(e)}};u();p();u();p();var O=class extends d{constructor({name:e,parameters:n,return_:i,body:o,docs:s,typeReference:l,multiline:h,receiver:y,pointerReceiver:w}){super();c(this,"parameters");c(this,"return_");c(this,"name");c(this,"body");c(this,"docs");c(this,"typeReference");c(this,"multiline");c(this,"receiver");c(this,"pointerReceiver");this.name=e,this.parameters=n,this.return_=i,this.body=o,this.docs=s,this.typeReference=l,this.multiline=h,this.receiver=y,this.pointerReceiver=w}write(e){var n;e.writeNode(new I({docs:this.docs})),e.write("func"),this.typeReference!=null&&this.writeReceiver({writer:e,typeReference:this.typeReference,receiver:this.receiver}),this.name!=null&&e.write(` ${this.name}`),ae({writer:e,arguments_:this.parameters,multiline:this.multiline}),this.return_!=null&&(e.write(" "),this.return_.length>1&&e.write("("),this.return_.forEach((i,o)=>{o>0&&e.write(", "),e.writeNode(i)}),this.return_.length>1&&e.write(")")),e.writeLine("{"),e.indent(),(n=this.body)==null||n.write(e),e.dedent(),e.writeNewLineIfLastLineNot(),e.write("}")}writeReceiver({writer:e,typeReference:n,receiver:i}){e.write(` (${this.getReceiverName({typeReference:n,receiver:i})} `),this.pointerReceiver&&e.write("*"),n.write(e),e.write(")")}getReceiverName({typeReference:e,receiver:n}){return n!=null?n:e.name.charAt(0).toLowerCase()}};var q=class extends d{constructor({name:e,parameters:n,return_:i,body:o,docs:s,multiline:l}){super();c(this,"func");this.func=new O({name:e,parameters:n,return_:i,body:o,docs:s,multiline:l})}get parameters(){return this.func.parameters}get return_(){return this.func.return_}get name(){return this.func.name}get body(){return this.func.body}get docs(){return this.func.docs}write(e){e.writeNode(this.func)}};u();p();var fe=class extends d{constructor({nodes:e}){super();c(this,"nodes");this.nodes=e}write(e){for(let n of this.nodes)e.newLine(),n.write(e),e.newLine()}};u();p();var ee=class extends d{constructor({name:e,type:n,docs:i}){super();c(this,"name");c(this,"type");c(this,"docs");this.name=e,this.type=n,this.docs=i}write(e){e.writeNode(new I({docs:this.docs})),e.write(`${this.name} `),this.type.write(e)}};u();p();var te=class extends d{constructor({node:e}){super();c(this,"node");this.node=e}write(e){e.write("*"),this.node.write(e)}};u();p();var ne=class extends d{constructor({on:e,selector:n}){super();c(this,"on");c(this,"selector");this.on=e,this.selector=n}write(e){e.writeNode(this.on),e.write("."),e.writeNode(this.selector)}};u();p();var re=class extends d{constructor({name:e,embeds:n,fields:i,docs:o}){super();c(this,"name");c(this,"embeds",[]);c(this,"fields",[]);c(this,"docs");c(this,"methods",[]);c(this,"constructor_");this.name=e,this.docs=o,this.embeds=n!=null?n:[],this.fields=i!=null?i:[]}addConstructor(e){this.constructor_=e}addField(...e){this.fields.push(...e)}addMethod(...e){this.methods.push(...e)}write(e){this.writeType({writer:e}),this.constructor_!=null&&(e.newLine(),e.newLine(),this.writeConstructor({writer:e,constructor:this.constructor_})),this.writeMethods({writer:e})}writeType({writer:e}){if(e.writeNode(new I({docs:this.docs})),this.name!=null?e.write(`type ${this.name} struct {`):e.write("struct{"),this.embeds.length===0&&this.fields.length===0){e.writeLine("}");return}e.newLine(),e.indent();for(let o of this.embeds)e.writeNode(o),e.newLine();let n=this.fields.filter(o=>this.isExported(o));for(let o of n)e.writeNode(o),e.newLine();let i=this.fields.filter(o=>!this.isExported(o));n.length>0&&i.length>0&&e.newLine();for(let o of i)e.writeNode(o),e.newLine();e.dedent(),e.write("}")}writeConstructor({writer:e,constructor:n}){n.name!=null?e.write(`func ${n.name}(`):e.write(`func New${this.name}(`),n.parameters.forEach((i,o)=>{o>0&&e.write(", "),e.writeNode(i)}),e.write(`) *${this.name} {`),e.newLine(),e.indent(),e.writeNode(n.body),e.writeNewLineIfLastLineNot(),e.dedent(),e.writeLine("}")}writeMethods({writer:e}){if(this.methods.length!==0){e.writeNewLineIfLastLineNot();for(let n of this.methods)e.newLine(),e.writeNode(n),e.newLine()}}isExported(e){let n=e.name.charAt(0);return n===n.toUpperCase()}};u();p();var he=class extends d{constructor({on:e,cases:n,default:i}){super();c(this,"on");c(this,"cases");c(this,"default");this.on=e,this.cases=n,this.default=i}write(e){let n=this.cases;this.default!=null&&n.push({on:new D("default"),body:this.default}),e.write("switch "),e.writeNode(this.on),e.writeLine("{"),e.indent();for(let i of n)e.write("case "),e.writeNode(i.on),e.writeLine(":"),e.indent(),e.writeNode(i.body),e.dedent(),e.writeNewLineIfLastLineNot();e.dedent(),e.write("}")}};u();p();var On=new Set(["any","bytes","map","slice"]),me=class r extends d{constructor(e){super();c(this,"internalType");this.internalType=e}write(e,{comment:n}={}){switch(this.internalType.type){case"any":e.write("any");break;case"bool":e.write("bool");break;case"bytes":e.write("[]byte");break;case"date":case"dateTime":e.writeNode(ke);break;case"error":e.write("error");break;case"float64":e.write("float64");break;case"int":e.write("int");break;case"int64":e.write("int64");break;case"map":{e.write("map["),this.internalType.keyType.write(e),e.write("]"),this.internalType.valueType.write(e);break}case"optional":{e.write("*"),this.internalType.value.write(e);break}case"reference":e.writeNode(this.internalType.value);break;case"slice":e.write("[]"),this.internalType.value.write(e);break;case"string":e.write("string");break;case"uuid":e.writeNode(Se);break;case"variadic":e.write("..."),this.internalType.value.write(e);break;default:R(this.internalType)}}isOptional(){return this.internalType.type==="optional"}isIterable(){return this.internalType.type==="slice"||this.internalType.type==="variadic"}iterableElement(){if(this.internalType.type==="slice"||this.internalType.type==="variadic")return this.internalType.value}underlying(){return this.internalType.type==="optional"?this.internalType.value:this}static any(){return new this({type:"any"})}static bool(){return new this({type:"bool"})}static bytes(){return new this({type:"bytes"})}static date(){return new this({type:"date"})}static dateTime(){return new this({type:"dateTime"})}static dereference(e){return e.internalType.type==="optional"?e.internalType.value:e}static error(){return new this({type:"error"})}static float64(){return new this({type:"float64"})}static int(){return new this({type:"int"})}static int64(){return new this({type:"int64"})}static map(e,n){return new this({type:"map",keyType:e,valueType:n})}static optional(e){return this.isAlreadyOptional(e)?e:new this({type:"optional",value:e})}static pointer(e){return r.optional(e)}static reference(e){return new this({type:"reference",value:e})}static slice(e){return new this({type:"slice",value:e})}static string(){return new this({type:"string"})}static uuid(){return new this({type:"uuid"})}static variadic(e){return this.isAlreadyVariadic(e)?e:new this({type:"variadic",value:e})}static isAlreadyOptional(e){return e.internalType.type==="optional"||On.has(e.internalType.type)}static isAlreadyVariadic(e){return e.internalType.type==="variadic"}},ke=new A({importPath:"time",name:"Time"}),Se=new A({importPath:"github.com/google/uuid",name:"UUID"}),Me=new A({importPath:"io",name:"Reader"});u();p();var ie=class extends d{constructor({name:e,type:n,docs:i}){super();c(this,"name");c(this,"type");c(this,"docs");this.name=e,this.type=n,this.docs=i}write(e){e.writeNode(new I({docs:this.docs})),e.write("type "),e.write(this.name),e.write(" "),e.writeNode(this.type)}};function Vn(r){return new Z(r)}function Yn(r){return new _(r)}function Gn(r){return new K(r)}function Wn(r){return new Q(r)}function jn(r={}){return new X(r)}function zn(r){return new q(r)}function Jn(r){return new D(r)}function Hn(r){return new b(r)}function Zn(r){return new $(r)}function Kn(r){return new O(r)}function Qn(r){return new ee(r)}function Xn(r){return new te(r)}function qn(r){return new ne(r)}function er(r={}){return new re(r)}function tr(r){return new he(r)}function nr(r){return new ie(r)}function rr(r){return new A(r)}var De=class{constructor({context:t}){c(this,"context");this.context=t}convert(t){if(t.value===null&&!this.context.isNullable(t.typeReference)&&this.context.errors.add({severity:G.Critical,message:"Expected non-null value, but got null"}),t.value==null)return f.TypeInstantiation.nop();switch(t.typeReference.type){case"list":return this.convertList({list:t.typeReference.value,value:t.value});case"literal":return f.TypeInstantiation.nop();case"map":return this.convertMap({map:t.typeReference,value:t.value});case"named":{let e=this.context.resolveNamedType({typeId:t.typeReference.value});return e==null?f.TypeInstantiation.nop():this.convertNamed({named:e,value:t.value,as:t.as})}case"nullable":{let e=t.typeReference.value;if(e.type==="named"){let n=this.context.resolveNamedType({typeId:e.value});if((n==null?void 0:n.type)==="alias"&&["list","set","map"].includes(n.typeReference.type)){let i=this.convert({typeReference:n.typeReference,value:t.value,as:t.as}),o=this.context.getTypeName(n.declaration.name),s=this.context.getImportPath(n.declaration.fernFilepath);return this.reconstructAliasCollectionLiteral({collectionLiteral:i,aliasName:o,aliasImportPath:s})}}return f.TypeInstantiation.optional(this.convert({typeReference:e,value:t.value,as:t.as}))}case"optional":{let e=t.typeReference.value;if(e.type==="named"){let n=this.context.resolveNamedType({typeId:e.value});if((n==null?void 0:n.type)==="alias"&&["list","set","map"].includes(n.typeReference.type)){let i=this.convert({typeReference:n.typeReference,value:t.value,as:t.as}),o=this.context.getTypeName(n.declaration.name),s=this.context.getImportPath(n.declaration.fernFilepath);return this.reconstructAliasCollectionLiteral({collectionLiteral:i,aliasName:o,aliasImportPath:s})}}return f.TypeInstantiation.optional(this.convert({typeReference:e,value:t.value,as:t.as}))}case"primitive":return this.convertPrimitive({primitive:t.typeReference.value,value:t.value,as:t.as});case"set":return this.convertList({list:t.typeReference.value,value:t.value});case"unknown":return this.convertUnknown({value:t.value});default:R(t.typeReference)}}convertToPointerIfPossible(t){let e=this.convert(t);switch(t.typeReference.type){case"named":{let n=this.context.resolveNamedType({typeId:t.typeReference.value});return(n==null?void 0:n.type)==="enum"?f.TypeInstantiation.reference(f.invokeMethod({on:e,method:"Ptr",arguments_:[]})):e}default:return e}}convertList({list:t,value:e}){return Array.isArray(e)?f.TypeInstantiation.slice({valueType:this.context.dynamicTypeMapper.convert({typeReference:t}),values:e.map((n,i)=>{this.context.errors.scope({index:i});try{return this.convert({typeReference:t,value:n})}finally{this.context.errors.unscope()}})}):(this.context.errors.add({severity:G.Critical,message:`Expected array but got: ${typeof e}`}),f.TypeInstantiation.nop())}convertMap({map:t,value:e}){return typeof e!="object"||e==null?(this.context.errors.add({severity:G.Critical,message:`Expected object but got: ${e==null?"null":typeof e}`}),f.TypeInstantiation.nop()):f.TypeInstantiation.map({keyType:this.context.dynamicTypeMapper.convert({typeReference:t.key}),valueType:this.context.dynamicTypeMapper.convert({typeReference:t.value}),entries:Object.entries(e).map(([n,i])=>{this.context.errors.scope(n);try{return{key:this.convert({typeReference:t.key,value:n,as:"key"}),value:this.convert({typeReference:t.value,value:i})}}finally{this.context.errors.unscope()}})})}convertNamed({named:t,value:e,as:n}){switch(t.type){case"alias":return this.convertAlias({aliasType:t,value:e,as:n});case"discriminatedUnion":return this.convertDiscriminatedUnion({discriminatedUnion:t,value:e});case"enum":return this.convertEnum({enum_:t,value:e});case"object":return this.convertObject({object_:t,value:e});case"undiscriminatedUnion":return this.convertUndiscriminatedUnion({undiscriminatedUnion:t,value:e});default:R(t)}}convertAlias({aliasType:t,value:e,as:n}){switch(t.typeReference.type){case"literal":return f.TypeInstantiation.reference(f.invokeFunc({func:f.typeReference({name:this.context.getTypeName(t.declaration.name),importPath:this.context.getImportPath(t.declaration.fernFilepath)}),arguments_:[this.convertLiteralValue(t.typeReference.value)]}));default:return this.convert({typeReference:t.typeReference,value:e,as:n})}}reconstructAliasCollectionLiteral({collectionLiteral:t,aliasName:e,aliasImportPath:n}){let i=t.internalType;return i.type==="slice"?f.TypeInstantiation.reference(f.codeblock(o=>{o.write("&"),o.writeNode(f.typeReference({name:e,importPath:n}));let s=i.values;if(s.length===0){o.write("{}");return}o.writeLine("{"),o.indent();for(let l of s)o.writeNode(l),o.writeLine(",");o.dedent(),o.write("}")})):i.type==="map"?f.TypeInstantiation.reference(f.codeblock(o=>{o.write("&"),o.writeNode(f.typeReference({name:e,importPath:n}));let s=i.entries;if(s.length===0){o.write("{}");return}o.writeLine("{"),o.indent();for(let l of s)o.writeNode(l.key),o.write(": "),o.writeNode(l.value),o.writeLine(",");o.dedent(),o.write("}")})):f.TypeInstantiation.reference(f.codeblock(o=>{o.write("&"),o.writeNode(t)}))}convertLiteralValue(t){switch(t.type){case"boolean":return f.TypeInstantiation.bool(t.value);case"string":return f.TypeInstantiation.string(t.value);default:R(t)}}convertDiscriminatedUnion({discriminatedUnion:t,value:e}){let n=this.context.getGoTypeReferenceFromDeclaration({declaration:t.declaration}),i=this.context.resolveDiscriminatedUnionTypeInstance({discriminatedUnion:t,value:e});if(i==null)return f.TypeInstantiation.nop();let o=i.singleDiscriminatedUnionType,s=this.getBaseFields({discriminatedUnionTypeInstance:i,singleDiscriminatedUnionType:o});switch(o.type){case"samePropertiesAsObject":{let l=this.context.resolveNamedType({typeId:o.typeId});return l==null?f.TypeInstantiation.nop():f.TypeInstantiation.structPointer({typeReference:n,fields:[{name:this.context.getTypeName(o.discriminantValue.name),value:this.convertNamed({named:l,value:i.value})},...s]})}case"singleProperty":{let l=this.context.getRecord(i.value);if(l==null)return f.TypeInstantiation.nop();try{return this.context.errors.scope(o.discriminantValue.wireValue),f.TypeInstantiation.structPointer({typeReference:n,fields:[{name:this.context.getTypeName(o.discriminantValue.name),value:this.convert({typeReference:o.typeReference,value:l[o.discriminantValue.wireValue]})},...s]})}finally{this.context.errors.unscope()}}case"noProperties":return f.TypeInstantiation.structPointer({typeReference:n,fields:[{name:this.context.getTypeName(i.discriminantValue.name),value:f.TypeInstantiation.string(o.discriminantValue.wireValue)},...s]});default:R(o)}}getBaseFields({discriminatedUnionTypeInstance:t,singleDiscriminatedUnionType:e}){var i,o;return this.context.associateByWireValue({parameters:(i=e.properties)!=null?i:[],values:(o=this.context.getRecord(t.value))!=null?o:{},ignoreMissingParameters:!0}).map(s=>{this.context.errors.scope(s.name.wireValue);try{return{name:this.context.getTypeName(s.name.name),value:this.convert(s)}}finally{this.context.errors.unscope()}})}convertObject({object_:t,value:e}){var i;let n=this.context.associateByWireValue({parameters:t.properties,values:(i=this.context.getRecord(e))!=null?i:{}});return f.TypeInstantiation.structPointer({typeReference:f.typeReference({name:this.context.getTypeName(t.declaration.name),importPath:this.context.getImportPath(t.declaration.fernFilepath)}),fields:n.map(o=>{this.context.errors.scope(o.name.wireValue);try{return{name:this.context.getTypeName(o.name.name),value:this.convert(o)}}finally{this.context.errors.unscope()}})})}convertEnum({enum_:t,value:e}){let n=this.getEnumValueName({enum_:t,value:e});return n==null?f.TypeInstantiation.nop():f.TypeInstantiation.enum(f.typeReference({name:n,importPath:this.context.getImportPath(t.declaration.fernFilepath)}))}getEnumValueName({enum_:t,value:e}){if(typeof e!="string"){this.context.errors.add({severity:G.Critical,message:`Expected enum value string, got: ${typeof e}`});return}let n=t.values.find(i=>i.wireValue===e);if(n==null){this.context.errors.add({severity:G.Critical,message:`An enum value named "${e}" does not exist in this context`});return}return`${this.context.getTypeName(t.declaration.name)}${this.context.getTypeName(n.name)}`}convertUndiscriminatedUnion({undiscriminatedUnion:t,value:e}){let n=this.findMatchingUndiscriminatedUnionType({undiscriminatedUnion:t,value:e});if(n==null)return f.TypeInstantiation.nop();let i=this.getUndiscriminatedUnionFieldName({typeReference:n.valueTypeReference});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.structPointer({typeReference:this.context.getGoTypeReferenceFromDeclaration({declaration:t.declaration}),fields:[{name:i,value:n.typeInstantiation}]})}findMatchingUndiscriminatedUnionType({undiscriminatedUnion:t,value:e}){for(let n of t.types)try{let i=this.convert({typeReference:n,value:e});return{valueTypeReference:n,typeInstantiation:i}}catch(i){continue}this.context.errors.add({severity:G.Critical,message:`None of the types in the undiscriminated union matched the given "${typeof e}" value`})}getUndiscriminatedUnionFieldName({typeReference:t}){switch(t.type){case"list":return this.getUndiscriminatedUnionFieldNameForList({list:t});case"literal":return this.getUndiscriminatedUnionFieldNameForLiteral({literal:t.value});case"map":return this.getUndiscriminatedUnionFieldNameForMap({map:t});case"named":{let e=this.context.resolveNamedType({typeId:t.value});return e==null?void 0:this.context.getTypeName(e.declaration.name)}case"optional":return this.getUndiscriminatedUnionFieldNameForOptional({typeReference:t});case"nullable":return this.getUndiscriminatedUnionFieldNameForOptional({typeReference:t});case"primitive":return this.getUndiscriminatedUnionFieldNameForPrimitive({primitive:t.value});case"set":return this.getUndiscriminatedUnionFieldNameForSet({set:t});case"unknown":return"Unknown";default:R(t)}}getUndiscriminatedUnionFieldNameForList({list:t}){let e=this.getUndiscriminatedUnionFieldName({typeReference:t});if(e!=null)return`${e}List`}getUndiscriminatedUnionFieldNameForMap({map:t}){let e=this.getUndiscriminatedUnionFieldName({typeReference:t.key});if(e==null)return;let n=this.getUndiscriminatedUnionFieldName({typeReference:t.value});if(n!=null)return`${e}${n}Map`}getUndiscriminatedUnionFieldNameForOptional({typeReference:t}){let e=this.getUndiscriminatedUnionFieldName({typeReference:t});if(e!=null)return`${e}Optional`}getUndiscriminatedUnionFieldNameForSet({set:t}){let e=this.getUndiscriminatedUnionFieldName({typeReference:t});if(e!=null)return`${e}Set`}getUndiscriminatedUnionFieldNameForLiteral({literal:t}){switch(t.type){case"boolean":return t.value?"TrueLiteral":"FalseLiteral";case"string":return`${t.value}StringLiteral`;default:R(t)}}getUndiscriminatedUnionFieldNameForPrimitive({primitive:t}){switch(t){case"INTEGER":case"UINT":return"Integer";case"LONG":case"UINT_64":return"Long";case"FLOAT":case"DOUBLE":return"Double";case"BOOLEAN":return"Boolean";case"BIG_INTEGER":case"STRING":return"String";case"UUID":return"Uuid";case"DATE":return"Date";case"DATE_TIME":return"DateTime";case"BASE_64":return"Base64";default:R(t)}}convertUnknown({value:t}){return f.TypeInstantiation.any(t)}convertPrimitive({primitive:t,value:e,as:n}){switch(t){case"INTEGER":case"UINT":{let i=this.getValueAsNumber({value:e,as:n});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.int(i)}case"LONG":case"UINT_64":{let i=this.getValueAsNumber({value:e,as:n});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.int64(i)}case"FLOAT":case"DOUBLE":{let i=this.getValueAsNumber({value:e,as:n});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.float64(i)}case"BOOLEAN":{let i=this.getValueAsBoolean({value:e,as:n});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.bool(i)}case"STRING":{let i=this.context.getValueAsString({value:e});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.string(i)}case"DATE":{let i=this.context.getValueAsString({value:e});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.date(i)}case"DATE_TIME":{let i=this.context.getValueAsString({value:e});if(i==null)return f.TypeInstantiation.nop();let o=this.normalizeDateTimeString(i);return f.TypeInstantiation.dateTime(o)}case"UUID":{let i=this.context.getValueAsString({value:e});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.uuid(i)}case"BASE_64":{let i=this.context.getValueAsString({value:e});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.bytes(i)}case"BIG_INTEGER":{let i=this.context.getValueAsString({value:e});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.string(i)}default:R(t)}}getValueAsNumber({value:t,as:e}){let n=e==="key"&&typeof t=="string"?Number(t):t;return this.context.getValueAsNumber({value:n})}getValueAsBoolean({value:t,as:e}){let n=e==="key"?typeof t=="string"?t==="true":t==="false"?!1:t:t;return this.context.getValueAsBoolean({value:n})}normalizeDateTimeString(t){return/^\d{4}-\d{2}-\d{2}$/.test(t)?`${t}T00:00:00Z`:/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(t)?`${t}Z`:t}};0&&(module.exports={DynamicTypeInstantiationMapper});
|
|
26
|
+
`)?`\`${this.internalType.value}\``:`"${this.internalType.value}"`);break;case"struct":this.writeStruct({writer:e,struct:this.internalType});break;case"uuid":e.writeNode(Bn({value:this.internalType.value}));break;default:R(this.internalType)}}static any(e){return new this({type:"any",value:e})}static bool(e){return new this({type:"bool",value:e})}static bytes(e){return new this({type:"bytes",value:e})}static date(e){return new this({type:"date",value:e})}static dateTime(e){return new this({type:"dateTime",value:e})}static enum(e){return new this({type:"enum",typeReference:e})}static float64(e){return new this({type:"float64",value:e})}static int(e){return new this({type:"int",value:e})}static int64(e){return new this({type:"int64",value:e})}static map({keyType:e,valueType:n,entries:i}){return new this({type:"map",keyType:e,valueType:n,entries:i})}static nil(){return new this({type:"nil"})}static nop(){return new this({type:"nop"})}static optional(e){return this.isAlreadyOptional(e)?e:new this({type:"optional",value:e})}static reference(e){return new this({type:"reference",value:e})}static slice({valueType:e,values:n}){return new this({type:"slice",valueType:e,values:n})}static string(e){return new this({type:"string",value:e})}static struct({typeReference:e,fields:n}){return new this({type:"struct",typeReference:e,fields:n})}static structPointer({typeReference:e,fields:n,generics:i}){return new this({type:"optional",value:new this({type:"struct",typeReference:e,fields:n,generics:i})})}static uuid(e){return new this({type:"uuid",value:e})}static isNop(e){return e.internalType.type==="optional"?this.isNop(e.internalType.value):e.internalType.type==="nop"}writeAny({writer:e,value:n}){switch(typeof n){case"boolean":e.write(n.toString());return;case"string":e.write(n.includes('"')?`\`${n}\``:`"${n}"`);return;case"number":e.write(n.toString());return;case"object":if(n==null){e.write("nil");return}if(Array.isArray(n)){this.writeAnyArray({writer:e,value:n});return}this.writeAnyObject({writer:e,value:n});return;default:throw new Error(`Internal error; unsupported unknown type: ${typeof n}`)}}writeAnyArray({writer:e,value:n}){if(e.write("[]any"),n.length===0){e.write("{}");return}e.writeLine("{"),e.indent();for(let i of n)e.writeNode(r.any(i)),e.writeLine(",");e.dedent(),e.write("}")}writeAnyObject({writer:e,value:n}){e.write("map[string]any");let i=Object.entries(n);if(i.length===0){e.write("{}");return}e.writeLine("{"),e.indent();for(let[o,s]of i)e.write(`"${o}": `),e.writeNode(r.any(s)),e.writeLine(",");e.dedent(),e.write("}")}writeMap({writer:e,map:n}){e.write("map["),e.writeNode(n.keyType),e.write("]"),e.writeNode(n.valueType);let i=Mn({entries:n.entries});if(i.length===0){e.write("{}");return}e.writeLine("{"),e.indent();for(let o of i)o.key.write(e),e.write(": "),o.value.write(e),e.writeLine(",");e.dedent(),e.write("}")}writeOptional({writer:e,type:n}){if(Fn.has(n.internalType.type)){e.writeNode(_n({writer:e,type:n}));return}if(mt.has(n.internalType.type)){n.write(e);return}if(n.internalType.type==="enum"){e.writeNode(new $({on:n.internalType.typeReference,method:"Ptr",arguments_:[]}));return}e.write("&"),n.write(e)}static isAlreadyOptional(e){return e.internalType.type==="optional"||mt.has(e.internalType.type)}writeSlice({writer:e,slice:n}){e.write("[]"),e.writeNode(n.valueType);let i=$n({values:n.values});if(i.length===0){e.write("{}");return}e.writeLine("{"),e.indent();for(let o of i)o.write(e),e.writeLine(",");e.dedent(),e.write("}")}writeStruct({writer:e,struct:n}){e.writeNode(n.typeReference),n.generics!=null&&(e.write("["),n.generics.forEach((o,s)=>{s>0&&e.write(", "),e.writeNode(o)}),e.write("]"));let i=Dn({fields:n.fields});if(i.length===0){e.write("{}");return}e.writeLine("{"),e.indent();for(let o of i)e.write(`${o.name}: `),o.value.write(e),e.writeLine(",");e.dedent(),e.write("}")}};function _n({writer:r,type:t}){return new b({func:new A({name:Cn({type:t}),importPath:r.rootImportPath}),arguments_:[t]})}function Cn({type:r}){switch(r.internalType.type){case"bool":return"Bool";case"date":case"dateTime":return"Time";case"float64":return"Float64";case"int":return"Int";case"int64":return"Int64";case"string":return"String";case"uuid":return"UUID";default:return""}}function Pn({writer:r,type:t}){let e=t.type==="date"?"MustParseDate":"MustParseDateTime";return new b({func:new A({name:e,importPath:r.rootImportPath}),arguments_:[new _(`"${t.value}"`)]})}function Bn({value:r}){return new b({func:new A({name:"MustParse",importPath:"github.com/google/uuid"}),arguments_:[new _(`"${r}"`)]})}function Mn({entries:r}){return r.filter(t=>!N.isNop(t.key)&&!N.isNop(t.value))}function Dn({fields:r}){return r.filter(t=>!N.isNop(t.value))}function $n({values:r}){return r.filter(t=>!N.isNop(t))}var K=class r extends d{constructor({name:e,docs:n}){super();c(this,"name");c(this,"docs");c(this,"members",[]);c(this,"methods",[]);c(this,"constructor_");this.name=e,this.docs=n}addConstructor(e){this.constructor_=e}addMember(e){this.members.push(e)}addMethod(e){this.methods.push(e)}write(e){this.writeType({writer:e}),this.writeMembers({writer:e}),this.writeConstructor({writer:e}),this.writeMethods({writer:e})}writeType({writer:e}){e.writeNode(new I({docs:this.docs})),e.writeLine(`type ${this.name} string`)}writeMembers({writer:e}){if(this.members.length!==0){e.newLine(),e.writeLine("const ("),e.indent();for(let n of this.members)e.writeNode(new I({docs:n.docs})),e.writeNode(r.getMemberIdentifier({name:this.name,member:n})),e.write(" = "),e.writeNode(N.string(n.value)),e.newLine();e.dedent(),e.write(")")}}writeConstructor({writer:e}){this.constructor_!=null&&(e.newLine(),e.writeNode(this.constructor_))}writeMethods({writer:e}){e.newLine();for(let n of this.methods)e.newLine(),e.writeNode(n),e.newLine()}static getMemberIdentifier({name:e,member:n}){return new D(`${e}${n.name}`)}};u();p();var Q=class extends d{constructor({name:e,type:n,docs:i,tags:o}){super();c(this,"name");c(this,"type");c(this,"docs");c(this,"tags",[]);this.name=e,this.type=n,this.docs=i,this.tags=o!=null?o:[]}addTags(...e){this.tags.push(...e)}write(e){e.writeNode(new I({docs:this.docs})),e.write(`${this.name} `),this.type.write(e),this.writeTags({writer:e})}writeTags({writer:e}){this.tags.length!==0&&(e.write(" `"),this.tags.forEach((n,i)=>{i>0&&e.write(" "),e.write(`${n.name}:"${n.value}"`)}),e.write("`"))}};u();p();var X=class extends d{constructor({nodes:e}={nodes:[]}){super();c(this,"nodes");this.nodes=e!=null?e:[]}add(...e){this.nodes.push(...e)}write(e){for(let n of this.nodes)n.write(e)}};u();p();u();p();var O=class extends d{constructor({name:e,parameters:n,return_:i,body:o,docs:s,typeReference:l,multiline:h,receiver:y,pointerReceiver:w}){super();c(this,"parameters");c(this,"return_");c(this,"name");c(this,"body");c(this,"docs");c(this,"typeReference");c(this,"multiline");c(this,"receiver");c(this,"pointerReceiver");this.name=e,this.parameters=n,this.return_=i,this.body=o,this.docs=s,this.typeReference=l,this.multiline=h,this.receiver=y,this.pointerReceiver=w}write(e){var n;e.writeNode(new I({docs:this.docs})),e.write("func"),this.typeReference!=null&&this.writeReceiver({writer:e,typeReference:this.typeReference,receiver:this.receiver}),this.name!=null&&e.write(` ${this.name}`),ae({writer:e,arguments_:this.parameters,multiline:this.multiline}),this.return_!=null&&(e.write(" "),this.return_.length>1&&e.write("("),this.return_.forEach((i,o)=>{o>0&&e.write(", "),e.writeNode(i)}),this.return_.length>1&&e.write(")")),e.writeLine("{"),e.indent(),(n=this.body)==null||n.write(e),e.dedent(),e.writeNewLineIfLastLineNot(),e.write("}")}writeReceiver({writer:e,typeReference:n,receiver:i}){e.write(` (${this.getReceiverName({typeReference:n,receiver:i})} `),this.pointerReceiver&&e.write("*"),n.write(e),e.write(")")}getReceiverName({typeReference:e,receiver:n}){return n!=null?n:e.name.charAt(0).toLowerCase()}};var q=class extends d{constructor({name:e,parameters:n,return_:i,body:o,docs:s,multiline:l}){super();c(this,"func");this.func=new O({name:e,parameters:n,return_:i,body:o,docs:s,multiline:l})}get parameters(){return this.func.parameters}get return_(){return this.func.return_}get name(){return this.func.name}get body(){return this.func.body}get docs(){return this.func.docs}write(e){e.writeNode(this.func)}};u();p();var fe=class extends d{constructor({nodes:e}){super();c(this,"nodes");this.nodes=e}write(e){for(let n of this.nodes)e.newLine(),n.write(e),e.newLine()}};u();p();var ee=class extends d{constructor({name:e,type:n,docs:i}){super();c(this,"name");c(this,"type");c(this,"docs");this.name=e,this.type=n,this.docs=i}write(e){e.writeNode(new I({docs:this.docs})),e.write(`${this.name} `),this.type.write(e)}};u();p();var te=class extends d{constructor({node:e}){super();c(this,"node");this.node=e}write(e){e.write("*"),this.node.write(e)}};u();p();var ne=class extends d{constructor({on:e,selector:n}){super();c(this,"on");c(this,"selector");this.on=e,this.selector=n}write(e){e.writeNode(this.on),e.write("."),e.writeNode(this.selector)}};u();p();var re=class extends d{constructor({name:e,embeds:n,fields:i,docs:o}){super();c(this,"name");c(this,"embeds",[]);c(this,"fields",[]);c(this,"docs");c(this,"methods",[]);c(this,"constructor_");this.name=e,this.docs=o,this.embeds=n!=null?n:[],this.fields=i!=null?i:[]}addConstructor(e){this.constructor_=e}addField(...e){this.fields.push(...e)}addMethod(...e){this.methods.push(...e)}write(e){this.writeType({writer:e}),this.constructor_!=null&&(e.newLine(),e.newLine(),this.writeConstructor({writer:e,constructor:this.constructor_})),this.writeMethods({writer:e})}writeType({writer:e}){if(e.writeNode(new I({docs:this.docs})),this.name!=null?e.write(`type ${this.name} struct {`):e.write("struct{"),this.embeds.length===0&&this.fields.length===0){e.writeLine("}");return}e.newLine(),e.indent();for(let o of this.embeds)e.writeNode(o),e.newLine();let n=this.fields.filter(o=>this.isExported(o));for(let o of n)e.writeNode(o),e.newLine();let i=this.fields.filter(o=>!this.isExported(o));n.length>0&&i.length>0&&e.newLine();for(let o of i)e.writeNode(o),e.newLine();e.dedent(),e.write("}")}writeConstructor({writer:e,constructor:n}){n.name!=null?e.write(`func ${n.name}(`):e.write(`func New${this.name}(`),n.parameters.forEach((i,o)=>{o>0&&e.write(", "),e.writeNode(i)}),e.write(`) *${this.name} {`),e.newLine(),e.indent(),e.writeNode(n.body),e.writeNewLineIfLastLineNot(),e.dedent(),e.writeLine("}")}writeMethods({writer:e}){if(this.methods.length!==0){e.writeNewLineIfLastLineNot();for(let n of this.methods)e.newLine(),e.writeNode(n),e.newLine()}}isExported(e){let n=e.name.charAt(0);return n===n.toUpperCase()}};u();p();var he=class extends d{constructor({on:e,cases:n,default:i}){super();c(this,"on");c(this,"cases");c(this,"default");this.on=e,this.cases=n,this.default=i}write(e){let n=this.cases;this.default!=null&&n.push({on:new D("default"),body:this.default}),e.write("switch "),e.writeNode(this.on),e.writeLine("{"),e.indent();for(let i of n)e.write("case "),e.writeNode(i.on),e.writeLine(":"),e.indent(),e.writeNode(i.body),e.dedent(),e.writeNewLineIfLastLineNot();e.dedent(),e.write("}")}};u();p();var On=new Set(["any","bytes","map","slice"]),me=class r extends d{constructor(e){super();c(this,"internalType");this.internalType=e}write(e,{comment:n}={}){switch(this.internalType.type){case"any":e.write("any");break;case"bool":e.write("bool");break;case"bytes":e.write("[]byte");break;case"date":case"dateTime":e.writeNode(ke);break;case"error":e.write("error");break;case"float64":e.write("float64");break;case"int":e.write("int");break;case"int64":e.write("int64");break;case"map":{e.write("map["),this.internalType.keyType.write(e),e.write("]"),this.internalType.valueType.write(e);break}case"optional":{e.write("*"),this.internalType.value.write(e);break}case"reference":e.writeNode(this.internalType.value);break;case"slice":e.write("[]"),this.internalType.value.write(e);break;case"string":e.write("string");break;case"uuid":e.writeNode(Se);break;case"variadic":e.write("..."),this.internalType.value.write(e);break;default:R(this.internalType)}}isOptional(){return this.internalType.type==="optional"}isIterable(){return this.internalType.type==="slice"||this.internalType.type==="variadic"}iterableElement(){if(this.internalType.type==="slice"||this.internalType.type==="variadic")return this.internalType.value}underlying(){return this.internalType.type==="optional"?this.internalType.value:this}static any(){return new this({type:"any"})}static bool(){return new this({type:"bool"})}static bytes(){return new this({type:"bytes"})}static date(){return new this({type:"date"})}static dateTime(){return new this({type:"dateTime"})}static dereference(e){return e.internalType.type==="optional"?e.internalType.value:e}static error(){return new this({type:"error"})}static float64(){return new this({type:"float64"})}static int(){return new this({type:"int"})}static int64(){return new this({type:"int64"})}static map(e,n){return new this({type:"map",keyType:e,valueType:n})}static optional(e){return this.isAlreadyOptional(e)?e:new this({type:"optional",value:e})}static pointer(e){return r.optional(e)}static reference(e){return new this({type:"reference",value:e})}static slice(e){return new this({type:"slice",value:e})}static string(){return new this({type:"string"})}static uuid(){return new this({type:"uuid"})}static variadic(e){return this.isAlreadyVariadic(e)?e:new this({type:"variadic",value:e})}static isAlreadyOptional(e){return e.internalType.type==="optional"||On.has(e.internalType.type)}static isAlreadyVariadic(e){return e.internalType.type==="variadic"}},ke=new A({importPath:"time",name:"Time"}),Se=new A({importPath:"github.com/google/uuid",name:"UUID"}),Me=new A({importPath:"io",name:"Reader"});u();p();var ie=class extends d{constructor({name:e,type:n,docs:i}){super();c(this,"name");c(this,"type");c(this,"docs");this.name=e,this.type=n,this.docs=i}write(e){e.writeNode(new I({docs:this.docs})),e.write("type "),e.write(this.name),e.write(" "),e.writeNode(this.type)}};function Vn(r){return new Z(r)}function Yn(r){return new _(r)}function Gn(r){return new K(r)}function Wn(r){return new Q(r)}function jn(r={}){return new X(r)}function zn(r){return new q(r)}function Jn(r){return new D(r)}function Hn(r){return new b(r)}function Zn(r){return new $(r)}function Kn(r){return new O(r)}function Qn(r){return new ee(r)}function Xn(r){return new te(r)}function qn(r){return new ne(r)}function er(r={}){return new re(r)}function tr(r){return new he(r)}function nr(r){return new ie(r)}function rr(r){return new A(r)}var De=class{constructor({context:t}){c(this,"context");this.context=t}convert(t){if(t.value===null&&!this.context.isNullable(t.typeReference)&&this.context.errors.add({severity:G.Critical,message:"Expected non-null value, but got null"}),t.value==null)return f.TypeInstantiation.nop();switch(t.typeReference.type){case"list":return this.convertList({list:t.typeReference.value,value:t.value});case"literal":return f.TypeInstantiation.nop();case"map":return this.convertMap({map:t.typeReference,value:t.value});case"named":{let e=this.context.resolveNamedType({typeId:t.typeReference.value});return e==null?f.TypeInstantiation.nop():this.convertNamed({named:e,value:t.value,as:t.as})}case"nullable":{let e=t.typeReference.value;if(e.type==="named"){let n=this.context.resolveNamedType({typeId:e.value});if((n==null?void 0:n.type)==="alias"&&["list","set","map"].includes(n.typeReference.type)){let i=this.convert({typeReference:n.typeReference,value:t.value,as:t.as}),o=this.context.getTypeName(n.declaration.name),s=this.context.getImportPath(n.declaration.fernFilepath);return this.reconstructAliasCollectionLiteral({collectionLiteral:i,aliasName:o,aliasImportPath:s})}}return f.TypeInstantiation.optional(this.convert({typeReference:e,value:t.value,as:t.as}))}case"optional":{let e=t.typeReference.value;if(e.type==="named"){let n=this.context.resolveNamedType({typeId:e.value});if((n==null?void 0:n.type)==="alias"&&["list","set","map"].includes(n.typeReference.type)){let i=this.convert({typeReference:n.typeReference,value:t.value,as:t.as}),o=this.context.getTypeName(n.declaration.name),s=this.context.getImportPath(n.declaration.fernFilepath);return this.reconstructAliasCollectionLiteral({collectionLiteral:i,aliasName:o,aliasImportPath:s})}}return f.TypeInstantiation.optional(this.convert({typeReference:e,value:t.value,as:t.as}))}case"primitive":return this.convertPrimitive({primitive:t.typeReference.value,value:t.value,as:t.as});case"set":return this.convertList({list:t.typeReference.value,value:t.value});case"unknown":return this.convertUnknown({value:t.value});default:R(t.typeReference)}}convertToPointerIfPossible(t){let e=this.convert(t);switch(t.typeReference.type){case"named":{let n=this.context.resolveNamedType({typeId:t.typeReference.value});return(n==null?void 0:n.type)==="enum"?f.TypeInstantiation.reference(f.invokeMethod({on:e,method:"Ptr",arguments_:[]})):e}default:return e}}convertList({list:t,value:e}){return Array.isArray(e)?f.TypeInstantiation.slice({valueType:this.context.dynamicTypeMapper.convert({typeReference:t}),values:e.map((n,i)=>{this.context.errors.scope({index:i});try{return this.convert({typeReference:t,value:n})}finally{this.context.errors.unscope()}})}):(this.context.errors.add({severity:G.Critical,message:`Expected array but got: ${typeof e}`}),f.TypeInstantiation.nop())}convertMap({map:t,value:e}){return typeof e!="object"||e==null?(this.context.errors.add({severity:G.Critical,message:`Expected object but got: ${e==null?"null":typeof e}`}),f.TypeInstantiation.nop()):f.TypeInstantiation.map({keyType:this.context.dynamicTypeMapper.convert({typeReference:t.key}),valueType:this.context.dynamicTypeMapper.convert({typeReference:t.value}),entries:Object.entries(e).map(([n,i])=>{this.context.errors.scope(n);try{return{key:this.convert({typeReference:t.key,value:n,as:"key"}),value:this.convert({typeReference:t.value,value:i})}}finally{this.context.errors.unscope()}})})}convertNamed({named:t,value:e,as:n}){switch(t.type){case"alias":return this.convertAlias({aliasType:t,value:e,as:n});case"discriminatedUnion":return this.convertDiscriminatedUnion({discriminatedUnion:t,value:e});case"enum":return this.convertEnum({enum_:t,value:e});case"object":return this.convertObject({object_:t,value:e});case"undiscriminatedUnion":return this.convertUndiscriminatedUnion({undiscriminatedUnion:t,value:e});default:R(t)}}convertAlias({aliasType:t,value:e,as:n}){switch(t.typeReference.type){case"literal":return f.TypeInstantiation.reference(f.invokeFunc({func:f.typeReference({name:this.context.getTypeName(t.declaration.name),importPath:this.context.getImportPath(t.declaration.fernFilepath)}),arguments_:[this.convertLiteralValue(t.typeReference.value)]}));default:return this.convert({typeReference:t.typeReference,value:e,as:n})}}reconstructAliasCollectionLiteral({collectionLiteral:t,aliasName:e,aliasImportPath:n}){let i=t.internalType;return i.type==="slice"?f.TypeInstantiation.reference(f.codeblock(o=>{o.write("&"),o.writeNode(f.typeReference({name:e,importPath:n}));let s=i.values;if(s.length===0){o.write("{}");return}o.writeLine("{"),o.indent();for(let l of s)o.writeNode(l),o.writeLine(",");o.dedent(),o.write("}")})):i.type==="map"?f.TypeInstantiation.reference(f.codeblock(o=>{o.write("&"),o.writeNode(f.typeReference({name:e,importPath:n}));let s=i.entries;if(s.length===0){o.write("{}");return}o.writeLine("{"),o.indent();for(let l of s)o.writeNode(l.key),o.write(": "),o.writeNode(l.value),o.writeLine(",");o.dedent(),o.write("}")})):f.TypeInstantiation.reference(f.codeblock(o=>{o.write("&"),o.writeNode(t)}))}convertLiteralValue(t){switch(t.type){case"boolean":return f.TypeInstantiation.bool(t.value);case"string":return f.TypeInstantiation.string(t.value);default:R(t)}}convertDiscriminatedUnion({discriminatedUnion:t,value:e}){let n=this.context.getGoTypeReferenceFromDeclaration({declaration:t.declaration}),i=this.context.resolveDiscriminatedUnionTypeInstance({discriminatedUnion:t,value:e});if(i==null)return f.TypeInstantiation.nop();let o=i.singleDiscriminatedUnionType,s=this.getBaseFields({discriminatedUnionTypeInstance:i,singleDiscriminatedUnionType:o});switch(o.type){case"samePropertiesAsObject":{let l=this.context.resolveNamedType({typeId:o.typeId});return l==null?f.TypeInstantiation.nop():f.TypeInstantiation.structPointer({typeReference:n,fields:[{name:this.context.getFieldName(o.discriminantValue.name),value:this.convertNamed({named:l,value:i.value})},...s]})}case"singleProperty":{let l=this.context.getRecord(i.value);if(l==null)return f.TypeInstantiation.nop();try{return this.context.errors.scope(o.discriminantValue.wireValue),f.TypeInstantiation.structPointer({typeReference:n,fields:[{name:this.context.getFieldName(o.discriminantValue.name),value:this.convert({typeReference:o.typeReference,value:l[o.discriminantValue.wireValue]})},...s]})}finally{this.context.errors.unscope()}}case"noProperties":return f.TypeInstantiation.structPointer({typeReference:n,fields:[{name:this.context.getFieldName(i.discriminantValue.name),value:f.TypeInstantiation.string(o.discriminantValue.wireValue)},...s]});default:R(o)}}getBaseFields({discriminatedUnionTypeInstance:t,singleDiscriminatedUnionType:e}){var i,o;return this.context.associateByWireValue({parameters:(i=e.properties)!=null?i:[],values:(o=this.context.getRecord(t.value))!=null?o:{},ignoreMissingParameters:!0}).map(s=>{this.context.errors.scope(s.name.wireValue);try{return{name:this.context.getFieldName(s.name.name),value:this.convert(s)}}finally{this.context.errors.unscope()}})}convertObject({object_:t,value:e}){var i;let n=this.context.associateByWireValue({parameters:t.properties,values:(i=this.context.getRecord(e))!=null?i:{}});return f.TypeInstantiation.structPointer({typeReference:f.typeReference({name:this.context.getTypeName(t.declaration.name),importPath:this.context.getImportPath(t.declaration.fernFilepath)}),fields:n.map(o=>{this.context.errors.scope(o.name.wireValue);try{return{name:this.context.getFieldName(o.name.name),value:this.convert(o)}}finally{this.context.errors.unscope()}})})}convertEnum({enum_:t,value:e}){let n=this.getEnumValueName({enum_:t,value:e});return n==null?f.TypeInstantiation.nop():f.TypeInstantiation.enum(f.typeReference({name:n,importPath:this.context.getImportPath(t.declaration.fernFilepath)}))}getEnumValueName({enum_:t,value:e}){if(typeof e!="string"){this.context.errors.add({severity:G.Critical,message:`Expected enum value string, got: ${typeof e}`});return}let n=t.values.find(i=>i.wireValue===e);if(n==null){this.context.errors.add({severity:G.Critical,message:`An enum value named "${e}" does not exist in this context`});return}return`${this.context.getTypeName(t.declaration.name)}${this.context.getTypeName(n.name)}`}convertUndiscriminatedUnion({undiscriminatedUnion:t,value:e}){let n=this.findMatchingUndiscriminatedUnionType({undiscriminatedUnion:t,value:e});if(n==null)return f.TypeInstantiation.nop();let i=this.getUndiscriminatedUnionFieldName({typeReference:n.valueTypeReference});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.structPointer({typeReference:this.context.getGoTypeReferenceFromDeclaration({declaration:t.declaration}),fields:[{name:i,value:n.typeInstantiation}]})}findMatchingUndiscriminatedUnionType({undiscriminatedUnion:t,value:e}){for(let n of t.types)try{let i=this.convert({typeReference:n,value:e});return{valueTypeReference:n,typeInstantiation:i}}catch(i){continue}this.context.errors.add({severity:G.Critical,message:`None of the types in the undiscriminated union matched the given "${typeof e}" value`})}getUndiscriminatedUnionFieldName({typeReference:t}){switch(t.type){case"list":return this.getUndiscriminatedUnionFieldNameForList({list:t});case"literal":return this.getUndiscriminatedUnionFieldNameForLiteral({literal:t.value});case"map":return this.getUndiscriminatedUnionFieldNameForMap({map:t});case"named":{let e=this.context.resolveNamedType({typeId:t.value});return e==null?void 0:this.context.getTypeName(e.declaration.name)}case"optional":return this.getUndiscriminatedUnionFieldNameForOptional({typeReference:t});case"nullable":return this.getUndiscriminatedUnionFieldNameForOptional({typeReference:t});case"primitive":return this.getUndiscriminatedUnionFieldNameForPrimitive({primitive:t.value});case"set":return this.getUndiscriminatedUnionFieldNameForSet({set:t});case"unknown":return"Unknown";default:R(t)}}getUndiscriminatedUnionFieldNameForList({list:t}){let e=this.getUndiscriminatedUnionFieldName({typeReference:t});if(e!=null)return`${e}List`}getUndiscriminatedUnionFieldNameForMap({map:t}){let e=this.getUndiscriminatedUnionFieldName({typeReference:t.key});if(e==null)return;let n=this.getUndiscriminatedUnionFieldName({typeReference:t.value});if(n!=null)return`${e}${n}Map`}getUndiscriminatedUnionFieldNameForOptional({typeReference:t}){let e=this.getUndiscriminatedUnionFieldName({typeReference:t});if(e!=null)return`${e}Optional`}getUndiscriminatedUnionFieldNameForSet({set:t}){let e=this.getUndiscriminatedUnionFieldName({typeReference:t});if(e!=null)return`${e}Set`}getUndiscriminatedUnionFieldNameForLiteral({literal:t}){switch(t.type){case"boolean":return t.value?"TrueLiteral":"FalseLiteral";case"string":return`${t.value}StringLiteral`;default:R(t)}}getUndiscriminatedUnionFieldNameForPrimitive({primitive:t}){switch(t){case"INTEGER":case"UINT":return"Integer";case"LONG":case"UINT_64":return"Long";case"FLOAT":case"DOUBLE":return"Double";case"BOOLEAN":return"Boolean";case"BIG_INTEGER":case"STRING":return"String";case"UUID":return"Uuid";case"DATE":return"Date";case"DATE_TIME":return"DateTime";case"BASE_64":return"Base64";default:R(t)}}convertUnknown({value:t}){return f.TypeInstantiation.any(t)}convertPrimitive({primitive:t,value:e,as:n}){switch(t){case"INTEGER":case"UINT":{let i=this.getValueAsNumber({value:e,as:n});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.int(i)}case"LONG":case"UINT_64":{let i=this.getValueAsNumber({value:e,as:n});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.int64(i)}case"FLOAT":case"DOUBLE":{let i=this.getValueAsNumber({value:e,as:n});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.float64(i)}case"BOOLEAN":{let i=this.getValueAsBoolean({value:e,as:n});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.bool(i)}case"STRING":{let i=this.context.getValueAsString({value:e});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.string(i)}case"DATE":{let i=this.context.getValueAsString({value:e});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.date(i)}case"DATE_TIME":{let i=this.context.getValueAsString({value:e});if(i==null)return f.TypeInstantiation.nop();let o=this.normalizeDateTimeString(i);return f.TypeInstantiation.dateTime(o)}case"UUID":{let i=this.context.getValueAsString({value:e});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.uuid(i)}case"BASE_64":{let i=this.context.getValueAsString({value:e});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.bytes(i)}case"BIG_INTEGER":{let i=this.context.getValueAsString({value:e});return i==null?f.TypeInstantiation.nop():f.TypeInstantiation.string(i)}default:R(t)}}getValueAsNumber({value:t,as:e}){let n=e==="key"&&typeof t=="string"?Number(t):t;return this.context.getValueAsNumber({value:n})}getValueAsBoolean({value:t,as:e}){let n=e==="key"?typeof t=="string"?t==="true":t==="false"?!1:t:t;return this.context.getValueAsBoolean({value:n})}normalizeDateTimeString(t){return/^\d{4}-\d{2}-\d{2}$/.test(t)?`${t}T00:00:00Z`:/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(t)?`${t}Z`:t}};0&&(module.exports={DynamicTypeInstantiationMapper});
|
|
27
27
|
/*! Bundled license information:
|
|
28
28
|
|
|
29
29
|
@esbuild-plugins/node-globals-polyfill/Buffer.js:
|