sonamu 0.5.2 → 0.5.4
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/api/code-converters.js +1 -1
- package/dist/api/code-converters.js.map +1 -1
- package/dist/api/decorators.d.ts +6 -1
- package/dist/api/decorators.d.ts.map +1 -1
- package/dist/api/decorators.js +1 -1
- package/dist/api/decorators.js.map +1 -1
- package/dist/bin/cli-wrapper.js +1 -1
- package/dist/bin/cli-wrapper.js.map +1 -1
- package/dist/database/puri-wrapper.d.ts +8 -1
- package/dist/database/puri-wrapper.d.ts.map +1 -1
- package/dist/database/puri-wrapper.js +1 -1
- package/dist/database/puri-wrapper.js.map +1 -1
- package/dist/database/puri.d.ts +2 -0
- package/dist/database/puri.d.ts.map +1 -1
- package/dist/database/puri.js +1 -1
- package/dist/database/puri.js.map +1 -1
- package/dist/database/puri.types.d.ts +4 -8
- package/dist/database/puri.types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/migration/code-generation.js +1 -1
- package/dist/migration/code-generation.js.map +1 -1
- package/dist/migration/types.d.ts +2 -1
- package/dist/migration/types.d.ts.map +1 -1
- package/dist/syncer/syncer.d.ts +1 -0
- package/dist/syncer/syncer.d.ts.map +1 -1
- package/dist/templates/generated_http.template.d.ts.map +1 -1
- package/dist/templates/generated_http.template.js +1 -1
- package/dist/templates/generated_http.template.js.map +1 -1
- package/dist/templates/generated_sso.template.d.ts.map +1 -1
- package/dist/templates/generated_sso.template.js +1 -1
- package/dist/templates/generated_sso.template.js.map +1 -1
- package/dist/templates/service.template.d.ts.map +1 -1
- package/dist/templates/service.template.js +1 -1
- package/dist/templates/service.template.js.map +1 -1
- package/dist/testing/fixture-manager.d.ts.map +1 -1
- package/dist/testing/fixture-manager.js +1 -1
- package/dist/testing/fixture-manager.js.map +1 -1
- package/package.json +7 -2
- package/src/api/code-converters.ts +1 -1
- package/src/api/decorators.ts +23 -9
- package/src/bin/cli-wrapper.ts +1 -1
- package/src/database/puri-wrapper.ts +24 -4
- package/src/database/puri.ts +128 -25
- package/src/database/puri.types.ts +46 -41
- package/src/index.ts +2 -1
- package/src/migration/code-generation.ts +3 -3
- package/src/migration/types.ts +2 -1
- package/src/templates/generated_http.template.ts +42 -11
- package/src/templates/generated_sso.template.ts +3 -1
- package/src/templates/service.template.ts +20 -7
- package/src/testing/fixture-manager.ts +2 -0
- package/.swcrc +0 -15
- package/import-to-require.js +0 -27
- package/nodemon.json +0 -6
- package/tsconfig.json +0 -56
- package/tsup.config.js +0 -47
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get apiParamToTsCode(){return apiParamToTsCode},get apiParamToTsCodeAsObject(){return apiParamToTsCodeAsObject},get apiParamTypeToTsType(){return apiParamTypeToTsType},get getTextTypeLength(){return getTextTypeLength},get getZodObjectFromApi(){return getZodObjectFromApi},get getZodObjectFromApiParams(){return getZodObjectFromApiParams},get getZodTypeFromApiParamType(){return getZodTypeFromApiParamType},get propNodeToZodTypeDef(){return propNodeToZodTypeDef},get propToZodTypeDef(){return propToZodTypeDef},get serializeZodType(){return serializeZodType},get unwrapPromiseOnce(){return unwrapPromiseOnce},get zodTypeToTsTypeDef(){return zodTypeToTsTypeDef},get zodTypeToZodCode(){return zodTypeToZodCode}});var _zod=require("zod");var _types=require("../types/types");function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_with_holes(arr){if(Array.isArray(arr))return arr}function _array_without_holes(arr){if(Array.isArray(arr))return _array_like_to_array(arr)}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _instanceof(left,right){if(right!=null&&typeof Symbol!=="undefined"&&right[Symbol.hasInstance]){return!!right[Symbol.hasInstance](left)}else{return left instanceof right}}function _iterable_to_array(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _iterable_to_array_limit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _sliced_to_array(arr,i){return _array_with_holes(arr)||_iterable_to_array_limit(arr,i)||_unsupported_iterable_to_array(arr,i)||_non_iterable_rest()}function _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}function getZodObjectFromApi(api){var references=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var _api_typeParameters;if(((_api_typeParameters=api.typeParameters)===null||_api_typeParameters===void 0?void 0:_api_typeParameters.length)>0){api.typeParameters.map(function(typeParam){if(typeParam.constraint){var zodType=getZodTypeFromApiParamType(typeParam.constraint,references);references[typeParam.id]=zodType}})}var ReqType=getZodObjectFromApiParams(api.parameters.filter(function(param){return!_types.ApiParamType.isContext(param.type)&&!_types.ApiParamType.isRefKnex(param.type)&&!(param.optional===true&¶m.name.startsWith("_"))}),references);return ReqType}function getZodObjectFromApiParams(apiParams){var references=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return _zod.z.object(apiParams.reduce(function(r,param){var zodType=getZodTypeFromApiParamType(param.type,references);if(param.optional){zodType=zodType.optional()}return _object_spread_props(_object_spread({},r),_define_property({},param.name,zodType))},{}))}function getZodTypeFromApiParamType(paramType,references){switch(paramType){case"string":return _zod.z.string();case"number":return _zod.z.number();case"boolean":return _zod.z.boolean();default:var advType=paramType;switch(advType.t){case"string-literal":case"numeric-literal":return _zod.z.literal(advType.value);case"object":var objType=paramType;return getZodObjectFromApiParams(objType.props);case"array":var arrType=paramType;return _zod.z.array(getZodTypeFromApiParamType(arrType.elementsType,references));case"ref":var refType=paramType;if(refType.id==="Date"){return _zod.z.date()}if(["Pick","Omit"].includes(refType.id)){var _refType_args;if(((_refType_args=refType.args)===null||_refType_args===void 0?void 0:_refType_args.length)!==2){throw new Error("잘못된 ".concat(refType.id))}var _refType_args_map=_sliced_to_array(refType.args.map(function(arg){return getZodTypeFromApiParamType(arg,references)}),2),obj=_refType_args_map[0],literalOrUnion=_refType_args_map[1];var keys=[];if(_instanceof(literalOrUnion,_zod.z.ZodUnion)){keys=literalOrUnion.def.options.map(function(option){return option.def.value})}else{keys=literalOrUnion.def.values}var keyRecord=keys.reduce(function(result,key){return _object_spread_props(_object_spread({},result),_define_property({},key,true))},{});if(refType.id==="Pick"){if(obj.pick){return obj.pick(keyRecord)}}else{if(obj.omit){return obj.omit(keyRecord)}}}if(["Partial"].includes(refType.id)){var _refType_args1;if(((_refType_args1=refType.args)===null||_refType_args1===void 0?void 0:_refType_args1.length)!==1){throw new Error("잘못된 ".concat(refType.id))}var obj1=getZodTypeFromApiParamType(refType.args[0],references);return obj1.partial()}var reference=references[refType.id];if(reference===undefined){return _zod.z.string()}return reference;case"union":var unionType=paramType;if(unionType.types.length===2&&unionType.types.some(function(type){return type==="null"})){if(unionType.types[0]==="null"){return getZodTypeFromApiParamType(unionType.types[1],references).nullable()}else{return getZodTypeFromApiParamType(unionType.types[0],references).nullable()}}return _zod.z.union(unionType.types.map(function(type){return getZodTypeFromApiParamType(type,references)}));case"intersection":var intersectionType=paramType;return intersectionType.types.reduce(function(result,type,index){var resolvedType=getZodTypeFromApiParamType(type,references);if(index===0){return resolvedType}else{return _zod.z.intersection(result,resolvedType)}},_zod.z.unknown());case"tuple-type":var tupleType=paramType;return _zod.z.tuple(tupleType.elements.map(function(elem){return getZodTypeFromApiParamType(elem,references)}))}return _zod.z.unknown()}}function propNodeToZodTypeDef(propNode,injectImportKeys){if(propNode.nodeType==="plain"){return propToZodTypeDef(propNode.prop,injectImportKeys)}else if(propNode.nodeType==="array"){return[propNode.prop?"".concat(propNode.prop.name,": "):"","z.array(z.object({",propNode.children.map(function(childPropNode){return propNodeToZodTypeDef(childPropNode,injectImportKeys)}).join("\n"),"","})),"].join("\n")}else if(propNode.nodeType==="object"){return[propNode.prop?"".concat(propNode.prop.name,": "):"","z.object({",propNode.children.map(function(childPropNode){return propNodeToZodTypeDef(childPropNode,injectImportKeys)}).join("\n"),"","})".concat(propNode.prop&&propNode.prop.nullable?".nullable()":"",",")].join("\n")}else{throw Error}}function getTextTypeLength(textType){switch(textType){case"text":return 1024*64-1;case"mediumtext":return 1024*1024*16-1;case"longtext":return 1024*1024*1024*4-1}}function propToZodTypeDef(prop,injectImportKeys){var stmt;if((0,_types.isIntegerProp)(prop)){stmt="".concat(prop.name,": z.int()")}else if((0,_types.isBigIntegerProp)(prop)){stmt="".concat(prop.name,": z.bigint()")}else if((0,_types.isTextProp)(prop)){stmt="".concat(prop.name,": z.string().max(").concat(getTextTypeLength(prop.textType),")")}else if((0,_types.isEnumProp)(prop)){stmt="".concat(prop.name,": ").concat(prop.id);injectImportKeys.push(prop.id)}else if((0,_types.isStringProp)(prop)){stmt="".concat(prop.name,": z.string().max(").concat(prop.length,")")}else if((0,_types.isDecimalProp)(prop)){stmt="".concat(prop.name,": z.string()")}else if((0,_types.isFloatProp)(prop)||(0,_types.isDoubleProp)(prop)){stmt="".concat(prop.name,": z.number()")}else if((0,_types.isBooleanProp)(prop)){stmt="".concat(prop.name,": z.boolean()")}else if((0,_types.isDateProp)(prop)){stmt="".concat(prop.name,": z.string().length(10)")}else if((0,_types.isTimeProp)(prop)){stmt="".concat(prop.name,": z.string().length(8)")}else if((0,_types.isDateTimeProp)(prop)){stmt="".concat(prop.name,": z.date()")}else if((0,_types.isTimestampProp)(prop)){stmt="".concat(prop.name,": z.date()")}else if((0,_types.isJsonProp)(prop)){stmt="".concat(prop.name,": ").concat(prop.id);injectImportKeys.push(prop.id)}else if((0,_types.isUuidProp)(prop)){stmt="".concat(prop.name,": z.uuid()")}else if((0,_types.isVirtualProp)(prop)){stmt="".concat(prop.name,": ").concat(prop.id);injectImportKeys.push(prop.id)}else if((0,_types.isRelationProp)(prop)){if((0,_types.isBelongsToOneRelationProp)(prop)||(0,_types.isOneToOneRelationProp)(prop)&&prop.hasJoinColumn){stmt="".concat(prop.name,"_id: z.int()")}else{return"// ".concat(prop.name,": ").concat(prop.relationType," ").concat(prop.with)}}else{return"// unable to resolve"}if(prop.unsigned){stmt+=".nonnegative()"}if(prop.nullable){stmt+=".nullable()"}return stmt+","}function zodTypeToZodCode(zt){switch(zt.def.type){case"string":return"z.string()";case"number":return"z.number()";case"bigint":return"z.bigint()";case"boolean":return"z.boolean()";case"date":return"z.date()";case"null":return"z.null()";case"undefined":return"z.undefined()";case"any":return"z.any()";case"unknown":return"z.unknown()";case"never":return"z.never()";case"nullable":return zodTypeToZodCode(zt.def.innerType)+".nullable()";case"default":var zDefaultDef=zt.def;return zodTypeToZodCode(zDefaultDef.innerType)+".default(".concat(zDefaultDef.defaultValue(),")");case"record":var zRecordDef=zt.def;return"z.record(".concat(zodTypeToZodCode(zRecordDef.keyType),", ").concat(zodTypeToZodCode(zRecordDef.valueType),")");case"literal":var items=Array.from(zt.values).map(function(value){if(typeof value==="string"){return'"'.concat(value,'"')}if(value===null){return"null"}if(value===undefined){return"undefined"}return"".concat(value)});if(items.length===1){return"z.literal(".concat(items[0],")")}return"z.literal([".concat(items.join(", "),"])");case"union":return"z.union([".concat(zt.def.options.map(function(option){return zodTypeToZodCode(option)}).join(","),"])");case"enum":return"z.enum([".concat(Object.entries(zt.def.entries).map(function(param){var _param=_sliced_to_array(param,2),key=_param[0],val=_param[1];return typeof val==="string"?"".concat(key,': "').concat(val,'"'):"".concat(key,": ").concat(val)}).join(", "),"})");case"array":return"z.array(".concat(zodTypeToZodCode(zt.def.element),")");case"object":var shape=zt.shape;return["z.object({"].concat(_to_consumable_array(Object.keys(shape).map(function(key){return"".concat(key,": ").concat(zodTypeToZodCode(shape[key]),",")})),["})"]).join("\n");case"optional":return zodTypeToZodCode(zt.def.innerType)+".optional()";case"file":return"z.file()";case"intersection":var zIntersectionDef=zt.def;return"z.intersection(".concat(zodTypeToZodCode(zIntersectionDef.left),", ").concat(zodTypeToZodCode(zIntersectionDef.right),")");case"file":return"z.file()";default:throw new Error("처리되지 않은 ZodType ".concat(zt.def.type))}}function apiParamToTsCode(params,injectImportKeys){return params.map(function(param){return"".concat(param.name).concat(param.optional&&!param.defaultDef?"?":"",": ").concat(apiParamTypeToTsType(param.type,injectImportKeys)).concat(param.defaultDef?"= ".concat(param.defaultDef):"")}).join(", ")}function apiParamToTsCodeAsObject(params,injectImportKeys){return"{ ".concat(params.map(function(param){return"".concat(param.name).concat(param.optional?"?":"",": ").concat(apiParamTypeToTsType(param.type,injectImportKeys)).concat(param.defaultDef?"= ".concat(param.defaultDef):"")}).join(", ")," }")}function apiParamTypeToTsType(paramType,injectImportKeys){if(["string","number","boolean","true","false","null","undefined","void","any","unknown"].includes(paramType)){return paramType}else if(_types.ApiParamType.isObject(paramType)){return"{ ".concat(apiParamToTsCode(paramType.props,injectImportKeys)," }")}else if(_types.ApiParamType.isStringLiteral(paramType)){return'"'.concat(paramType.value,'"')}else if(_types.ApiParamType.isNumericLiteral(paramType)){return String(paramType.value)}else if(_types.ApiParamType.isUnion(paramType)){return paramType.types.map(function(type){return apiParamTypeToTsType(type,injectImportKeys)}).join(" | ")}else if(_types.ApiParamType.isIntersection(paramType)){return paramType.types.map(function(type){return apiParamTypeToTsType(type,injectImportKeys)}).join(" & ")}else if(_types.ApiParamType.isArray(paramType)){return apiParamTypeToTsType(paramType.elementsType,injectImportKeys)+"[]"}else if(_types.ApiParamType.isRef(paramType)){if(["Pick","Omit","Promise","Partial","Date"].includes(paramType.id)===false){injectImportKeys.push(paramType.id)}if(paramType.args===undefined||paramType.args.length===0){return paramType.id}else{return"".concat(paramType.id,"<").concat(paramType.args.map(function(arg){return apiParamTypeToTsType(arg,injectImportKeys)}).join(","),">")}}else if(_types.ApiParamType.isIndexedAccess(paramType)){return"".concat(apiParamTypeToTsType(paramType.object,injectImportKeys),"[").concat(apiParamTypeToTsType(paramType.index,injectImportKeys),"]")}else if(_types.ApiParamType.isTupleType(paramType)){return"[ ".concat(paramType.elements.map(function(elem){return apiParamTypeToTsType(elem,injectImportKeys)})," ]")}else if(_types.ApiParamType.isTypeParam(paramType)){return"<".concat(paramType.id).concat(paramType.constraint?" extends ".concat(apiParamTypeToTsType(paramType.constraint,injectImportKeys)):"",">")}else{throw new Error("resolve 불가 ApiParamType ".concat(paramType))}}function unwrapPromiseOnce(paramType){if(_types.ApiParamType.isPromise(paramType)){return paramType.args[0]}else{return paramType}}function serializeZodType(zt){switch(zt.def.type){case"object":return{type:"object",shape:Object.keys(zt.shape).reduce(function(result,key){return _object_spread_props(_object_spread({},result),_define_property({},key,serializeZodType(zt.shape[key])))},{})};case"array":return{type:"array",element:serializeZodType(zt.def.element)};case"enum":return{type:"enum",values:zt.def.entries};case"string":return{type:"string",checks:zt.def.checks};case"number":return{type:"number",checks:zt.def.checks};case"boolean":return{type:"boolean"};case"nullable":return _object_spread_props(_object_spread({},serializeZodType(zt.def.innerType)),{nullable:true});case"optional":return _object_spread_props(_object_spread({},serializeZodType(zt.def.innerType)),{optional:true});case"any":return{type:"any"};case"record":return{type:"record",keyType:serializeZodType(zt.def.keyType),valueType:serializeZodType(zt.def.valueType)};case"union":return{type:"union",options:zt.def.options.map(function(option){return serializeZodType(option)})};default:throw new Error("Serialize 로직이 정의되지 않은 ZodType: ".concat(zt.def.type))}}function zodTypeToTsTypeDef(zt){switch(zt.def.type){case"string":case"number":case"boolean":case"bigint":case"date":case"null":case"undefined":case"any":case"unknown":case"never":return zt.def.type;case"nullable":return zodTypeToTsTypeDef(zt.def.innerType)+" | null";case"default":return zodTypeToTsTypeDef(zt.def.innerType);case"record":var recordType=zt;return"{ [ key: ".concat(zodTypeToTsTypeDef(recordType.def.keyType)," ]: ").concat(zodTypeToTsTypeDef(recordType.def.valueType),"}");case"literal":return Array.from(zt.values).map(function(value){if(typeof value==="string"){return'"'.concat(value,'"')}if(value===null){return"null"}if(value===undefined){return"undefined"}return"".concat(value)}).join(" | ");case"union":return"".concat(zt.options.map(function(option){return zodTypeToTsTypeDef(option)}).join(" | "));case"enum":return"".concat(zt.options.map(function(val){return'"'.concat(val,'"')}).join(" | "));case"array":return"".concat(zodTypeToTsTypeDef(zt.element.type),"[]");case"object":var shape=zt.shape;return["{"].concat(_to_consumable_array(Object.keys(shape).map(function(key){if(shape[key].def.type==="optional"){return"".concat(key,"?: ").concat(zodTypeToTsTypeDef(shape[key].def.innerType),",")}else{return"".concat(key,": ").concat(zodTypeToTsTypeDef(shape[key]),",")}})),["}"]).join("\n");case"optional":return zodTypeToTsTypeDef(zt.def.innerType)+" | undefined";default:throw new Error("처리되지 않은 ZodType ".concat(zt.def.type))}}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get apiParamToTsCode(){return apiParamToTsCode},get apiParamToTsCodeAsObject(){return apiParamToTsCodeAsObject},get apiParamTypeToTsType(){return apiParamTypeToTsType},get getTextTypeLength(){return getTextTypeLength},get getZodObjectFromApi(){return getZodObjectFromApi},get getZodObjectFromApiParams(){return getZodObjectFromApiParams},get getZodTypeFromApiParamType(){return getZodTypeFromApiParamType},get propNodeToZodTypeDef(){return propNodeToZodTypeDef},get propToZodTypeDef(){return propToZodTypeDef},get serializeZodType(){return serializeZodType},get unwrapPromiseOnce(){return unwrapPromiseOnce},get zodTypeToTsTypeDef(){return zodTypeToTsTypeDef},get zodTypeToZodCode(){return zodTypeToZodCode}});var _zod=require("zod");var _types=require("../types/types");function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_with_holes(arr){if(Array.isArray(arr))return arr}function _array_without_holes(arr){if(Array.isArray(arr))return _array_like_to_array(arr)}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _instanceof(left,right){if(right!=null&&typeof Symbol!=="undefined"&&right[Symbol.hasInstance]){return!!right[Symbol.hasInstance](left)}else{return left instanceof right}}function _iterable_to_array(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _iterable_to_array_limit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _sliced_to_array(arr,i){return _array_with_holes(arr)||_iterable_to_array_limit(arr,i)||_unsupported_iterable_to_array(arr,i)||_non_iterable_rest()}function _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}function getZodObjectFromApi(api){var references=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var _api_typeParameters;if(((_api_typeParameters=api.typeParameters)===null||_api_typeParameters===void 0?void 0:_api_typeParameters.length)>0){api.typeParameters.map(function(typeParam){if(typeParam.constraint){var zodType=getZodTypeFromApiParamType(typeParam.constraint,references);references[typeParam.id]=zodType}})}var ReqType=getZodObjectFromApiParams(api.parameters.filter(function(param){return!_types.ApiParamType.isContext(param.type)&&!_types.ApiParamType.isRefKnex(param.type)&&!(param.optional===true&¶m.name.startsWith("_"))}),references);return ReqType}function getZodObjectFromApiParams(apiParams){var references=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return _zod.z.object(apiParams.reduce(function(r,param){var zodType=getZodTypeFromApiParamType(param.type,references);if(param.optional){zodType=zodType.optional()}return _object_spread_props(_object_spread({},r),_define_property({},param.name,zodType))},{}))}function getZodTypeFromApiParamType(paramType,references){switch(paramType){case"string":return _zod.z.string();case"number":return _zod.z.number();case"boolean":return _zod.z.boolean();default:var advType=paramType;switch(advType.t){case"string-literal":case"numeric-literal":return _zod.z.literal(advType.value);case"object":var objType=paramType;return getZodObjectFromApiParams(objType.props);case"array":var arrType=paramType;return _zod.z.array(getZodTypeFromApiParamType(arrType.elementsType,references));case"ref":var refType=paramType;if(refType.id==="Date"){return _zod.z.date()}if(["Pick","Omit"].includes(refType.id)){var _refType_args;if(((_refType_args=refType.args)===null||_refType_args===void 0?void 0:_refType_args.length)!==2){throw new Error("잘못된 ".concat(refType.id))}var _refType_args_map=_sliced_to_array(refType.args.map(function(arg){return getZodTypeFromApiParamType(arg,references)}),2),obj=_refType_args_map[0],literalOrUnion=_refType_args_map[1];var keys=[];if(_instanceof(literalOrUnion,_zod.z.ZodUnion)){keys=literalOrUnion.def.options.map(function(option){return option.def.value})}else{keys=literalOrUnion.def.values}var keyRecord=keys.reduce(function(result,key){return _object_spread_props(_object_spread({},result),_define_property({},key,true))},{});if(refType.id==="Pick"){if(obj.pick){return obj.pick(keyRecord)}}else{if(obj.omit){return obj.omit(keyRecord)}}}if(["Partial"].includes(refType.id)){var _refType_args1;if(((_refType_args1=refType.args)===null||_refType_args1===void 0?void 0:_refType_args1.length)!==1){throw new Error("잘못된 ".concat(refType.id))}var obj1=getZodTypeFromApiParamType(refType.args[0],references);return obj1.partial()}var reference=references[refType.id];if(reference===undefined){return _zod.z.string()}return reference;case"union":var unionType=paramType;if(unionType.types.length===2&&unionType.types.some(function(type){return type==="null"})){if(unionType.types[0]==="null"){return getZodTypeFromApiParamType(unionType.types[1],references).nullable()}else{return getZodTypeFromApiParamType(unionType.types[0],references).nullable()}}return _zod.z.union(unionType.types.map(function(type){return getZodTypeFromApiParamType(type,references)}));case"intersection":var intersectionType=paramType;return intersectionType.types.reduce(function(result,type,index){var resolvedType=getZodTypeFromApiParamType(type,references);if(index===0){return resolvedType}else{return _zod.z.intersection(result,resolvedType)}},_zod.z.unknown());case"tuple-type":var tupleType=paramType;return _zod.z.tuple(tupleType.elements.map(function(elem){return getZodTypeFromApiParamType(elem,references)}))}return _zod.z.unknown()}}function propNodeToZodTypeDef(propNode,injectImportKeys){if(propNode.nodeType==="plain"){return propToZodTypeDef(propNode.prop,injectImportKeys)}else if(propNode.nodeType==="array"){return[propNode.prop?"".concat(propNode.prop.name,": "):"","z.array(z.object({",propNode.children.map(function(childPropNode){return propNodeToZodTypeDef(childPropNode,injectImportKeys)}).join("\n"),"","})),"].join("\n")}else if(propNode.nodeType==="object"){return[propNode.prop?"".concat(propNode.prop.name,": "):"","z.object({",propNode.children.map(function(childPropNode){return propNodeToZodTypeDef(childPropNode,injectImportKeys)}).join("\n"),"","})".concat(propNode.prop&&propNode.prop.nullable?".nullable()":"",",")].join("\n")}else{throw Error}}function getTextTypeLength(textType){switch(textType){case"text":return 1024*64-1;case"mediumtext":return 1024*1024*16-1;case"longtext":return 1024*1024*1024*4-1}}function propToZodTypeDef(prop,injectImportKeys){var stmt;if((0,_types.isIntegerProp)(prop)){stmt="".concat(prop.name,": z.int()")}else if((0,_types.isBigIntegerProp)(prop)){stmt="".concat(prop.name,": z.bigint()")}else if((0,_types.isTextProp)(prop)){stmt="".concat(prop.name,": z.string().max(").concat(getTextTypeLength(prop.textType),")")}else if((0,_types.isEnumProp)(prop)){stmt="".concat(prop.name,": ").concat(prop.id);injectImportKeys.push(prop.id)}else if((0,_types.isStringProp)(prop)){stmt="".concat(prop.name,": z.string().max(").concat(prop.length,")")}else if((0,_types.isDecimalProp)(prop)){stmt="".concat(prop.name,": z.string()")}else if((0,_types.isFloatProp)(prop)||(0,_types.isDoubleProp)(prop)){stmt="".concat(prop.name,": z.number()")}else if((0,_types.isBooleanProp)(prop)){stmt="".concat(prop.name,": z.boolean()")}else if((0,_types.isDateProp)(prop)){stmt="".concat(prop.name,": z.string().length(10)")}else if((0,_types.isTimeProp)(prop)){stmt="".concat(prop.name,": z.string().length(8)")}else if((0,_types.isDateTimeProp)(prop)){stmt="".concat(prop.name,": z.date()")}else if((0,_types.isTimestampProp)(prop)){stmt="".concat(prop.name,": z.date()")}else if((0,_types.isJsonProp)(prop)){stmt="".concat(prop.name,": ").concat(prop.id);injectImportKeys.push(prop.id)}else if((0,_types.isUuidProp)(prop)){stmt="".concat(prop.name,": z.uuid()")}else if((0,_types.isVirtualProp)(prop)){stmt="".concat(prop.name,": ").concat(prop.id);injectImportKeys.push(prop.id)}else if((0,_types.isRelationProp)(prop)){if((0,_types.isBelongsToOneRelationProp)(prop)||(0,_types.isOneToOneRelationProp)(prop)&&prop.hasJoinColumn){stmt="".concat(prop.name,"_id: z.int()")}else{return"// ".concat(prop.name,": ").concat(prop.relationType," ").concat(prop.with)}}else{return"// unable to resolve"}if(prop.unsigned){stmt+=".nonnegative()"}if(prop.nullable){stmt+=".nullable()"}return stmt+","}function zodTypeToZodCode(zt){switch(zt.def.type){case"string":return"z.string()";case"number":return"z.number()";case"bigint":return"z.bigint()";case"boolean":return"z.boolean()";case"date":return"z.date()";case"null":return"z.null()";case"undefined":return"z.undefined()";case"any":return"z.any()";case"unknown":return"z.unknown()";case"never":return"z.never()";case"nullable":return zodTypeToZodCode(zt.def.innerType)+".nullable()";case"default":var zDefaultDef=zt.def;return zodTypeToZodCode(zDefaultDef.innerType)+".default(".concat(zDefaultDef.defaultValue(),")");case"record":var zRecordDef=zt.def;return"z.record(".concat(zodTypeToZodCode(zRecordDef.keyType),", ").concat(zodTypeToZodCode(zRecordDef.valueType),")");case"literal":var items=Array.from(zt.values).map(function(value){if(typeof value==="string"){return'"'.concat(value,'"')}if(value===null){return"null"}if(value===undefined){return"undefined"}return"".concat(value)});if(items.length===1){return"z.literal(".concat(items[0],")")}return"z.literal([".concat(items.join(", "),"])");case"union":return"z.union([".concat(zt.def.options.map(function(option){return zodTypeToZodCode(option)}).join(","),"])");case"enum":return"z.enum({".concat(Object.entries(zt.def.entries).map(function(param){var _param=_sliced_to_array(param,2),key=_param[0],val=_param[1];return typeof val==="string"?"".concat(key,': "').concat(val,'"'):"".concat(key,": ").concat(val)}).join(", "),"})");case"array":return"z.array(".concat(zodTypeToZodCode(zt.def.element),")");case"object":var shape=zt.shape;return["z.object({"].concat(_to_consumable_array(Object.keys(shape).map(function(key){return"".concat(key,": ").concat(zodTypeToZodCode(shape[key]),",")})),["})"]).join("\n");case"optional":return zodTypeToZodCode(zt.def.innerType)+".optional()";case"file":return"z.file()";case"intersection":var zIntersectionDef=zt.def;return"z.intersection(".concat(zodTypeToZodCode(zIntersectionDef.left),", ").concat(zodTypeToZodCode(zIntersectionDef.right),")");case"file":return"z.file()";default:throw new Error("처리되지 않은 ZodType ".concat(zt.def.type))}}function apiParamToTsCode(params,injectImportKeys){return params.map(function(param){return"".concat(param.name).concat(param.optional&&!param.defaultDef?"?":"",": ").concat(apiParamTypeToTsType(param.type,injectImportKeys)).concat(param.defaultDef?"= ".concat(param.defaultDef):"")}).join(", ")}function apiParamToTsCodeAsObject(params,injectImportKeys){return"{ ".concat(params.map(function(param){return"".concat(param.name).concat(param.optional?"?":"",": ").concat(apiParamTypeToTsType(param.type,injectImportKeys)).concat(param.defaultDef?"= ".concat(param.defaultDef):"")}).join(", ")," }")}function apiParamTypeToTsType(paramType,injectImportKeys){if(["string","number","boolean","true","false","null","undefined","void","any","unknown"].includes(paramType)){return paramType}else if(_types.ApiParamType.isObject(paramType)){return"{ ".concat(apiParamToTsCode(paramType.props,injectImportKeys)," }")}else if(_types.ApiParamType.isStringLiteral(paramType)){return'"'.concat(paramType.value,'"')}else if(_types.ApiParamType.isNumericLiteral(paramType)){return String(paramType.value)}else if(_types.ApiParamType.isUnion(paramType)){return paramType.types.map(function(type){return apiParamTypeToTsType(type,injectImportKeys)}).join(" | ")}else if(_types.ApiParamType.isIntersection(paramType)){return paramType.types.map(function(type){return apiParamTypeToTsType(type,injectImportKeys)}).join(" & ")}else if(_types.ApiParamType.isArray(paramType)){return apiParamTypeToTsType(paramType.elementsType,injectImportKeys)+"[]"}else if(_types.ApiParamType.isRef(paramType)){if(["Pick","Omit","Promise","Partial","Date"].includes(paramType.id)===false){injectImportKeys.push(paramType.id)}if(paramType.args===undefined||paramType.args.length===0){return paramType.id}else{return"".concat(paramType.id,"<").concat(paramType.args.map(function(arg){return apiParamTypeToTsType(arg,injectImportKeys)}).join(","),">")}}else if(_types.ApiParamType.isIndexedAccess(paramType)){return"".concat(apiParamTypeToTsType(paramType.object,injectImportKeys),"[").concat(apiParamTypeToTsType(paramType.index,injectImportKeys),"]")}else if(_types.ApiParamType.isTupleType(paramType)){return"[ ".concat(paramType.elements.map(function(elem){return apiParamTypeToTsType(elem,injectImportKeys)})," ]")}else if(_types.ApiParamType.isTypeParam(paramType)){return"<".concat(paramType.id).concat(paramType.constraint?" extends ".concat(apiParamTypeToTsType(paramType.constraint,injectImportKeys)):"",">")}else{throw new Error("resolve 불가 ApiParamType ".concat(paramType))}}function unwrapPromiseOnce(paramType){if(_types.ApiParamType.isPromise(paramType)){return paramType.args[0]}else{return paramType}}function serializeZodType(zt){switch(zt.def.type){case"object":return{type:"object",shape:Object.keys(zt.shape).reduce(function(result,key){return _object_spread_props(_object_spread({},result),_define_property({},key,serializeZodType(zt.shape[key])))},{})};case"array":return{type:"array",element:serializeZodType(zt.def.element)};case"enum":return{type:"enum",values:zt.def.entries};case"string":return{type:"string",checks:zt.def.checks};case"number":return{type:"number",checks:zt.def.checks};case"boolean":return{type:"boolean"};case"nullable":return _object_spread_props(_object_spread({},serializeZodType(zt.def.innerType)),{nullable:true});case"optional":return _object_spread_props(_object_spread({},serializeZodType(zt.def.innerType)),{optional:true});case"any":return{type:"any"};case"record":return{type:"record",keyType:serializeZodType(zt.def.keyType),valueType:serializeZodType(zt.def.valueType)};case"union":return{type:"union",options:zt.def.options.map(function(option){return serializeZodType(option)})};default:throw new Error("Serialize 로직이 정의되지 않은 ZodType: ".concat(zt.def.type))}}function zodTypeToTsTypeDef(zt){switch(zt.def.type){case"string":case"number":case"boolean":case"bigint":case"date":case"null":case"undefined":case"any":case"unknown":case"never":return zt.def.type;case"nullable":return zodTypeToTsTypeDef(zt.def.innerType)+" | null";case"default":return zodTypeToTsTypeDef(zt.def.innerType);case"record":var recordType=zt;return"{ [ key: ".concat(zodTypeToTsTypeDef(recordType.def.keyType)," ]: ").concat(zodTypeToTsTypeDef(recordType.def.valueType),"}");case"literal":return Array.from(zt.values).map(function(value){if(typeof value==="string"){return'"'.concat(value,'"')}if(value===null){return"null"}if(value===undefined){return"undefined"}return"".concat(value)}).join(" | ");case"union":return"".concat(zt.options.map(function(option){return zodTypeToTsTypeDef(option)}).join(" | "));case"enum":return"".concat(zt.options.map(function(val){return'"'.concat(val,'"')}).join(" | "));case"array":return"".concat(zodTypeToTsTypeDef(zt.element.type),"[]");case"object":var shape=zt.shape;return["{"].concat(_to_consumable_array(Object.keys(shape).map(function(key){if(shape[key].def.type==="optional"){return"".concat(key,"?: ").concat(zodTypeToTsTypeDef(shape[key].def.innerType),",")}else{return"".concat(key,": ").concat(zodTypeToTsTypeDef(shape[key]),",")}})),["}"]).join("\n");case"optional":return zodTypeToTsTypeDef(zt.def.innerType)+" | undefined";default:throw new Error("처리되지 않은 ZodType ".concat(zt.def.type))}}
|
|
2
2
|
//# sourceMappingURL=code-converters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/api/code-converters.ts"],"sourcesContent":["import { z } from \"zod\";\nimport {\n ApiParam,\n ApiParamType,\n EntityProp,\n EntityPropNode,\n TextProp,\n isBelongsToOneRelationProp,\n isBigIntegerProp,\n isBooleanProp,\n isDateProp,\n isDateTimeProp,\n isDecimalProp,\n isDoubleProp,\n isEnumProp,\n isFloatProp,\n isIntegerProp,\n isJsonProp,\n isOneToOneRelationProp,\n isRelationProp,\n isStringProp,\n isTextProp,\n isTimeProp,\n isTimestampProp,\n isUuidProp,\n isVirtualProp,\n} from \"../types/types\";\nimport { ExtendedApi } from \"./decorators\";\n\n/*\n ExtendedApi 에서 ZodObject 리턴\n*/\nexport function getZodObjectFromApi(\n api: ExtendedApi,\n references: {\n [id: string]: z.ZodObject<any>;\n } = {}\n) {\n if (api.typeParameters?.length > 0) {\n api.typeParameters.map((typeParam) => {\n if (typeParam.constraint) {\n let zodType = getZodTypeFromApiParamType(\n typeParam.constraint,\n references\n );\n (references[typeParam.id] as any) = zodType;\n }\n });\n }\n\n const ReqType = getZodObjectFromApiParams(\n api.parameters.filter(\n (param) =>\n !ApiParamType.isContext(param.type) &&\n !ApiParamType.isRefKnex(param.type) &&\n !(param.optional === true && param.name.startsWith(\"_\")) // _로 시작하는 파라미터는 제외\n ),\n references\n );\n return ReqType;\n}\n\n/*\n ZodObject를 통해 ApiParam 리턴\n*/\nexport function getZodObjectFromApiParams(\n apiParams: ApiParam[],\n references: {\n [id: string]: z.ZodObject<any>;\n } = {}\n): z.ZodObject {\n return z.object(\n apiParams.reduce((r, param) => {\n let zodType = getZodTypeFromApiParamType(param.type, references);\n if (param.optional) {\n zodType = zodType.optional();\n }\n return {\n ...r,\n [param.name]: zodType,\n };\n }, {})\n );\n}\n\n/*\n ApiParamType으로 ZodType 컨버팅\n*/\nexport function getZodTypeFromApiParamType(\n paramType: ApiParamType,\n references: {\n [id: string]: z.ZodObject<any>;\n }\n): z.ZodType<unknown> {\n switch (paramType) {\n case \"string\":\n return z.string();\n case \"number\":\n return z.number();\n case \"boolean\":\n return z.boolean();\n default:\n const advType = paramType as { t: string };\n switch (advType.t) {\n case \"string-literal\":\n case \"numeric-literal\":\n return z.literal((advType as any).value);\n case \"object\":\n const objType = paramType as { t: string; props: ApiParam[] };\n return getZodObjectFromApiParams(objType.props);\n case \"array\":\n const arrType = paramType as {\n t: string;\n elementsType: ApiParamType;\n };\n return z.array(\n getZodTypeFromApiParamType(arrType.elementsType, references)\n );\n case \"ref\":\n const refType = paramType as {\n t: string;\n id: string;\n args?: ApiParamType[];\n };\n\n // Date 타입 처리\n if (refType.id === \"Date\") {\n return z.date();\n }\n\n // 객체 키 관리 유틸리티\n if ([\"Pick\", \"Omit\"].includes(refType.id)) {\n if (refType.args?.length !== 2) {\n throw new Error(`잘못된 ${refType.id}`);\n }\n const [obj, literalOrUnion] = refType.args!.map((arg) =>\n getZodTypeFromApiParamType(arg, references)\n ) as [z.ZodObject<any>, z.ZodUnion<any> | z.ZodLiteral<string>];\n let keys: string[] = [];\n if (literalOrUnion instanceof z.ZodUnion) {\n keys = literalOrUnion.def.options.map(\n (option: { def: { value: string } }) => option.def.value\n );\n } else {\n keys = (literalOrUnion as z.ZodLiteral<string>).def.values;\n }\n const keyRecord = keys.reduce((result, key) => {\n return {\n ...result,\n [key]: true,\n };\n }, {} as any);\n\n if (refType.id === \"Pick\") {\n if (obj.pick) {\n return obj.pick(keyRecord);\n }\n } else {\n if (obj.omit) {\n return obj.omit(keyRecord);\n }\n }\n }\n if ([\"Partial\"].includes(refType.id)) {\n if (refType.args?.length !== 1) {\n throw new Error(`잘못된 ${refType.id}`);\n }\n const obj = getZodTypeFromApiParamType(refType.args[0], references);\n return (obj as any).partial();\n }\n\n const reference = references[refType.id];\n if (reference === undefined) {\n return z.string();\n // throw new Error(`ref 참조 불가 ${refType.id}`);\n }\n return reference;\n case \"union\":\n const unionType = paramType as {\n t: string;\n types: ApiParamType[];\n };\n // nullable 유니온\n if (\n unionType.types.length === 2 &&\n unionType.types.some((type) => type === \"null\")\n ) {\n if (unionType.types[0] === \"null\") {\n return getZodTypeFromApiParamType(\n unionType.types[1],\n references\n ).nullable();\n } else {\n return getZodTypeFromApiParamType(\n unionType.types[0],\n references\n ).nullable();\n }\n }\n\n // 일반 유니온\n return z.union(\n unionType.types.map((type) =>\n getZodTypeFromApiParamType(type, references)\n ) as any\n );\n case \"intersection\":\n const intersectionType = paramType as {\n t: string;\n types: ApiParamType[];\n };\n return intersectionType.types.reduce((result, type, index) => {\n const resolvedType = getZodTypeFromApiParamType(type, references);\n if (index === 0) {\n return resolvedType;\n } else {\n return z.intersection(result as any, resolvedType);\n }\n }, z.unknown() as any) as any;\n case \"tuple-type\":\n const tupleType = paramType as ApiParamType.TupleType;\n return z.tuple(\n tupleType.elements.map((elem) =>\n getZodTypeFromApiParamType(elem, references)\n ) as any\n );\n }\n return z.unknown();\n }\n}\n\nexport function propNodeToZodTypeDef(\n propNode: EntityPropNode,\n injectImportKeys: string[]\n): string {\n if (propNode.nodeType === \"plain\") {\n return propToZodTypeDef(propNode.prop, injectImportKeys);\n } else if (propNode.nodeType === \"array\") {\n return [\n propNode.prop ? `${propNode.prop.name}: ` : \"\",\n \"z.array(z.object({\",\n propNode.children\n .map((childPropNode) =>\n propNodeToZodTypeDef(childPropNode, injectImportKeys)\n )\n .join(\"\\n\"),\n \"\",\n \"})),\",\n ].join(\"\\n\");\n } else if (propNode.nodeType === \"object\") {\n return [\n propNode.prop ? `${propNode.prop.name}: ` : \"\",\n \"z.object({\",\n propNode.children\n .map((childPropNode) =>\n propNodeToZodTypeDef(childPropNode, injectImportKeys)\n )\n .join(\"\\n\"),\n \"\",\n `})${propNode.prop && propNode.prop.nullable ? \".nullable()\" : \"\"},`,\n ].join(\"\\n\");\n } else {\n throw Error;\n }\n}\n\nexport function getTextTypeLength(textType: TextProp[\"textType\"]): number {\n switch (textType) {\n case \"text\":\n return 1024 * 64 - 1;\n case \"mediumtext\":\n return 1024 * 1024 * 16 - 1;\n case \"longtext\":\n return 1024 * 1024 * 1024 * 4 - 1;\n }\n}\n\nexport function propToZodTypeDef(\n prop: EntityProp,\n injectImportKeys: string[]\n): string {\n let stmt: string;\n if (isIntegerProp(prop)) {\n stmt = `${prop.name}: z.int()`;\n } else if (isBigIntegerProp(prop)) {\n stmt = `${prop.name}: z.bigint()`;\n } else if (isTextProp(prop)) {\n stmt = `${prop.name}: z.string().max(${getTextTypeLength(prop.textType)})`;\n } else if (isEnumProp(prop)) {\n stmt = `${prop.name}: ${prop.id}`;\n injectImportKeys.push(prop.id);\n } else if (isStringProp(prop)) {\n stmt = `${prop.name}: z.string().max(${prop.length})`;\n } else if (isDecimalProp(prop)) {\n stmt = `${prop.name}: z.string()`;\n } else if (isFloatProp(prop) || isDoubleProp(prop)) {\n stmt = `${prop.name}: z.number()`;\n } else if (isBooleanProp(prop)) {\n stmt = `${prop.name}: z.boolean()`;\n } else if (isDateProp(prop)) {\n stmt = `${prop.name}: z.string().length(10)`;\n } else if (isTimeProp(prop)) {\n stmt = `${prop.name}: z.string().length(8)`;\n } else if (isDateTimeProp(prop)) {\n stmt = `${prop.name}: z.date()`;\n } else if (isTimestampProp(prop)) {\n stmt = `${prop.name}: z.date()`;\n } else if (isJsonProp(prop)) {\n stmt = `${prop.name}: ${prop.id}`;\n injectImportKeys.push(prop.id);\n } else if (isUuidProp(prop)) {\n stmt = `${prop.name}: z.uuid()`;\n } else if (isVirtualProp(prop)) {\n stmt = `${prop.name}: ${prop.id}`;\n injectImportKeys.push(prop.id);\n } else if (isRelationProp(prop)) {\n if (\n isBelongsToOneRelationProp(prop) ||\n (isOneToOneRelationProp(prop) && prop.hasJoinColumn)\n ) {\n stmt = `${prop.name}_id: z.int()`;\n } else {\n // 그외 relation 케이스 제외\n return `// ${prop.name}: ${prop.relationType} ${prop.with}`;\n }\n } else {\n return \"// unable to resolve\";\n }\n\n if ((prop as { unsigned?: boolean }).unsigned) {\n stmt += \".nonnegative()\";\n }\n if (prop.nullable) {\n stmt += \".nullable()\";\n }\n\n return stmt + \",\";\n}\n\n// TODO(Haze, 251031): \"template_literal\", \"file\"에 대한 지원이 필요함.\nexport function zodTypeToZodCode(zt: z.ZodType<any>): string {\n switch (zt.def.type) {\n case \"string\":\n return \"z.string()\";\n case \"number\":\n return \"z.number()\";\n case \"bigint\":\n return \"z.bigint()\";\n case \"boolean\":\n return \"z.boolean()\";\n case \"date\":\n return \"z.date()\";\n case \"null\":\n return \"z.null()\";\n case \"undefined\":\n return \"z.undefined()\";\n case \"any\":\n return \"z.any()\";\n case \"unknown\":\n return \"z.unknown()\";\n case \"never\":\n return \"z.never()\";\n case \"nullable\":\n return zodTypeToZodCode((zt as z.ZodNullable<any>).def.innerType) + \".nullable()\";\n case \"default\":\n const zDefaultDef = (zt as z.ZodDefault<any>).def;\n return (\n zodTypeToZodCode(zDefaultDef.innerType) +\n `.default(${zDefaultDef.defaultValue()})`\n );\n case \"record\":\n const zRecordDef = (zt as z.ZodRecord<any, any>).def;\n return `z.record(${zodTypeToZodCode(zRecordDef.keyType)}, ${zodTypeToZodCode(\n zRecordDef.valueType\n )})`;\n case \"literal\":\n const items = Array.from((zt as z.ZodLiteral<any>).values).map(value => {\n if (typeof value === \"string\") {\n return `\"${value}\"`;\n }\n\n if (value === null) {\n return `null`;\n }\n\n if (value === undefined) {\n return `undefined`;\n }\n\n return `${value}`;\n });\n\n if (items.length === 1) {\n return `z.literal(${items[0]})`;\n }\n return `z.literal([${items.join(\", \")}])`;\n case \"union\":\n return `z.union([${(zt as z.ZodUnion<any>).def.options\n .map((option: z.ZodType<any>) => zodTypeToZodCode(option))\n .join(\",\")}])`;\n case \"enum\":\n // NOTE: z.enum([\"A\", \"B\"])도 z.enum({ A: \"A\", B: \"B\" })로 처리됨.\n return `z.enum([${Object.entries((zt as z.ZodEnum).def.entries)\n .map(([key, val]) =>\n typeof val === \"string\" ? `${key}: \"${val}\"` : `${key}: ${val}`)\n .join(\", \")}})`;\n case \"array\":\n return `z.array(${zodTypeToZodCode((zt as z.ZodArray<z.ZodType>).def.element)})`;\n case \"object\":\n const shape = (zt as any).shape;\n return [\n \"z.object({\",\n ...Object.keys(shape).map(\n (key) => `${key}: ${zodTypeToZodCode(shape[key])},`\n ),\n \"})\",\n ].join(\"\\n\");\n case \"optional\":\n return zodTypeToZodCode((zt as z.ZodOptional<z.ZodType>).def.innerType) + \".optional()\";\n case \"file\":\n return `z.file()`;\n case \"intersection\":\n const zIntersectionDef = (zt as z.ZodIntersection<z.ZodType, z.ZodType>).def;\n return `z.intersection(${zodTypeToZodCode(zIntersectionDef.left)}, ${zodTypeToZodCode(zIntersectionDef.right)})`;\n case \"file\":\n return `z.file()`;\n default:\n throw new Error(`처리되지 않은 ZodType ${zt.def.type}`);\n }\n}\n\nexport function apiParamToTsCode(\n params: ApiParam[],\n injectImportKeys: string[]\n): string {\n return params\n .map((param) => {\n return `${param.name}${\n param.optional && !param.defaultDef ? \"?\" : \"\"\n }: ${apiParamTypeToTsType(param.type, injectImportKeys)}${\n param.defaultDef ? `= ${param.defaultDef}` : \"\"\n }`;\n })\n .join(\", \");\n}\n\nexport function apiParamToTsCodeAsObject(\n params: ApiParam[],\n injectImportKeys: string[]\n): string {\n return `{ ${params\n .map(\n (param) =>\n `${param.name}${param.optional ? \"?\" : \"\"}: ${apiParamTypeToTsType(\n param.type,\n injectImportKeys\n )}${param.defaultDef ? `= ${param.defaultDef}` : \"\"}`\n )\n .join(\", \")} }`;\n}\n\nexport function apiParamTypeToTsType(\n paramType: ApiParamType,\n injectImportKeys: string[]\n): string {\n if (\n [\n \"string\",\n \"number\",\n \"boolean\",\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"void\",\n \"any\",\n \"unknown\",\n ].includes(paramType as string)\n ) {\n return paramType as string;\n } else if (ApiParamType.isObject(paramType)) {\n return `{ ${apiParamToTsCode(paramType.props, injectImportKeys)} }`;\n } else if (ApiParamType.isStringLiteral(paramType)) {\n return `\"${paramType.value}\"`;\n } else if (ApiParamType.isNumericLiteral(paramType)) {\n return String(paramType.value);\n } else if (ApiParamType.isUnion(paramType)) {\n return paramType.types\n .map((type) => apiParamTypeToTsType(type, injectImportKeys))\n .join(\" | \");\n } else if (ApiParamType.isIntersection(paramType)) {\n return paramType.types\n .map((type) => apiParamTypeToTsType(type, injectImportKeys))\n .join(\" & \");\n } else if (ApiParamType.isArray(paramType)) {\n return (\n apiParamTypeToTsType(paramType.elementsType, injectImportKeys) + \"[]\"\n );\n } else if (ApiParamType.isRef(paramType)) {\n if (\n [\"Pick\", \"Omit\", \"Promise\", \"Partial\", \"Date\"].includes(paramType.id) ===\n false\n ) {\n // importKeys 인젝션\n injectImportKeys.push(paramType.id);\n }\n if (paramType.args === undefined || paramType.args.length === 0) {\n return paramType.id;\n } else {\n return `${paramType.id}<${paramType.args\n .map((arg) => apiParamTypeToTsType(arg, injectImportKeys))\n .join(\",\")}>`;\n }\n } else if (ApiParamType.isIndexedAccess(paramType)) {\n return `${apiParamTypeToTsType(\n paramType.object,\n injectImportKeys\n )}[${apiParamTypeToTsType(paramType.index, injectImportKeys)}]`;\n } else if (ApiParamType.isTupleType(paramType)) {\n return `[ ${paramType.elements.map((elem) =>\n apiParamTypeToTsType(elem, injectImportKeys)\n )} ]`;\n } else if (ApiParamType.isTypeParam(paramType)) {\n return `<${paramType.id}${\n paramType.constraint\n ? ` extends ${apiParamTypeToTsType(\n paramType.constraint,\n injectImportKeys\n )}`\n : \"\"\n }>`;\n } else {\n throw new Error(`resolve 불가 ApiParamType ${paramType}`);\n }\n}\n\nexport function unwrapPromiseOnce(paramType: ApiParamType) {\n if (ApiParamType.isPromise(paramType)) {\n return paramType.args![0];\n } else {\n return paramType;\n }\n}\n\n// TODO(Haze, 251031): \"template_literal\", \"file\"에 대한 지원이 필요함.\nexport function serializeZodType(zt: z.ZodTypeAny): any {\n switch (zt.def.type) {\n case \"object\":\n return {\n type: \"object\",\n shape: Object.keys((zt as z.ZodObject<any>).shape).reduce(\n (result, key) => {\n return {\n ...result,\n [key]: serializeZodType((zt as z.ZodObject<any>).shape[key]),\n };\n },\n {}\n ),\n };\n case \"array\":\n return {\n type: \"array\",\n element: serializeZodType((zt as z.ZodArray<any>).def.element),\n };\n case \"enum\":\n return {\n type: \"enum\",\n values: (zt as z.ZodEnum).def.entries,\n };\n case \"string\":\n return {\n type: \"string\",\n checks: zt.def.checks,\n };\n case \"number\":\n return {\n type: \"number\",\n checks: zt.def.checks,\n };\n case \"boolean\":\n return {\n type: \"boolean\",\n };\n case \"nullable\":\n return {\n ...serializeZodType((zt as z.ZodNullable<any>).def.innerType),\n nullable: true,\n };\n case \"optional\":\n return {\n ...serializeZodType((zt as z.ZodOptional<any>).def.innerType),\n optional: true,\n };\n case \"any\":\n return {\n type: \"any\",\n };\n case \"record\":\n return {\n type: \"record\",\n keyType: serializeZodType((zt as z.ZodRecord<any, any>).def.keyType),\n valueType: serializeZodType((zt as z.ZodRecord<any, any>).def.valueType),\n };\n case \"union\":\n return {\n type: \"union\",\n options: (zt.def as z.ZodUnion<z.ZodType<any>[]>).options.map((option) =>\n serializeZodType(option)\n ),\n };\n default:\n throw new Error(\n `Serialize 로직이 정의되지 않은 ZodType: ${zt.def.type}`\n );\n }\n}\n\n// TODO(Haze, 251031): \"template_literal\", \"file\"에 대한 지원이 필요함.\nexport function zodTypeToTsTypeDef(zt: z.ZodType): string {\n switch (zt.def.type) {\n case \"string\":\n case \"number\":\n case \"boolean\":\n case \"bigint\":\n case \"date\":\n case \"null\":\n case \"undefined\":\n case \"any\":\n case \"unknown\":\n case \"never\":\n return zt.def.type;\n case \"nullable\":\n return zodTypeToTsTypeDef((zt as z.ZodNullable<any>).def.innerType) + \" | null\";\n case \"default\":\n return zodTypeToTsTypeDef((zt as z.ZodDefault<any>).def.innerType);\n case \"record\":\n const recordType = zt as z.ZodRecord<any, any>;\n return `{ [ key: ${zodTypeToTsTypeDef(\n recordType.def.keyType\n )} ]: ${zodTypeToTsTypeDef(recordType.def.valueType)}}`;\n case \"literal\":\n return Array.from((zt as z.ZodLiteral<any>).values).map(value => {\n if (typeof value === \"string\") {\n return `\"${value}\"`;\n }\n\n if (value === null) {\n return `null`;\n }\n\n if (value === undefined) {\n return `undefined`;\n }\n\n return `${value}`;\n }).join(\" | \")\n case \"union\":\n return `${(zt as z.ZodUnion<z.ZodTypeAny[]>).options\n .map((option) => zodTypeToTsTypeDef(option))\n .join(\" | \")}`;\n case \"enum\":\n return `${(zt as z.ZodEnum).options.map((val) => `\"${val}\"`).join(\" | \")}`;\n case \"array\":\n return `${zodTypeToTsTypeDef((zt as z.ZodArray<any>).element.type)}[]`;\n case \"object\":\n const shape = (zt as z.ZodObject<any>).shape;\n return [\n \"{\",\n ...Object.keys(shape).map((key) => {\n if (shape[key].def.type === \"optional\") {\n return `${key}?: ${zodTypeToTsTypeDef(shape[key].def.innerType)},`;\n } else {\n return `${key}: ${zodTypeToTsTypeDef(shape[key])},`;\n }\n }),\n \"}\",\n ].join(\"\\n\");\n case \"optional\":\n return zodTypeToTsTypeDef((zt as z.ZodOptional<any>).def.innerType) + \" | undefined\";\n default:\n throw new Error(`처리되지 않은 ZodType ${zt.def.type}`);\n }\n}\n"],"names":["apiParamToTsCode","apiParamToTsCodeAsObject","apiParamTypeToTsType","getTextTypeLength","getZodObjectFromApi","getZodObjectFromApiParams","getZodTypeFromApiParamType","propNodeToZodTypeDef","propToZodTypeDef","serializeZodType","unwrapPromiseOnce","zodTypeToTsTypeDef","zodTypeToZodCode","api","references","typeParameters","length","map","typeParam","constraint","zodType","id","ReqType","parameters","filter","param","ApiParamType","isContext","type","isRefKnex","optional","name","startsWith","apiParams","z","object","reduce","r","paramType","string","number","boolean","advType","t","literal","value","objType","props","arrType","array","elementsType","refType","date","includes","args","Error","arg","obj","literalOrUnion","keys","ZodUnion","def","options","option","values","keyRecord","result","key","pick","omit","partial","reference","undefined","unionType","types","some","nullable","union","intersectionType","index","resolvedType","intersection","unknown","tupleType","tuple","elements","elem","propNode","injectImportKeys","nodeType","prop","children","childPropNode","join","textType","stmt","isIntegerProp","isBigIntegerProp","isTextProp","isEnumProp","push","isStringProp","isDecimalProp","isFloatProp","isDoubleProp","isBooleanProp","isDateProp","isTimeProp","isDateTimeProp","isTimestampProp","isJsonProp","isUuidProp","isVirtualProp","isRelationProp","isBelongsToOneRelationProp","isOneToOneRelationProp","hasJoinColumn","relationType","with","unsigned","zt","innerType","zDefaultDef","defaultValue","zRecordDef","keyType","valueType","items","Array","from","Object","entries","val","element","shape","zIntersectionDef","left","right","params","defaultDef","isObject","isStringLiteral","isNumericLiteral","String","isUnion","isIntersection","isArray","isRef","isIndexedAccess","isTupleType","isTypeParam","isPromise","checks","recordType"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/api/code-converters.ts"],"sourcesContent":["import { z } from \"zod\";\nimport {\n ApiParam,\n ApiParamType,\n EntityProp,\n EntityPropNode,\n TextProp,\n isBelongsToOneRelationProp,\n isBigIntegerProp,\n isBooleanProp,\n isDateProp,\n isDateTimeProp,\n isDecimalProp,\n isDoubleProp,\n isEnumProp,\n isFloatProp,\n isIntegerProp,\n isJsonProp,\n isOneToOneRelationProp,\n isRelationProp,\n isStringProp,\n isTextProp,\n isTimeProp,\n isTimestampProp,\n isUuidProp,\n isVirtualProp,\n} from \"../types/types\";\nimport { ExtendedApi } from \"./decorators\";\n\n/*\n ExtendedApi 에서 ZodObject 리턴\n*/\nexport function getZodObjectFromApi(\n api: ExtendedApi,\n references: {\n [id: string]: z.ZodObject<any>;\n } = {}\n) {\n if (api.typeParameters?.length > 0) {\n api.typeParameters.map((typeParam) => {\n if (typeParam.constraint) {\n let zodType = getZodTypeFromApiParamType(\n typeParam.constraint,\n references\n );\n (references[typeParam.id] as any) = zodType;\n }\n });\n }\n\n const ReqType = getZodObjectFromApiParams(\n api.parameters.filter(\n (param) =>\n !ApiParamType.isContext(param.type) &&\n !ApiParamType.isRefKnex(param.type) &&\n !(param.optional === true && param.name.startsWith(\"_\")) // _로 시작하는 파라미터는 제외\n ),\n references\n );\n return ReqType;\n}\n\n/*\n ZodObject를 통해 ApiParam 리턴\n*/\nexport function getZodObjectFromApiParams(\n apiParams: ApiParam[],\n references: {\n [id: string]: z.ZodObject<any>;\n } = {}\n): z.ZodObject {\n return z.object(\n apiParams.reduce((r, param) => {\n let zodType = getZodTypeFromApiParamType(param.type, references);\n if (param.optional) {\n zodType = zodType.optional();\n }\n return {\n ...r,\n [param.name]: zodType,\n };\n }, {})\n );\n}\n\n/*\n ApiParamType으로 ZodType 컨버팅\n*/\nexport function getZodTypeFromApiParamType(\n paramType: ApiParamType,\n references: {\n [id: string]: z.ZodObject<any>;\n }\n): z.ZodType<unknown> {\n switch (paramType) {\n case \"string\":\n return z.string();\n case \"number\":\n return z.number();\n case \"boolean\":\n return z.boolean();\n default:\n const advType = paramType as { t: string };\n switch (advType.t) {\n case \"string-literal\":\n case \"numeric-literal\":\n return z.literal((advType as any).value);\n case \"object\":\n const objType = paramType as { t: string; props: ApiParam[] };\n return getZodObjectFromApiParams(objType.props);\n case \"array\":\n const arrType = paramType as {\n t: string;\n elementsType: ApiParamType;\n };\n return z.array(\n getZodTypeFromApiParamType(arrType.elementsType, references)\n );\n case \"ref\":\n const refType = paramType as {\n t: string;\n id: string;\n args?: ApiParamType[];\n };\n\n // Date 타입 처리\n if (refType.id === \"Date\") {\n return z.date();\n }\n\n // 객체 키 관리 유틸리티\n if ([\"Pick\", \"Omit\"].includes(refType.id)) {\n if (refType.args?.length !== 2) {\n throw new Error(`잘못된 ${refType.id}`);\n }\n const [obj, literalOrUnion] = refType.args!.map((arg) =>\n getZodTypeFromApiParamType(arg, references)\n ) as [z.ZodObject<any>, z.ZodUnion<any> | z.ZodLiteral<string>];\n let keys: string[] = [];\n if (literalOrUnion instanceof z.ZodUnion) {\n keys = literalOrUnion.def.options.map(\n (option: { def: { value: string } }) => option.def.value\n );\n } else {\n keys = (literalOrUnion as z.ZodLiteral<string>).def.values;\n }\n const keyRecord = keys.reduce((result, key) => {\n return {\n ...result,\n [key]: true,\n };\n }, {} as any);\n\n if (refType.id === \"Pick\") {\n if (obj.pick) {\n return obj.pick(keyRecord);\n }\n } else {\n if (obj.omit) {\n return obj.omit(keyRecord);\n }\n }\n }\n if ([\"Partial\"].includes(refType.id)) {\n if (refType.args?.length !== 1) {\n throw new Error(`잘못된 ${refType.id}`);\n }\n const obj = getZodTypeFromApiParamType(refType.args[0], references);\n return (obj as any).partial();\n }\n\n const reference = references[refType.id];\n if (reference === undefined) {\n return z.string();\n // throw new Error(`ref 참조 불가 ${refType.id}`);\n }\n return reference;\n case \"union\":\n const unionType = paramType as {\n t: string;\n types: ApiParamType[];\n };\n // nullable 유니온\n if (\n unionType.types.length === 2 &&\n unionType.types.some((type) => type === \"null\")\n ) {\n if (unionType.types[0] === \"null\") {\n return getZodTypeFromApiParamType(\n unionType.types[1],\n references\n ).nullable();\n } else {\n return getZodTypeFromApiParamType(\n unionType.types[0],\n references\n ).nullable();\n }\n }\n\n // 일반 유니온\n return z.union(\n unionType.types.map((type) =>\n getZodTypeFromApiParamType(type, references)\n ) as any\n );\n case \"intersection\":\n const intersectionType = paramType as {\n t: string;\n types: ApiParamType[];\n };\n return intersectionType.types.reduce((result, type, index) => {\n const resolvedType = getZodTypeFromApiParamType(type, references);\n if (index === 0) {\n return resolvedType;\n } else {\n return z.intersection(result as any, resolvedType);\n }\n }, z.unknown() as any) as any;\n case \"tuple-type\":\n const tupleType = paramType as ApiParamType.TupleType;\n return z.tuple(\n tupleType.elements.map((elem) =>\n getZodTypeFromApiParamType(elem, references)\n ) as any\n );\n }\n return z.unknown();\n }\n}\n\nexport function propNodeToZodTypeDef(\n propNode: EntityPropNode,\n injectImportKeys: string[]\n): string {\n if (propNode.nodeType === \"plain\") {\n return propToZodTypeDef(propNode.prop, injectImportKeys);\n } else if (propNode.nodeType === \"array\") {\n return [\n propNode.prop ? `${propNode.prop.name}: ` : \"\",\n \"z.array(z.object({\",\n propNode.children\n .map((childPropNode) =>\n propNodeToZodTypeDef(childPropNode, injectImportKeys)\n )\n .join(\"\\n\"),\n \"\",\n \"})),\",\n ].join(\"\\n\");\n } else if (propNode.nodeType === \"object\") {\n return [\n propNode.prop ? `${propNode.prop.name}: ` : \"\",\n \"z.object({\",\n propNode.children\n .map((childPropNode) =>\n propNodeToZodTypeDef(childPropNode, injectImportKeys)\n )\n .join(\"\\n\"),\n \"\",\n `})${propNode.prop && propNode.prop.nullable ? \".nullable()\" : \"\"},`,\n ].join(\"\\n\");\n } else {\n throw Error;\n }\n}\n\nexport function getTextTypeLength(textType: TextProp[\"textType\"]): number {\n switch (textType) {\n case \"text\":\n return 1024 * 64 - 1;\n case \"mediumtext\":\n return 1024 * 1024 * 16 - 1;\n case \"longtext\":\n return 1024 * 1024 * 1024 * 4 - 1;\n }\n}\n\nexport function propToZodTypeDef(\n prop: EntityProp,\n injectImportKeys: string[]\n): string {\n let stmt: string;\n if (isIntegerProp(prop)) {\n stmt = `${prop.name}: z.int()`;\n } else if (isBigIntegerProp(prop)) {\n stmt = `${prop.name}: z.bigint()`;\n } else if (isTextProp(prop)) {\n stmt = `${prop.name}: z.string().max(${getTextTypeLength(prop.textType)})`;\n } else if (isEnumProp(prop)) {\n stmt = `${prop.name}: ${prop.id}`;\n injectImportKeys.push(prop.id);\n } else if (isStringProp(prop)) {\n stmt = `${prop.name}: z.string().max(${prop.length})`;\n } else if (isDecimalProp(prop)) {\n stmt = `${prop.name}: z.string()`;\n } else if (isFloatProp(prop) || isDoubleProp(prop)) {\n stmt = `${prop.name}: z.number()`;\n } else if (isBooleanProp(prop)) {\n stmt = `${prop.name}: z.boolean()`;\n } else if (isDateProp(prop)) {\n stmt = `${prop.name}: z.string().length(10)`;\n } else if (isTimeProp(prop)) {\n stmt = `${prop.name}: z.string().length(8)`;\n } else if (isDateTimeProp(prop)) {\n stmt = `${prop.name}: z.date()`;\n } else if (isTimestampProp(prop)) {\n stmt = `${prop.name}: z.date()`;\n } else if (isJsonProp(prop)) {\n stmt = `${prop.name}: ${prop.id}`;\n injectImportKeys.push(prop.id);\n } else if (isUuidProp(prop)) {\n stmt = `${prop.name}: z.uuid()`;\n } else if (isVirtualProp(prop)) {\n stmt = `${prop.name}: ${prop.id}`;\n injectImportKeys.push(prop.id);\n } else if (isRelationProp(prop)) {\n if (\n isBelongsToOneRelationProp(prop) ||\n (isOneToOneRelationProp(prop) && prop.hasJoinColumn)\n ) {\n stmt = `${prop.name}_id: z.int()`;\n } else {\n // 그외 relation 케이스 제외\n return `// ${prop.name}: ${prop.relationType} ${prop.with}`;\n }\n } else {\n return \"// unable to resolve\";\n }\n\n if ((prop as { unsigned?: boolean }).unsigned) {\n stmt += \".nonnegative()\";\n }\n if (prop.nullable) {\n stmt += \".nullable()\";\n }\n\n return stmt + \",\";\n}\n\n// TODO(Haze, 251031): \"template_literal\", \"file\"에 대한 지원이 필요함.\nexport function zodTypeToZodCode(zt: z.ZodType<any>): string {\n switch (zt.def.type) {\n case \"string\":\n return \"z.string()\";\n case \"number\":\n return \"z.number()\";\n case \"bigint\":\n return \"z.bigint()\";\n case \"boolean\":\n return \"z.boolean()\";\n case \"date\":\n return \"z.date()\";\n case \"null\":\n return \"z.null()\";\n case \"undefined\":\n return \"z.undefined()\";\n case \"any\":\n return \"z.any()\";\n case \"unknown\":\n return \"z.unknown()\";\n case \"never\":\n return \"z.never()\";\n case \"nullable\":\n return zodTypeToZodCode((zt as z.ZodNullable<any>).def.innerType) + \".nullable()\";\n case \"default\":\n const zDefaultDef = (zt as z.ZodDefault<any>).def;\n return (\n zodTypeToZodCode(zDefaultDef.innerType) +\n `.default(${zDefaultDef.defaultValue()})`\n );\n case \"record\":\n const zRecordDef = (zt as z.ZodRecord<any, any>).def;\n return `z.record(${zodTypeToZodCode(zRecordDef.keyType)}, ${zodTypeToZodCode(\n zRecordDef.valueType\n )})`;\n case \"literal\":\n const items = Array.from((zt as z.ZodLiteral<any>).values).map(value => {\n if (typeof value === \"string\") {\n return `\"${value}\"`;\n }\n\n if (value === null) {\n return `null`;\n }\n\n if (value === undefined) {\n return `undefined`;\n }\n\n return `${value}`;\n });\n\n if (items.length === 1) {\n return `z.literal(${items[0]})`;\n }\n return `z.literal([${items.join(\", \")}])`;\n case \"union\":\n return `z.union([${(zt as z.ZodUnion<any>).def.options\n .map((option: z.ZodType<any>) => zodTypeToZodCode(option))\n .join(\",\")}])`;\n case \"enum\":\n // NOTE: z.enum([\"A\", \"B\"])도 z.enum({ A: \"A\", B: \"B\" })로 처리됨.\n return `z.enum({${Object.entries((zt as z.ZodEnum).def.entries)\n .map(([key, val]) =>\n typeof val === \"string\" ? `${key}: \"${val}\"` : `${key}: ${val}`)\n .join(\", \")}})`;\n case \"array\":\n return `z.array(${zodTypeToZodCode((zt as z.ZodArray<z.ZodType>).def.element)})`;\n case \"object\":\n const shape = (zt as any).shape;\n return [\n \"z.object({\",\n ...Object.keys(shape).map(\n (key) => `${key}: ${zodTypeToZodCode(shape[key])},`\n ),\n \"})\",\n ].join(\"\\n\");\n case \"optional\":\n return zodTypeToZodCode((zt as z.ZodOptional<z.ZodType>).def.innerType) + \".optional()\";\n case \"file\":\n return `z.file()`;\n case \"intersection\":\n const zIntersectionDef = (zt as z.ZodIntersection<z.ZodType, z.ZodType>).def;\n return `z.intersection(${zodTypeToZodCode(zIntersectionDef.left)}, ${zodTypeToZodCode(zIntersectionDef.right)})`;\n case \"file\":\n return `z.file()`;\n default:\n throw new Error(`처리되지 않은 ZodType ${zt.def.type}`);\n }\n}\n\nexport function apiParamToTsCode(\n params: ApiParam[],\n injectImportKeys: string[]\n): string {\n return params\n .map((param) => {\n return `${param.name}${\n param.optional && !param.defaultDef ? \"?\" : \"\"\n }: ${apiParamTypeToTsType(param.type, injectImportKeys)}${\n param.defaultDef ? `= ${param.defaultDef}` : \"\"\n }`;\n })\n .join(\", \");\n}\n\nexport function apiParamToTsCodeAsObject(\n params: ApiParam[],\n injectImportKeys: string[]\n): string {\n return `{ ${params\n .map(\n (param) =>\n `${param.name}${param.optional ? \"?\" : \"\"}: ${apiParamTypeToTsType(\n param.type,\n injectImportKeys\n )}${param.defaultDef ? `= ${param.defaultDef}` : \"\"}`\n )\n .join(\", \")} }`;\n}\n\nexport function apiParamTypeToTsType(\n paramType: ApiParamType,\n injectImportKeys: string[]\n): string {\n if (\n [\n \"string\",\n \"number\",\n \"boolean\",\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"void\",\n \"any\",\n \"unknown\",\n ].includes(paramType as string)\n ) {\n return paramType as string;\n } else if (ApiParamType.isObject(paramType)) {\n return `{ ${apiParamToTsCode(paramType.props, injectImportKeys)} }`;\n } else if (ApiParamType.isStringLiteral(paramType)) {\n return `\"${paramType.value}\"`;\n } else if (ApiParamType.isNumericLiteral(paramType)) {\n return String(paramType.value);\n } else if (ApiParamType.isUnion(paramType)) {\n return paramType.types\n .map((type) => apiParamTypeToTsType(type, injectImportKeys))\n .join(\" | \");\n } else if (ApiParamType.isIntersection(paramType)) {\n return paramType.types\n .map((type) => apiParamTypeToTsType(type, injectImportKeys))\n .join(\" & \");\n } else if (ApiParamType.isArray(paramType)) {\n return (\n apiParamTypeToTsType(paramType.elementsType, injectImportKeys) + \"[]\"\n );\n } else if (ApiParamType.isRef(paramType)) {\n if (\n [\"Pick\", \"Omit\", \"Promise\", \"Partial\", \"Date\"].includes(paramType.id) ===\n false\n ) {\n // importKeys 인젝션\n injectImportKeys.push(paramType.id);\n }\n if (paramType.args === undefined || paramType.args.length === 0) {\n return paramType.id;\n } else {\n return `${paramType.id}<${paramType.args\n .map((arg) => apiParamTypeToTsType(arg, injectImportKeys))\n .join(\",\")}>`;\n }\n } else if (ApiParamType.isIndexedAccess(paramType)) {\n return `${apiParamTypeToTsType(\n paramType.object,\n injectImportKeys\n )}[${apiParamTypeToTsType(paramType.index, injectImportKeys)}]`;\n } else if (ApiParamType.isTupleType(paramType)) {\n return `[ ${paramType.elements.map((elem) =>\n apiParamTypeToTsType(elem, injectImportKeys)\n )} ]`;\n } else if (ApiParamType.isTypeParam(paramType)) {\n return `<${paramType.id}${\n paramType.constraint\n ? ` extends ${apiParamTypeToTsType(\n paramType.constraint,\n injectImportKeys\n )}`\n : \"\"\n }>`;\n } else {\n throw new Error(`resolve 불가 ApiParamType ${paramType}`);\n }\n}\n\nexport function unwrapPromiseOnce(paramType: ApiParamType) {\n if (ApiParamType.isPromise(paramType)) {\n return paramType.args![0];\n } else {\n return paramType;\n }\n}\n\n// TODO(Haze, 251031): \"template_literal\", \"file\"에 대한 지원이 필요함.\nexport function serializeZodType(zt: z.ZodTypeAny): any {\n switch (zt.def.type) {\n case \"object\":\n return {\n type: \"object\",\n shape: Object.keys((zt as z.ZodObject<any>).shape).reduce(\n (result, key) => {\n return {\n ...result,\n [key]: serializeZodType((zt as z.ZodObject<any>).shape[key]),\n };\n },\n {}\n ),\n };\n case \"array\":\n return {\n type: \"array\",\n element: serializeZodType((zt as z.ZodArray<any>).def.element),\n };\n case \"enum\":\n return {\n type: \"enum\",\n values: (zt as z.ZodEnum).def.entries,\n };\n case \"string\":\n return {\n type: \"string\",\n checks: zt.def.checks,\n };\n case \"number\":\n return {\n type: \"number\",\n checks: zt.def.checks,\n };\n case \"boolean\":\n return {\n type: \"boolean\",\n };\n case \"nullable\":\n return {\n ...serializeZodType((zt as z.ZodNullable<any>).def.innerType),\n nullable: true,\n };\n case \"optional\":\n return {\n ...serializeZodType((zt as z.ZodOptional<any>).def.innerType),\n optional: true,\n };\n case \"any\":\n return {\n type: \"any\",\n };\n case \"record\":\n return {\n type: \"record\",\n keyType: serializeZodType((zt as z.ZodRecord<any, any>).def.keyType),\n valueType: serializeZodType((zt as z.ZodRecord<any, any>).def.valueType),\n };\n case \"union\":\n return {\n type: \"union\",\n options: (zt.def as z.ZodUnion<z.ZodType<any>[]>).options.map((option) =>\n serializeZodType(option)\n ),\n };\n default:\n throw new Error(\n `Serialize 로직이 정의되지 않은 ZodType: ${zt.def.type}`\n );\n }\n}\n\n// TODO(Haze, 251031): \"template_literal\", \"file\"에 대한 지원이 필요함.\nexport function zodTypeToTsTypeDef(zt: z.ZodType): string {\n switch (zt.def.type) {\n case \"string\":\n case \"number\":\n case \"boolean\":\n case \"bigint\":\n case \"date\":\n case \"null\":\n case \"undefined\":\n case \"any\":\n case \"unknown\":\n case \"never\":\n return zt.def.type;\n case \"nullable\":\n return zodTypeToTsTypeDef((zt as z.ZodNullable<any>).def.innerType) + \" | null\";\n case \"default\":\n return zodTypeToTsTypeDef((zt as z.ZodDefault<any>).def.innerType);\n case \"record\":\n const recordType = zt as z.ZodRecord<any, any>;\n return `{ [ key: ${zodTypeToTsTypeDef(\n recordType.def.keyType\n )} ]: ${zodTypeToTsTypeDef(recordType.def.valueType)}}`;\n case \"literal\":\n return Array.from((zt as z.ZodLiteral<any>).values).map(value => {\n if (typeof value === \"string\") {\n return `\"${value}\"`;\n }\n\n if (value === null) {\n return `null`;\n }\n\n if (value === undefined) {\n return `undefined`;\n }\n\n return `${value}`;\n }).join(\" | \")\n case \"union\":\n return `${(zt as z.ZodUnion<z.ZodTypeAny[]>).options\n .map((option) => zodTypeToTsTypeDef(option))\n .join(\" | \")}`;\n case \"enum\":\n return `${(zt as z.ZodEnum).options.map((val) => `\"${val}\"`).join(\" | \")}`;\n case \"array\":\n return `${zodTypeToTsTypeDef((zt as z.ZodArray<any>).element.type)}[]`;\n case \"object\":\n const shape = (zt as z.ZodObject<any>).shape;\n return [\n \"{\",\n ...Object.keys(shape).map((key) => {\n if (shape[key].def.type === \"optional\") {\n return `${key}?: ${zodTypeToTsTypeDef(shape[key].def.innerType)},`;\n } else {\n return `${key}: ${zodTypeToTsTypeDef(shape[key])},`;\n }\n }),\n \"}\",\n ].join(\"\\n\");\n case \"optional\":\n return zodTypeToTsTypeDef((zt as z.ZodOptional<any>).def.innerType) + \" | undefined\";\n default:\n throw new Error(`처리되지 않은 ZodType ${zt.def.type}`);\n }\n}\n"],"names":["apiParamToTsCode","apiParamToTsCodeAsObject","apiParamTypeToTsType","getTextTypeLength","getZodObjectFromApi","getZodObjectFromApiParams","getZodTypeFromApiParamType","propNodeToZodTypeDef","propToZodTypeDef","serializeZodType","unwrapPromiseOnce","zodTypeToTsTypeDef","zodTypeToZodCode","api","references","typeParameters","length","map","typeParam","constraint","zodType","id","ReqType","parameters","filter","param","ApiParamType","isContext","type","isRefKnex","optional","name","startsWith","apiParams","z","object","reduce","r","paramType","string","number","boolean","advType","t","literal","value","objType","props","arrType","array","elementsType","refType","date","includes","args","Error","arg","obj","literalOrUnion","keys","ZodUnion","def","options","option","values","keyRecord","result","key","pick","omit","partial","reference","undefined","unionType","types","some","nullable","union","intersectionType","index","resolvedType","intersection","unknown","tupleType","tuple","elements","elem","propNode","injectImportKeys","nodeType","prop","children","childPropNode","join","textType","stmt","isIntegerProp","isBigIntegerProp","isTextProp","isEnumProp","push","isStringProp","isDecimalProp","isFloatProp","isDoubleProp","isBooleanProp","isDateProp","isTimeProp","isDateTimeProp","isTimestampProp","isJsonProp","isUuidProp","isVirtualProp","isRelationProp","isBelongsToOneRelationProp","isOneToOneRelationProp","hasJoinColumn","relationType","with","unsigned","zt","innerType","zDefaultDef","defaultValue","zRecordDef","keyType","valueType","items","Array","from","Object","entries","val","element","shape","zIntersectionDef","left","right","params","defaultDef","isObject","isStringLiteral","isNumericLiteral","String","isUnion","isIntersection","isArray","isRef","isIndexedAccess","isTupleType","isTypeParam","isPromise","checks","recordType"],"mappings":"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"}
|
package/dist/api/decorators.d.ts
CHANGED
|
@@ -26,12 +26,16 @@ export type StreamDecoratorOptions = {
|
|
|
26
26
|
guards?: GuardKey[];
|
|
27
27
|
description?: string;
|
|
28
28
|
};
|
|
29
|
+
export type UploadDecoratorOptions = {
|
|
30
|
+
mode?: "single" | "multiple";
|
|
31
|
+
};
|
|
29
32
|
export declare const registeredApis: {
|
|
30
33
|
modelName: string;
|
|
31
34
|
methodName: string;
|
|
32
35
|
path: string;
|
|
33
36
|
options: ApiDecoratorOptions;
|
|
34
37
|
streamOptions?: StreamDecoratorOptions;
|
|
38
|
+
uploadOptions?: UploadDecoratorOptions;
|
|
35
39
|
}[];
|
|
36
40
|
export type ExtendedApi = {
|
|
37
41
|
modelName: string;
|
|
@@ -39,6 +43,7 @@ export type ExtendedApi = {
|
|
|
39
43
|
path: string;
|
|
40
44
|
options: ApiDecoratorOptions;
|
|
41
45
|
streamOptions?: StreamDecoratorOptions;
|
|
46
|
+
uploadOptions?: UploadDecoratorOptions;
|
|
42
47
|
typeParameters: ApiParamType.TypeParam[];
|
|
43
48
|
parameters: ApiParam[];
|
|
44
49
|
returnType: ApiParamType;
|
|
@@ -46,5 +51,5 @@ export type ExtendedApi = {
|
|
|
46
51
|
export declare function api(options?: ApiDecoratorOptions): (target: Object, propertyKey: string) => void;
|
|
47
52
|
export declare function stream(options: StreamDecoratorOptions): (target: Object, propertyKey: string) => void;
|
|
48
53
|
export declare function transactional(options?: TransactionalOptions): (_target: Object, _propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
49
|
-
export declare function upload(): (_target: Object, _propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
54
|
+
export declare function upload(options?: UploadDecoratorOptions): (_target: Object, _propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
50
55
|
//# sourceMappingURL=decorators.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/api/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAe,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAK7E,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,IAAI,CAAC;IACZ,KAAK,EAAE,IAAI,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;CACZ;AACD,MAAM,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC;AACvC,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,iBAAiB,GACjB,KAAK,GACL,cAAc,CAAC;AACnB,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,WAAW,CAAC,EACR,YAAY,GACZ,WAAW,GACX,UAAU,GACV,kBAAkB,GAClB,0BAA0B,CAAC;IAC/B,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AACF,eAAO,MAAM,cAAc,EAAE;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,mBAAmB,CAAC;IAC7B,aAAa,CAAC,EAAE,sBAAsB,CAAC;CACxC,EAAO,CAAC;AACT,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,mBAAmB,CAAC;IAC7B,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,cAAc,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC;IACzC,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,UAAU,EAAE,YAAY,CAAC;CAC1B,CAAC;AAEF,wBAAgB,GAAG,CAAC,OAAO,GAAE,mBAAwB,IAQlC,QAAQ,MAAM,EAAE,aAAa,MAAM,UAwBrD;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,sBAAsB,IACnC,QAAQ,MAAM,EAAE,aAAa,MAAM,UA2BrD;AAED,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,IAI5D,SAAS,MAAM,EACf,cAAc,MAAM,EACpB,YAAY,kBAAkB,wBA8CjC;AAED,wBAAgB,MAAM,
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/api/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAe,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAK7E,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,IAAI,CAAC;IACZ,KAAK,EAAE,IAAI,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;CACZ;AACD,MAAM,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC;AACvC,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,iBAAiB,GACjB,KAAK,GACL,cAAc,CAAC;AACnB,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,WAAW,CAAC,EACR,YAAY,GACZ,WAAW,GACX,UAAU,GACV,kBAAkB,GAClB,0BAA0B,CAAC;IAC/B,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC9B,CAAC;AACF,eAAO,MAAM,cAAc,EAAE;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,mBAAmB,CAAC;IAC7B,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,aAAa,CAAC,EAAE,sBAAsB,CAAC;CACxC,EAAO,CAAC;AACT,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,mBAAmB,CAAC;IAC7B,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,cAAc,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC;IACzC,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,UAAU,EAAE,YAAY,CAAC;CAC1B,CAAC;AAEF,wBAAgB,GAAG,CAAC,OAAO,GAAE,mBAAwB,IAQlC,QAAQ,MAAM,EAAE,aAAa,MAAM,UAwBrD;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,sBAAsB,IACnC,QAAQ,MAAM,EAAE,aAAa,MAAM,UA2BrD;AAED,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,IAI5D,SAAS,MAAM,EACf,cAAc,MAAM,EACpB,YAAY,kBAAkB,wBA8CjC;AAED,wBAAgB,MAAM,CAAC,OAAO,GAAE,sBAA2B,IAEvD,SAAS,MAAM,EACf,cAAc,MAAM,EACpB,YAAY,kBAAkB,wBAgDjC"}
|
package/dist/api/decorators.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get api(){return api},get registeredApis(){return registeredApis},get stream(){return stream},get transactional(){return transactional},get upload(){return upload}});var _inflection=/*#__PURE__*/_interop_require_default(require("inflection"));var _db=require("../database/db");var _sonamu=require("./sonamu");function _async_iterator(iterable){var method,async,sync,retry=2;for("undefined"!=typeof Symbol&&(async=Symbol.asyncIterator,sync=Symbol.iterator);retry--;){if(async&&null!=(method=iterable[async]))return method.call(iterable);if(sync&&null!=(method=iterable[sync]))return new AsyncFromSyncIterator(method.call(iterable));async="@@asyncIterator",sync="@@iterator"}throw new TypeError("Object is not async iterable")}function AsyncFromSyncIterator(s){function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var done=r.done;return Promise.resolve(r.value).then(function(value){return{value:value,done:done}})}return AsyncFromSyncIterator=function(s){this.s=s,this.n=s.next},AsyncFromSyncIterator.prototype={s:null,n:null,next:function(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments))},return:function(value){var ret=this.s.return;return void 0===ret?Promise.resolve({value:value,done:!0}):AsyncFromSyncIteratorContinuation(ret.apply(this.s,arguments))},throw:function(value){var thr=this.s.return;return void 0===thr?Promise.reject(value):AsyncFromSyncIteratorContinuation(thr.apply(this.s,arguments))}},new AsyncFromSyncIterator(s)}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interop_require_wildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={__proto__:null};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var registeredApis=[];function api(){var options=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};options=_object_spread({httpMethod:"GET",contentType:"application/json",clients:["axios"]},options);return function(target,propertyKey){var modelName=target.constructor.name.match(/(.+)Class$/)[1];var methodName=propertyKey;var defaultPath="/".concat(_inflection.default.camelize(modelName.replace(/Model$/,"").replace(/Frame$/,""),true),"/").concat(_inflection.default.camelize(propertyKey,true));var existingApi=registeredApis.find(function(api){return api.modelName===modelName&&api.methodName===methodName});if(existingApi){existingApi.options=options}else{var _options_path;registeredApis.push({modelName:modelName,methodName:methodName,path:(_options_path=options.path)!==null&&_options_path!==void 0?_options_path:defaultPath,options:options})}}}function stream(options){return function(target,propertyKey){var modelName=target.constructor.name.match(/(.+)Class$/)[1];var methodName=propertyKey;var defaultPath="/".concat(_inflection.default.camelize(modelName.replace(/Model$/,"").replace(/Frame$/,""),true),"/").concat(_inflection.default.camelize(propertyKey,true));var existingApi=registeredApis.find(function(api){return api.modelName===modelName&&api.methodName===methodName});if(existingApi){existingApi.options=options}else{var _options_path;registeredApis.push({modelName:modelName,methodName:methodName,path:(_options_path=options.path)!==null&&_options_path!==void 0?_options_path:defaultPath,options:_object_spread_props(_object_spread({},options),{httpMethod:"GET"}),streamOptions:options})}}}function transactional(){var options=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};var isolation=options.isolation,readOnly=options.readOnly,_options_dbPreset=options.dbPreset,dbPreset=_options_dbPreset===void 0?"w":_options_dbPreset;return function(_target,_propertyKey,descriptor){var originalMethod=descriptor.value;descriptor.value=function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}return _async_to_generator(function(){var _this,existingContext,startTransaction;return _ts_generator(this,function(_state){_this=this;existingContext=_db.DB.transactionStorage.getStore();if(existingContext){if(existingContext.getTransaction(dbPreset)){return[2,originalMethod.apply(this,args)]}}startTransaction=function(){return _async_to_generator(function(){var _this,puri;return _ts_generator(this,function(_state){_this=this;puri=this.getPuri(dbPreset);return[2,puri.transaction(function(trx){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:_db.DB.getTransactionContext().setTransaction(dbPreset,trx);_state.label=1;case 1:_state.trys.push([1,,3,4]);return[4,originalMethod.apply(this,args)];case 2:return[2,_state.sent()];case 3:_db.DB.getTransactionContext().deleteTransaction(dbPreset);return[7];case 4:return[2]}})}).call(_this)},{isolation:isolation,readOnly:readOnly})]})}).call(_this)};if(!existingContext){return[2,_db.DB.runWithTransaction(startTransaction)]}else{return[2,startTransaction()]}return[2]})}).call(this)};return descriptor}}function upload(){return function(_target,_propertyKey,descriptor){var originalMethod=descriptor.value;descriptor.value=function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}return _async_to_generator(function(){var _this,request,uploadContext,storage,rawFile,FileStorage,FileStorage1,rawFilesIterator,_iteratorAbruptCompletion,_didIteratorError,_iteratorError,_iterator,_step,_value,rawFile1,err;return _ts_generator(this,function(_state){switch(_state.label){case 0:_this=this;request=_sonamu.Sonamu.getContext().request;uploadContext={file:undefined,files:[]};storage=_sonamu.Sonamu.storage;if(!storage){throw new Error("Storage가 설정되지 않았습니다.")}if(!request.file)return[3,4];return[4,request.file()];case 1:rawFile=_state.sent();if(!rawFile)return[3,3];return[4,Promise.resolve().then(function(){return /*#__PURE__*/_interop_require_wildcard(require("../file-storage/file-storage"))})];case 2:FileStorage=_state.sent().FileStorage;uploadContext.file=new FileStorage(rawFile,storage);_state.label=3;case 3:return[3,17];case 4:if(!request.files)return[3,17];return[4,Promise.resolve().then(function(){return /*#__PURE__*/_interop_require_wildcard(require("../file-storage/file-storage"))})];case 5:FileStorage1=_state.sent().FileStorage;rawFilesIterator=request.files();_iteratorAbruptCompletion=false,_didIteratorError=false;_state.label=6;case 6:_state.trys.push([6,11,12,17]);_iterator=_async_iterator(rawFilesIterator);_state.label=7;case 7:return[4,_iterator.next()];case 8:if(!(_iteratorAbruptCompletion=!(_step=_state.sent()).done))return[3,10];_value=_step.value;rawFile1=_value;if(rawFile1){uploadContext.files.push(new FileStorage1(rawFile1,storage))}_state.label=9;case 9:_iteratorAbruptCompletion=false;return[3,7];case 10:return[3,17];case 11:err=_state.sent();_didIteratorError=true;_iteratorError=err;return[3,17];case 12:_state.trys.push([12,,15,16]);if(!(_iteratorAbruptCompletion&&_iterator.return!=null))return[3,14];return[4,_iterator.return()];case 13:_state.sent();_state.label=14;case 14:return[3,16];case 15:if(_didIteratorError){throw _iteratorError}return[7];case 16:return[7];case 17:return[2,_sonamu.Sonamu.uploadStorage.run({uploadContext:uploadContext},function(){return originalMethod.apply(_this,args)})]}})}).call(this)};return descriptor}}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get api(){return api},get registeredApis(){return registeredApis},get stream(){return stream},get transactional(){return transactional},get upload(){return upload}});var _inflection=/*#__PURE__*/_interop_require_default(require("inflection"));var _db=require("../database/db");var _sonamu=require("./sonamu");function _async_iterator(iterable){var method,async,sync,retry=2;for("undefined"!=typeof Symbol&&(async=Symbol.asyncIterator,sync=Symbol.iterator);retry--;){if(async&&null!=(method=iterable[async]))return method.call(iterable);if(sync&&null!=(method=iterable[sync]))return new AsyncFromSyncIterator(method.call(iterable));async="@@asyncIterator",sync="@@iterator"}throw new TypeError("Object is not async iterable")}function AsyncFromSyncIterator(s){function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var done=r.done;return Promise.resolve(r.value).then(function(value){return{value:value,done:done}})}return AsyncFromSyncIterator=function(s){this.s=s,this.n=s.next},AsyncFromSyncIterator.prototype={s:null,n:null,next:function(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments))},return:function(value){var ret=this.s.return;return void 0===ret?Promise.resolve({value:value,done:!0}):AsyncFromSyncIteratorContinuation(ret.apply(this.s,arguments))},throw:function(value){var thr=this.s.return;return void 0===thr?Promise.reject(value):AsyncFromSyncIteratorContinuation(thr.apply(this.s,arguments))}},new AsyncFromSyncIterator(s)}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interop_require_wildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={__proto__:null};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var registeredApis=[];function api(){var options=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};options=_object_spread({httpMethod:"GET",contentType:"application/json",clients:["axios"]},options);return function(target,propertyKey){var modelName=target.constructor.name.match(/(.+)Class$/)[1];var methodName=propertyKey;var defaultPath="/".concat(_inflection.default.camelize(modelName.replace(/Model$/,"").replace(/Frame$/,""),true),"/").concat(_inflection.default.camelize(propertyKey,true));var existingApi=registeredApis.find(function(api){return api.modelName===modelName&&api.methodName===methodName});if(existingApi){existingApi.options=options}else{var _options_path;registeredApis.push({modelName:modelName,methodName:methodName,path:(_options_path=options.path)!==null&&_options_path!==void 0?_options_path:defaultPath,options:options})}}}function stream(options){return function(target,propertyKey){var modelName=target.constructor.name.match(/(.+)Class$/)[1];var methodName=propertyKey;var defaultPath="/".concat(_inflection.default.camelize(modelName.replace(/Model$/,"").replace(/Frame$/,""),true),"/").concat(_inflection.default.camelize(propertyKey,true));var existingApi=registeredApis.find(function(api){return api.modelName===modelName&&api.methodName===methodName});if(existingApi){existingApi.options=options}else{var _options_path;registeredApis.push({modelName:modelName,methodName:methodName,path:(_options_path=options.path)!==null&&_options_path!==void 0?_options_path:defaultPath,options:_object_spread_props(_object_spread({},options),{httpMethod:"GET"}),streamOptions:options})}}}function transactional(){var options=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};var isolation=options.isolation,readOnly=options.readOnly,_options_dbPreset=options.dbPreset,dbPreset=_options_dbPreset===void 0?"w":_options_dbPreset;return function(_target,_propertyKey,descriptor){var originalMethod=descriptor.value;descriptor.value=function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}return _async_to_generator(function(){var _this,existingContext,startTransaction;return _ts_generator(this,function(_state){_this=this;existingContext=_db.DB.transactionStorage.getStore();if(existingContext){if(existingContext.getTransaction(dbPreset)){return[2,originalMethod.apply(this,args)]}}startTransaction=function(){return _async_to_generator(function(){var _this,puri;return _ts_generator(this,function(_state){_this=this;puri=this.getPuri(dbPreset);return[2,puri.transaction(function(trx){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:_db.DB.getTransactionContext().setTransaction(dbPreset,trx);_state.label=1;case 1:_state.trys.push([1,,3,4]);return[4,originalMethod.apply(this,args)];case 2:return[2,_state.sent()];case 3:_db.DB.getTransactionContext().deleteTransaction(dbPreset);return[7];case 4:return[2]}})}).call(_this)},{isolation:isolation,readOnly:readOnly})]})}).call(_this)};if(!existingContext){return[2,_db.DB.runWithTransaction(startTransaction)]}else{return[2,startTransaction()]}return[2]})}).call(this)};return descriptor}}function upload(){var options=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return function(_target,_propertyKey,descriptor){var originalMethod=descriptor.value;var modelName=_target.constructor.name.match(/(.+)Class$/)[1];var methodName=_propertyKey;var existingApi=registeredApis.find(function(api){return api.modelName===modelName&&api.methodName===methodName});if(existingApi){existingApi.uploadOptions=options}descriptor.value=function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}return _async_to_generator(function(){var _this,request,uploadContext,storage,FileStorage,rawFilesIterator,_iteratorAbruptCompletion,_didIteratorError,_iteratorError,_iterator,_step,_value,rawFile,err,rawFile1;return _ts_generator(this,function(_state){switch(_state.label){case 0:_this=this;request=_sonamu.Sonamu.getContext().request;uploadContext={file:undefined,files:[]};storage=_sonamu.Sonamu.storage;if(!storage){throw new Error("Storage가 설정되지 않았습니다.")}return[4,Promise.resolve().then(function(){return /*#__PURE__*/_interop_require_wildcard(require("../file-storage/file-storage"))})];case 1:FileStorage=_state.sent().FileStorage;if(!(options.mode==="multiple"))return[3,14];rawFilesIterator=request.files();_iteratorAbruptCompletion=false,_didIteratorError=false;_state.label=2;case 2:_state.trys.push([2,7,8,13]);_iterator=_async_iterator(rawFilesIterator);_state.label=3;case 3:return[4,_iterator.next()];case 4:if(!(_iteratorAbruptCompletion=!(_step=_state.sent()).done))return[3,6];_value=_step.value;rawFile=_value;if(rawFile){uploadContext.files.push(new FileStorage(rawFile,storage))}_state.label=5;case 5:_iteratorAbruptCompletion=false;return[3,3];case 6:return[3,13];case 7:err=_state.sent();_didIteratorError=true;_iteratorError=err;return[3,13];case 8:_state.trys.push([8,,11,12]);if(!(_iteratorAbruptCompletion&&_iterator.return!=null))return[3,10];return[4,_iterator.return()];case 9:_state.sent();_state.label=10;case 10:return[3,12];case 11:if(_didIteratorError){throw _iteratorError}return[7];case 12:return[7];case 13:return[3,16];case 14:return[4,request.file()];case 15:rawFile1=_state.sent();if(rawFile1){uploadContext.file=new FileStorage(rawFile1,storage)}_state.label=16;case 16:return[2,_sonamu.Sonamu.uploadStorage.run({uploadContext:uploadContext},function(){return originalMethod.apply(_this,args)})]}})}).call(this)};return descriptor}}
|
|
2
2
|
//# sourceMappingURL=decorators.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/api/decorators.ts"],"sourcesContent":["import type { HTTPMethods } from \"fastify\";\nimport inflection from \"inflection\";\nimport type { ApiParam, ApiParamType } from \"../types/types\";\nimport { z } from \"zod\";\nimport { PuriWrapper, TransactionalOptions } from \"../database/puri-wrapper\";\nimport { DB } from \"../database/db\";\nimport { Sonamu } from \"./sonamu\";\nimport type { UploadContext } from \"./context\";\n\nexport interface GuardKeys {\n query: true;\n admin: true;\n user: true;\n}\nexport type GuardKey = keyof GuardKeys;\nexport type ServiceClient =\n | \"axios\"\n | \"axios-multipart\"\n | \"swr\"\n | \"window-fetch\";\nexport type ApiDecoratorOptions = {\n httpMethod?: HTTPMethods;\n contentType?:\n | \"text/plain\"\n | \"text/html\"\n | \"text/xml\"\n | \"application/json\"\n | \"application/octet-stream\";\n clients?: ServiceClient[];\n path?: string;\n resourceName?: string;\n guards?: GuardKey[];\n description?: string;\n};\nexport type StreamDecoratorOptions = {\n type: \"sse\"; // | 'ws\n events: z.ZodObject<any>;\n path?: string;\n resourceName?: string;\n guards?: GuardKey[];\n description?: string;\n};\nexport const registeredApis: {\n modelName: string;\n methodName: string;\n path: string;\n options: ApiDecoratorOptions;\n streamOptions?: StreamDecoratorOptions;\n}[] = [];\nexport type ExtendedApi = {\n modelName: string;\n methodName: string;\n path: string;\n options: ApiDecoratorOptions;\n streamOptions?: StreamDecoratorOptions;\n typeParameters: ApiParamType.TypeParam[];\n parameters: ApiParam[];\n returnType: ApiParamType;\n};\n\nexport function api(options: ApiDecoratorOptions = {}) {\n options = {\n httpMethod: \"GET\",\n contentType: \"application/json\",\n clients: [\"axios\"],\n ...options,\n };\n\n return function (target: Object, propertyKey: string) {\n const modelName = target.constructor.name.match(/(.+)Class$/)![1];\n const methodName = propertyKey;\n\n const defaultPath = `/${inflection.camelize(\n modelName.replace(/Model$/, \"\").replace(/Frame$/, \"\"),\n true\n )}/${inflection.camelize(propertyKey, true)}`;\n\n // 기존 동일한 메서드가 있는지 확인 후 있는 경우 override\n const existingApi = registeredApis.find(\n (api) => api.modelName === modelName && api.methodName === methodName\n );\n if (existingApi) {\n existingApi.options = options;\n } else {\n registeredApis.push({\n modelName,\n methodName,\n path: options.path ?? defaultPath,\n options,\n });\n }\n };\n}\n\nexport function stream(options: StreamDecoratorOptions) {\n return function (target: Object, propertyKey: string) {\n const modelName = target.constructor.name.match(/(.+)Class$/)![1];\n const methodName = propertyKey;\n\n const defaultPath = `/${inflection.camelize(\n modelName.replace(/Model$/, \"\").replace(/Frame$/, \"\"),\n true\n )}/${inflection.camelize(propertyKey, true)}`;\n\n const existingApi = registeredApis.find(\n (api) => api.modelName === modelName && api.methodName === methodName\n );\n if (existingApi) {\n existingApi.options = options;\n } else {\n registeredApis.push({\n modelName,\n methodName,\n path: options.path ?? defaultPath,\n options: {\n ...options,\n httpMethod: \"GET\",\n },\n streamOptions: options,\n });\n }\n };\n}\n\nexport function transactional(options: TransactionalOptions = {}) {\n const { isolation, readOnly, dbPreset = \"w\" } = options;\n\n return function (\n _target: Object,\n _propertyKey: string,\n descriptor: PropertyDescriptor\n ) {\n const originalMethod = descriptor.value;\n\n descriptor.value = async function (this: any, ...args: any[]) {\n const existingContext = DB.transactionStorage.getStore();\n\n // 이미 AsyncLocalStorage 컨텍스트 안에 있는지 확인\n if (existingContext) {\n // 해당 preset의 트랜잭션이 이미 있으면 재사용\n if (existingContext.getTransaction(dbPreset)) {\n return originalMethod.apply(this, args);\n }\n }\n\n // AsyncLocalStorage 컨텍스트 없거나 해당 preset의 트랜잭션이 없으면 새로 시작\n const startTransaction = async () => {\n const puri = this.getPuri(dbPreset) as PuriWrapper;\n\n return puri.transaction(\n async (trx: PuriWrapper) => {\n // TransactionContext에 트랜잭션 저장\n DB.getTransactionContext().setTransaction(dbPreset, trx);\n\n try {\n return await originalMethod.apply(this, args);\n } finally {\n // 트랜잭션 제거\n DB.getTransactionContext().deleteTransaction(dbPreset);\n }\n },\n { isolation, readOnly }\n );\n };\n\n // AsyncLocalStorage 컨텍스트가 없으면 새로 생성\n if (!existingContext) {\n return DB.runWithTransaction(startTransaction);\n } else {\n // 컨텍스트는 있지만 이 preset의 트랜잭션은 없는 경우 (같은 컨텍스트 내에서 실행)\n return startTransaction();\n }\n };\n\n return descriptor;\n };\n}\n\nexport function upload() {\n return function (\n _target: Object,\n _propertyKey: string,\n descriptor: PropertyDescriptor\n ) {\n const originalMethod = descriptor.value;\n\n descriptor.value = async function (this: any, ...args: any[]) {\n const { request } = Sonamu.getContext();\n const uploadContext: UploadContext = {\n file: undefined,\n files: [],\n };\n\n const storage = Sonamu.storage;\n if (!storage) {\n throw new Error(\"Storage가 설정되지 않았습니다.\");\n }\n\n if (request.file) {\n const rawFile = await request.file();\n if (rawFile) {\n const { FileStorage } = await import(\"../file-storage/file-storage\");\n uploadContext.file = new FileStorage(rawFile, storage);\n }\n } else if (request.files) {\n const { FileStorage } = await import(\"../file-storage/file-storage\");\n const rawFilesIterator = request.files();\n for await (const rawFile of rawFilesIterator) {\n if (rawFile) {\n uploadContext.files.push(new FileStorage(rawFile, storage));\n }\n }\n }\n\n return Sonamu.uploadStorage.run({ uploadContext }, () => {\n return originalMethod.apply(this, args);\n });\n };\n\n return descriptor;\n };\n}\n"],"names":["api","registeredApis","stream","transactional","upload","options","httpMethod","contentType","clients","target","propertyKey","modelName","name","match","methodName","defaultPath","inflection","camelize","replace","existingApi","find","push","path","streamOptions","isolation","readOnly","dbPreset","_target","_propertyKey","descriptor","originalMethod","value","args","existingContext","startTransaction","DB","transactionStorage","getStore","getTransaction","apply","puri","getPuri","transaction","trx","getTransactionContext","setTransaction","deleteTransaction","runWithTransaction","request","uploadContext","storage","rawFile","FileStorage","rawFilesIterator","Sonamu","getContext","file","undefined","files","Error","uploadStorage","run"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/api/decorators.ts"],"sourcesContent":["import type { HTTPMethods } from \"fastify\";\nimport inflection from \"inflection\";\nimport type { ApiParam, ApiParamType } from \"../types/types\";\nimport { z } from \"zod\";\nimport { PuriWrapper, TransactionalOptions } from \"../database/puri-wrapper\";\nimport { DB } from \"../database/db\";\nimport { Sonamu } from \"./sonamu\";\nimport type { UploadContext } from \"./context\";\n\nexport interface GuardKeys {\n query: true;\n admin: true;\n user: true;\n}\nexport type GuardKey = keyof GuardKeys;\nexport type ServiceClient =\n | \"axios\"\n | \"axios-multipart\"\n | \"swr\"\n | \"window-fetch\";\nexport type ApiDecoratorOptions = {\n httpMethod?: HTTPMethods;\n contentType?:\n | \"text/plain\"\n | \"text/html\"\n | \"text/xml\"\n | \"application/json\"\n | \"application/octet-stream\";\n clients?: ServiceClient[];\n path?: string;\n resourceName?: string;\n guards?: GuardKey[];\n description?: string;\n};\nexport type StreamDecoratorOptions = {\n type: \"sse\"; // | 'ws\n events: z.ZodObject<any>;\n path?: string;\n resourceName?: string;\n guards?: GuardKey[];\n description?: string;\n};\nexport type UploadDecoratorOptions = {\n mode?: \"single\" | \"multiple\";\n};\nexport const registeredApis: {\n modelName: string;\n methodName: string;\n path: string;\n options: ApiDecoratorOptions;\n streamOptions?: StreamDecoratorOptions;\n uploadOptions?: UploadDecoratorOptions;\n}[] = [];\nexport type ExtendedApi = {\n modelName: string;\n methodName: string;\n path: string;\n options: ApiDecoratorOptions;\n streamOptions?: StreamDecoratorOptions;\n uploadOptions?: UploadDecoratorOptions;\n typeParameters: ApiParamType.TypeParam[];\n parameters: ApiParam[];\n returnType: ApiParamType;\n};\n\nexport function api(options: ApiDecoratorOptions = {}) {\n options = {\n httpMethod: \"GET\",\n contentType: \"application/json\",\n clients: [\"axios\"],\n ...options,\n };\n\n return function (target: Object, propertyKey: string) {\n const modelName = target.constructor.name.match(/(.+)Class$/)![1];\n const methodName = propertyKey;\n\n const defaultPath = `/${inflection.camelize(\n modelName.replace(/Model$/, \"\").replace(/Frame$/, \"\"),\n true\n )}/${inflection.camelize(propertyKey, true)}`;\n\n // 기존 동일한 메서드가 있는지 확인 후 있는 경우 override\n const existingApi = registeredApis.find(\n (api) => api.modelName === modelName && api.methodName === methodName\n );\n if (existingApi) {\n existingApi.options = options;\n } else {\n registeredApis.push({\n modelName,\n methodName,\n path: options.path ?? defaultPath,\n options,\n });\n }\n };\n}\n\nexport function stream(options: StreamDecoratorOptions) {\n return function (target: Object, propertyKey: string) {\n const modelName = target.constructor.name.match(/(.+)Class$/)![1];\n const methodName = propertyKey;\n\n const defaultPath = `/${inflection.camelize(\n modelName.replace(/Model$/, \"\").replace(/Frame$/, \"\"),\n true\n )}/${inflection.camelize(propertyKey, true)}`;\n\n const existingApi = registeredApis.find(\n (api) => api.modelName === modelName && api.methodName === methodName\n );\n if (existingApi) {\n existingApi.options = options;\n } else {\n registeredApis.push({\n modelName,\n methodName,\n path: options.path ?? defaultPath,\n options: {\n ...options,\n httpMethod: \"GET\",\n },\n streamOptions: options,\n });\n }\n };\n}\n\nexport function transactional(options: TransactionalOptions = {}) {\n const { isolation, readOnly, dbPreset = \"w\" } = options;\n\n return function (\n _target: Object,\n _propertyKey: string,\n descriptor: PropertyDescriptor\n ) {\n const originalMethod = descriptor.value;\n\n descriptor.value = async function (this: any, ...args: any[]) {\n const existingContext = DB.transactionStorage.getStore();\n\n // 이미 AsyncLocalStorage 컨텍스트 안에 있는지 확인\n if (existingContext) {\n // 해당 preset의 트랜잭션이 이미 있으면 재사용\n if (existingContext.getTransaction(dbPreset)) {\n return originalMethod.apply(this, args);\n }\n }\n\n // AsyncLocalStorage 컨텍스트 없거나 해당 preset의 트랜잭션이 없으면 새로 시작\n const startTransaction = async () => {\n const puri = this.getPuri(dbPreset) as PuriWrapper;\n\n return puri.transaction(\n async (trx: PuriWrapper) => {\n // TransactionContext에 트랜잭션 저장\n DB.getTransactionContext().setTransaction(dbPreset, trx);\n\n try {\n return await originalMethod.apply(this, args);\n } finally {\n // 트랜잭션 제거\n DB.getTransactionContext().deleteTransaction(dbPreset);\n }\n },\n { isolation, readOnly }\n );\n };\n\n // AsyncLocalStorage 컨텍스트가 없으면 새로 생성\n if (!existingContext) {\n return DB.runWithTransaction(startTransaction);\n } else {\n // 컨텍스트는 있지만 이 preset의 트랜잭션은 없는 경우 (같은 컨텍스트 내에서 실행)\n return startTransaction();\n }\n };\n\n return descriptor;\n };\n}\n\nexport function upload(options: UploadDecoratorOptions = {}) {\n return function (\n _target: Object,\n _propertyKey: string,\n descriptor: PropertyDescriptor\n ) {\n const originalMethod = descriptor.value;\n const modelName = _target.constructor.name.match(/(.+)Class$/)![1];\n const methodName = _propertyKey;\n\n // registeredApis에서 해당 API 찾아서 uploadOptions 추가\n const existingApi = registeredApis.find(\n (api) => api.modelName === modelName && api.methodName === methodName\n );\n if (existingApi) {\n existingApi.uploadOptions = options;\n }\n\n descriptor.value = async function (this: any, ...args: any[]) {\n const { request } = Sonamu.getContext();\n const uploadContext: UploadContext = {\n file: undefined,\n files: [],\n };\n\n const storage = Sonamu.storage;\n if (!storage) {\n throw new Error(\"Storage가 설정되지 않았습니다.\");\n }\n\n const { FileStorage } = await import(\"../file-storage/file-storage\");\n if (options.mode === \"multiple\") {\n const rawFilesIterator = request.files();\n for await (const rawFile of rawFilesIterator) {\n if (rawFile) {\n uploadContext.files.push(new FileStorage(rawFile, storage));\n }\n }\n } else {\n const rawFile = await request.file();\n if (rawFile) {\n uploadContext.file = new FileStorage(rawFile, storage);\n }\n }\n\n return Sonamu.uploadStorage.run({ uploadContext }, () => {\n return originalMethod.apply(this, args);\n });\n };\n\n return descriptor;\n };\n}\n"],"names":["api","registeredApis","stream","transactional","upload","options","httpMethod","contentType","clients","target","propertyKey","modelName","name","match","methodName","defaultPath","inflection","camelize","replace","existingApi","find","push","path","streamOptions","isolation","readOnly","dbPreset","_target","_propertyKey","descriptor","originalMethod","value","args","existingContext","startTransaction","DB","transactionStorage","getStore","getTransaction","apply","puri","getPuri","transaction","trx","getTransactionContext","setTransaction","deleteTransaction","runWithTransaction","uploadOptions","request","uploadContext","storage","FileStorage","rawFilesIterator","rawFile","Sonamu","getContext","file","undefined","files","Error","mode","uploadStorage","run"],"mappings":"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"}
|
package/dist/bin/cli-wrapper.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env ts-node
|
|
2
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _child_process=require("child_process");var _path=require("path");var _fs=require("fs");var _chalk=/*#__PURE__*/_interop_require_default(require("chalk"));var _buildconfig=require("./build-config");function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_without_holes(arr){if(Array.isArray(arr))return _array_like_to_array(arr)}function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}function _iterable_to_array(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}var scriptPath=(0,_path.resolve)(__dirname,"cli.js");var args=process.argv.slice(2);function build(){var checkTypes=arguments.length>0&&arguments[0]!==void 0?arguments[0]:false;try{(0,_child_process.execSync)(_buildconfig.SWC_BUILD_COMMAND,{cwd:process.cwd(),stdio:"inherit"})}catch(error){console.error(_chalk.default.red("Build failed."),error);process.exit(1)}if(checkTypes){try{console.log(_chalk.default.blue("Checking types with tsc..."));(0,_child_process.execSync)(_buildconfig.TSC_TYPE_CHECK_COMMAND,{cwd:process.cwd(),stdio:"inherit"})}catch(error){console.error(_chalk.default.red("Type check failed."),error);process.exit(1)}}}if(args[0]==="build"){console.log(_chalk.default.blue("Building the project..."));build(true);console.log(_chalk.default.green("Build completed successfully."));process.exit(0)}if(args[0]==="dev:serve"){build()}if(!(0,_fs.existsSync)(scriptPath)){console.error("Error: Script not found at ".concat(scriptPath));process.exit(1)}var result=(0,_child_process.spawnSync)(process.execPath,["--no-warnings",scriptPath].concat(_to_consumable_array(args)),{stdio:"inherit"});var _result_status;process.exit((_result_status=result.status)!==null&&_result_status!==void 0?_result_status:1);
|
|
2
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _child_process=require("child_process");var _path=require("path");var _fs=require("fs");var _chalk=/*#__PURE__*/_interop_require_default(require("chalk"));var _buildconfig=require("./build-config");function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_without_holes(arr){if(Array.isArray(arr))return _array_like_to_array(arr)}function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}function _iterable_to_array(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}var scriptPath=(0,_path.resolve)(__dirname,"cli.js");var args=process.argv.slice(2);function build(){var checkTypes=arguments.length>0&&arguments[0]!==void 0?arguments[0]:false;try{(0,_child_process.execSync)(_buildconfig.SWC_BUILD_COMMAND,{cwd:process.cwd(),stdio:"inherit"})}catch(error){console.error(_chalk.default.red("Build failed."),error);process.exit(1)}if(checkTypes){try{console.log(_chalk.default.blue("Checking types with tsc..."));(0,_child_process.execSync)(_buildconfig.TSC_TYPE_CHECK_COMMAND,{cwd:process.cwd(),stdio:"inherit"})}catch(error){console.error(_chalk.default.red("Type check failed."),error);process.exit(1)}}}if(args[0]==="build"){console.log(_chalk.default.blue("Building the project..."));build(true);console.log(_chalk.default.green("Build completed successfully."));process.exit(0)}if(args[0]==="dev:serve"){build()}if(!(0,_fs.existsSync)(scriptPath)){console.error("Error: Script not found at ".concat(scriptPath));process.exit(1)}var result=(0,_child_process.spawnSync)(process.execPath,["-r","source-map-support/register","--no-warnings",scriptPath].concat(_to_consumable_array(args)),{stdio:"inherit"});var _result_status;process.exit((_result_status=result.status)!==null&&_result_status!==void 0?_result_status:1);
|
|
3
3
|
//# sourceMappingURL=cli-wrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/bin/cli-wrapper.ts"],"sourcesContent":["#!/usr/bin/env ts-node\n\nimport { spawnSync, execSync } from \"child_process\";\nimport { resolve } from \"path\";\nimport { existsSync } from \"fs\";\nimport chalk from \"chalk\";\nimport { SWC_BUILD_COMMAND, TSC_TYPE_CHECK_COMMAND } from \"./build-config\";\n\nconst scriptPath = resolve(__dirname, \"cli.js\");\nconst args = process.argv.slice(2);\n\n// build 명령어는 dist 없이도 실행 가능하도록 cli.ts 외부에서 처리(Sonamu.init에서 dist 필요)\nfunction build(checkTypes: boolean = false) {\n try {\n execSync(SWC_BUILD_COMMAND, { cwd: process.cwd(), stdio: \"inherit\" });\n } catch (error) {\n console.error(chalk.red(\"Build failed.\"), error);\n process.exit(1);\n }\n\n if (checkTypes) {\n try {\n console.log(chalk.blue(\"Checking types with tsc...\"));\n execSync(TSC_TYPE_CHECK_COMMAND, { cwd: process.cwd(), stdio: \"inherit\" });\n } catch (error) {\n console.error(chalk.red(\"Type check failed.\"), error);\n process.exit(1);\n }\n }\n}\n\nif (args[0] === \"build\") {\n console.log(chalk.blue(\"Building the project...\"));\n build(true);\n console.log(chalk.green(\"Build completed successfully.\"));\n process.exit(0);\n}\n\nif (args[0] === \"dev:serve\") {\n build();\n}\n\nif (!existsSync(scriptPath)) {\n console.error(`Error: Script not found at ${scriptPath}`);\n process.exit(1);\n}\n\nconst result = spawnSync(\n process.execPath,\n [\"--no-warnings\", scriptPath, ...args],\n {\n stdio: \"inherit\",\n }\n);\n\nprocess.exit(result.status ?? 1);\n"],"names":["scriptPath","resolve","__dirname","args","process","argv","slice","build","checkTypes","execSync","SWC_BUILD_COMMAND","cwd","stdio","error","console","chalk","red","exit","log","blue","TSC_TYPE_CHECK_COMMAND","green","existsSync","result","spawnSync","execPath","status"],"mappings":";iGAEoC,mCACZ,wBACG,+DACT,mCACwC,6rCAE1D,IAAMA,WAAaC,GAAAA,aAAO,EAACC,UAAW,UACtC,IAAMC,KAAOC,QAAQC,IAAI,CAACC,KAAK,CAAC,GAGhC,SAASC,YAAMC,WAAAA,uDAAsB,MACnC,GAAI,CACFC,GAAAA,uBAAQ,EAACC,8BAAiB,CAAE,CAAEC,IAAKP,QAAQO,GAAG,GAAIC,MAAO,SAAU,EACrE,CAAE,MAAOC,MAAO,CACdC,QAAQD,KAAK,CAACE,cAAK,CAACC,GAAG,CAAC,iBAAkBH,OAC1CT,QAAQa,IAAI,CAAC,EACf,CAEA,GAAIT,WAAY,CACd,GAAI,CACFM,QAAQI,GAAG,CAACH,cAAK,CAACI,IAAI,CAAC,+BACvBV,GAAAA,uBAAQ,EAACW,mCAAsB,CAAE,CAAET,IAAKP,QAAQO,GAAG,GAAIC,MAAO,SAAU,EAC1E,CAAE,MAAOC,MAAO,CACdC,QAAQD,KAAK,CAACE,cAAK,CAACC,GAAG,CAAC,sBAAuBH,OAC/CT,QAAQa,IAAI,CAAC,EACf,CACF,CACF,CAEA,GAAId,IAAI,CAAC,EAAE,GAAK,QAAS,CACvBW,QAAQI,GAAG,CAACH,cAAK,CAACI,IAAI,CAAC,4BACvBZ,MAAM,MACNO,QAAQI,GAAG,CAACH,cAAK,CAACM,KAAK,CAAC,kCACxBjB,QAAQa,IAAI,CAAC,EACf,CAEA,GAAId,IAAI,CAAC,EAAE,GAAK,YAAa,CAC3BI,OACF,CAEA,GAAI,CAACe,GAAAA,cAAU,EAACtB,YAAa,CAC3Bc,QAAQD,KAAK,CAAC,AAAC,8BAAwC,OAAXb,aAC5CI,QAAQa,IAAI,CAAC,EACf,CAEA,IAAMM,OAASC,GAAAA,wBAAS,EACtBpB,QAAQqB,QAAQ,CAChB,CAAC,gBAAiBzB,WAAoB,
|
|
1
|
+
{"version":3,"sources":["../../src/bin/cli-wrapper.ts"],"sourcesContent":["#!/usr/bin/env ts-node\n\nimport { spawnSync, execSync } from \"child_process\";\nimport { resolve } from \"path\";\nimport { existsSync } from \"fs\";\nimport chalk from \"chalk\";\nimport { SWC_BUILD_COMMAND, TSC_TYPE_CHECK_COMMAND } from \"./build-config\";\n\nconst scriptPath = resolve(__dirname, \"cli.js\");\nconst args = process.argv.slice(2);\n\n// build 명령어는 dist 없이도 실행 가능하도록 cli.ts 외부에서 처리(Sonamu.init에서 dist 필요)\nfunction build(checkTypes: boolean = false) {\n try {\n execSync(SWC_BUILD_COMMAND, { cwd: process.cwd(), stdio: \"inherit\" });\n } catch (error) {\n console.error(chalk.red(\"Build failed.\"), error);\n process.exit(1);\n }\n\n if (checkTypes) {\n try {\n console.log(chalk.blue(\"Checking types with tsc...\"));\n execSync(TSC_TYPE_CHECK_COMMAND, { cwd: process.cwd(), stdio: \"inherit\" });\n } catch (error) {\n console.error(chalk.red(\"Type check failed.\"), error);\n process.exit(1);\n }\n }\n}\n\nif (args[0] === \"build\") {\n console.log(chalk.blue(\"Building the project...\"));\n build(true);\n console.log(chalk.green(\"Build completed successfully.\"));\n process.exit(0);\n}\n\nif (args[0] === \"dev:serve\") {\n build();\n}\n\nif (!existsSync(scriptPath)) {\n console.error(`Error: Script not found at ${scriptPath}`);\n process.exit(1);\n}\n\nconst result = spawnSync(\n process.execPath,\n [\"-r\", \"source-map-support/register\", \"--no-warnings\", scriptPath, ...args],\n {\n stdio: \"inherit\",\n }\n);\n\nprocess.exit(result.status ?? 1);\n"],"names":["scriptPath","resolve","__dirname","args","process","argv","slice","build","checkTypes","execSync","SWC_BUILD_COMMAND","cwd","stdio","error","console","chalk","red","exit","log","blue","TSC_TYPE_CHECK_COMMAND","green","existsSync","result","spawnSync","execPath","status"],"mappings":";iGAEoC,mCACZ,wBACG,+DACT,mCACwC,6rCAE1D,IAAMA,WAAaC,GAAAA,aAAO,EAACC,UAAW,UACtC,IAAMC,KAAOC,QAAQC,IAAI,CAACC,KAAK,CAAC,GAGhC,SAASC,YAAMC,WAAAA,uDAAsB,MACnC,GAAI,CACFC,GAAAA,uBAAQ,EAACC,8BAAiB,CAAE,CAAEC,IAAKP,QAAQO,GAAG,GAAIC,MAAO,SAAU,EACrE,CAAE,MAAOC,MAAO,CACdC,QAAQD,KAAK,CAACE,cAAK,CAACC,GAAG,CAAC,iBAAkBH,OAC1CT,QAAQa,IAAI,CAAC,EACf,CAEA,GAAIT,WAAY,CACd,GAAI,CACFM,QAAQI,GAAG,CAACH,cAAK,CAACI,IAAI,CAAC,+BACvBV,GAAAA,uBAAQ,EAACW,mCAAsB,CAAE,CAAET,IAAKP,QAAQO,GAAG,GAAIC,MAAO,SAAU,EAC1E,CAAE,MAAOC,MAAO,CACdC,QAAQD,KAAK,CAACE,cAAK,CAACC,GAAG,CAAC,sBAAuBH,OAC/CT,QAAQa,IAAI,CAAC,EACf,CACF,CACF,CAEA,GAAId,IAAI,CAAC,EAAE,GAAK,QAAS,CACvBW,QAAQI,GAAG,CAACH,cAAK,CAACI,IAAI,CAAC,4BACvBZ,MAAM,MACNO,QAAQI,GAAG,CAACH,cAAK,CAACM,KAAK,CAAC,kCACxBjB,QAAQa,IAAI,CAAC,EACf,CAEA,GAAId,IAAI,CAAC,EAAE,GAAK,YAAa,CAC3BI,OACF,CAEA,GAAI,CAACe,GAAAA,cAAU,EAACtB,YAAa,CAC3Bc,QAAQD,KAAK,CAAC,AAAC,8BAAwC,OAAXb,aAC5CI,QAAQa,IAAI,CAAC,EACf,CAEA,IAAMM,OAASC,GAAAA,wBAAS,EACtBpB,QAAQqB,QAAQ,CAChB,CAAC,KAAM,8BAA+B,gBAAiBzB,WAAoB,CAA3E,OAAmE,qBAAGG,OACtE,CACES,MAAO,SACT,OAGWW,eAAbnB,QAAQa,IAAI,CAACM,CAAAA,eAAAA,OAAOG,MAAM,UAAbH,wBAAAA,eAAiB"}
|
|
@@ -16,7 +16,7 @@ export declare class PuriWrapper<DBSchema extends DatabaseSchemaExtend = Databas
|
|
|
16
16
|
raw(sql: string): Knex.Raw;
|
|
17
17
|
table<TTable extends TableName<DBSchema>>(tableName: TTable): Puri<DBSchema, TTable>;
|
|
18
18
|
fromSubquery<TSubResult, TAlias extends string>(subquery: Puri<DBSchema, any, any, TSubResult, any>, alias: TAlias extends string ? TAlias : never): Puri<DBSchema, TAlias, TSubResult, TSubResult, {}>;
|
|
19
|
-
transaction<T>(callback: (trx:
|
|
19
|
+
transaction<T>(callback: (trx: PuriTransactionWrapper) => Promise<T>, options?: TransactionalOptions): Promise<T>;
|
|
20
20
|
ubRegister<TTable extends TableName<DBSchema>>(tableName: TTable, row: Partial<{
|
|
21
21
|
[K in keyof DBSchema[TTable]]: DBSchema[TTable][K] | UBRef;
|
|
22
22
|
}>): UBRef;
|
|
@@ -30,5 +30,12 @@ export declare class PuriWrapper<DBSchema extends DatabaseSchemaExtend = Databas
|
|
|
30
30
|
debugTransaction(): Promise<void>;
|
|
31
31
|
private getTransactionInfo;
|
|
32
32
|
}
|
|
33
|
+
export declare class PuriTransactionWrapper extends PuriWrapper {
|
|
34
|
+
trx: Knex.Transaction;
|
|
35
|
+
upsertBuilder: UpsertBuilder;
|
|
36
|
+
constructor(trx: Knex.Transaction, upsertBuilder: UpsertBuilder);
|
|
37
|
+
rollback(): Promise<void>;
|
|
38
|
+
commit(): Promise<void>;
|
|
39
|
+
}
|
|
33
40
|
export {};
|
|
34
41
|
//# sourceMappingURL=puri-wrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puri-wrapper.d.ts","sourceRoot":"","sources":["../../src/database/puri-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEhC,KAAK,SAAS,CAAC,QAAQ,SAAS,oBAAoB,IAAI,OAAO,CAC7D,MAAM,QAAQ,EACd,MAAM,CACP,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IACtD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,qBAAa,WAAW,CACtB,QAAQ,SAAS,oBAAoB,GAAG,oBAAoB;
|
|
1
|
+
{"version":3,"file":"puri-wrapper.d.ts","sourceRoot":"","sources":["../../src/database/puri-wrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"PuriWrapper",{enumerable:true,get:function(){return PuriWrapper}});var _puri=require("./puri");var _chalk=/*#__PURE__*/_interop_require_default(require("chalk"));function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_with_holes(arr){if(Array.isArray(arr))return arr}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _class_call_check(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _create_class(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}function _iterable_to_array_limit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _sliced_to_array(arr,i){return _array_with_holes(arr)||_iterable_to_array_limit(arr,i)||_unsupported_iterable_to_array(arr,i)||_non_iterable_rest()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var PuriWrapper=/*#__PURE__*/function(){"use strict";function PuriWrapper(knex,upsertBuilder){_class_call_check(this,PuriWrapper);_define_property(this,"knex",void 0);_define_property(this,"upsertBuilder",void 0);this.knex=knex;this.upsertBuilder=upsertBuilder}_create_class(PuriWrapper,[{key:"raw",value:function raw(sql){return this.knex.raw(sql)}},{key:"table",value:function table(tableName){return new _puri.Puri(this.knex,tableName)}},{key:"fromSubquery",value:function fromSubquery(subquery,alias){return new _puri.Puri(this.knex,subquery,alias)}},{key:"transaction",value:function transaction(_0){return _async_to_generator(function(callback){var _this,options,isolation,readOnly;var _arguments=arguments;return _ts_generator(this,function(_state){_this=this;options=_arguments.length>1&&_arguments[1]!==void 0?_arguments[1]:{};isolation=options.isolation,readOnly=options.readOnly;return[2,this.knex.transaction(function(trx){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,callback(new PuriWrapper(trx,this.upsertBuilder))]})}).call(_this)},{isolationLevel:isolation,readOnly:readOnly})]})}).apply(this,arguments)}},{key:"ubRegister",value:function ubRegister(tableName,row){return this.upsertBuilder.register(tableName,row)}},{key:"ubUpsert",value:function ubUpsert(tableName,chunkSize){return this.upsertBuilder.upsert(this.knex,tableName,chunkSize)}},{key:"ubInsertOnly",value:function ubInsertOnly(tableName,chunkSize){return this.upsertBuilder.insertOnly(this.knex,tableName,chunkSize)}},{key:"ubUpsertOrInsert",value:function ubUpsertOrInsert(tableName,mode,chunkSize){return this.upsertBuilder.upsertOrInsert(this.knex,tableName,mode,chunkSize)}},{key:"ubUpdateBatch",value:function ubUpdateBatch(tableName,options){return this.upsertBuilder.updateBatch(this.knex,tableName,options)}},{key:"debugTransaction",value:function debugTransaction(){return _async_to_generator(function(){var info;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,this.getTransactionInfo()];case 1:info=_state.sent();console.log("".concat(_chalk.default.cyan("[Puri Transaction]")," ").concat(_chalk.default.magenta(info)));return[2]}})}).call(this)}},{key:"getTransactionInfo",value:function getTransactionInfo(){return _async_to_generator(function(){var _ref,connectionIdRows,connectionId,_ref1,trxRows,trx;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,this.knex.raw("SELECT CONNECTION_ID() as connection_id")];case 1:_ref=_sliced_to_array.apply(void 0,[_state.sent(),1]),connectionIdRows=_ref[0];connectionId=connectionIdRows[0].connection_id;return[4,this.knex.raw("\n SELECT STATE, ISOLATION_LEVEL, THREAD_ID, EVENT_ID\n FROM performance_schema.events_transactions_current\n WHERE THREAD_ID = \n (SELECT THREAD_ID\n FROM performance_schema.threads \n WHERE PROCESSLIST_ID = CONNECTION_ID())\n ")];case 2:_ref1=_sliced_to_array.apply(void 0,[_state.sent(),1]),trxRows=_ref1[0];if(trxRows.length>0&&trxRows[0].STATE!=="COMMITTED"){trx=trxRows[0];return[2,"In Transaction, ConnID: ".concat(connectionId,", ThreadID: ").concat(trx.THREAD_ID,", EventID: ").concat(trx.EVENT_ID,", InnoDB TRX: ").concat(trx.STATE,"(").concat(trx.ISOLATION_LEVEL,")")]}else{return[2,"Not in Transaction, ConnID: ".concat(connectionId)]}return[2]}})}).call(this)}}]);return PuriWrapper}();
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get PuriTransactionWrapper(){return PuriTransactionWrapper},get PuriWrapper(){return PuriWrapper}});var _puri=require("./puri");var _chalk=/*#__PURE__*/_interop_require_default(require("chalk"));function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_with_holes(arr){if(Array.isArray(arr))return arr}function _assert_this_initialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _call_super(_this,derived,args){derived=_get_prototype_of(derived);return _possible_constructor_return(_this,_is_native_reflect_construct()?Reflect.construct(derived,args||[],_get_prototype_of(_this).constructor):derived.apply(_this,args))}function _class_call_check(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _create_class(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _get_prototype_of(o){_get_prototype_of=Object.setPrototypeOf?Object.getPrototypeOf:function getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _get_prototype_of(o)}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_set_prototype_of(subClass,superClass)}function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}function _iterable_to_array_limit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _possible_constructor_return(self,call){if(call&&(_type_of(call)==="object"||typeof call==="function")){return call}return _assert_this_initialized(self)}function _set_prototype_of(o,p){_set_prototype_of=Object.setPrototypeOf||function setPrototypeOf(o,p){o.__proto__=p;return o};return _set_prototype_of(o,p)}function _sliced_to_array(arr,i){return _array_with_holes(arr)||_iterable_to_array_limit(arr,i)||_unsupported_iterable_to_array(arr,i)||_non_iterable_rest()}function _type_of(obj){"@swc/helpers - typeof";return obj&&typeof Symbol!=="undefined"&&obj.constructor===Symbol?"symbol":typeof obj}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}function _is_native_reflect_construct(){try{var result=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(_){}return(_is_native_reflect_construct=function(){return!!result})()}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var PuriWrapper=/*#__PURE__*/function(){"use strict";function PuriWrapper(knex,upsertBuilder){_class_call_check(this,PuriWrapper);_define_property(this,"knex",void 0);_define_property(this,"upsertBuilder",void 0);this.knex=knex;this.upsertBuilder=upsertBuilder}_create_class(PuriWrapper,[{key:"raw",value:function raw(sql){return this.knex.raw(sql)}},{key:"table",value:function table(tableName){return new _puri.Puri(this.knex,tableName)}},{key:"fromSubquery",value:function fromSubquery(subquery,alias){return new _puri.Puri(this.knex,subquery,alias)}},{key:"transaction",value:function transaction(_0){return _async_to_generator(function(callback){var _this,options,isolation,readOnly;var _arguments=arguments;return _ts_generator(this,function(_state){_this=this;options=_arguments.length>1&&_arguments[1]!==void 0?_arguments[1]:{};isolation=options.isolation,readOnly=options.readOnly;return[2,this.knex.transaction(function(trx){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,callback(new PuriTransactionWrapper(trx,this.upsertBuilder))]})}).call(_this)},{isolationLevel:isolation,readOnly:readOnly})]})}).apply(this,arguments)}},{key:"ubRegister",value:function ubRegister(tableName,row){return this.upsertBuilder.register(tableName,row)}},{key:"ubUpsert",value:function ubUpsert(tableName,chunkSize){return this.upsertBuilder.upsert(this.knex,tableName,chunkSize)}},{key:"ubInsertOnly",value:function ubInsertOnly(tableName,chunkSize){return this.upsertBuilder.insertOnly(this.knex,tableName,chunkSize)}},{key:"ubUpsertOrInsert",value:function ubUpsertOrInsert(tableName,mode,chunkSize){return this.upsertBuilder.upsertOrInsert(this.knex,tableName,mode,chunkSize)}},{key:"ubUpdateBatch",value:function ubUpdateBatch(tableName,options){return this.upsertBuilder.updateBatch(this.knex,tableName,options)}},{key:"debugTransaction",value:function debugTransaction(){return _async_to_generator(function(){var info;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,this.getTransactionInfo()];case 1:info=_state.sent();console.log("".concat(_chalk.default.cyan("[Puri Transaction]")," ").concat(_chalk.default.magenta(info)));return[2]}})}).call(this)}},{key:"getTransactionInfo",value:function getTransactionInfo(){return _async_to_generator(function(){var _ref,connectionIdRows,connectionId,_ref1,trxRows,trx;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,this.knex.raw("SELECT CONNECTION_ID() as connection_id")];case 1:_ref=_sliced_to_array.apply(void 0,[_state.sent(),1]),connectionIdRows=_ref[0];connectionId=connectionIdRows[0].connection_id;return[4,this.knex.raw("\n SELECT STATE, ISOLATION_LEVEL, THREAD_ID, EVENT_ID\n FROM performance_schema.events_transactions_current\n WHERE THREAD_ID = \n (SELECT THREAD_ID\n FROM performance_schema.threads \n WHERE PROCESSLIST_ID = CONNECTION_ID())\n ")];case 2:_ref1=_sliced_to_array.apply(void 0,[_state.sent(),1]),trxRows=_ref1[0];if(trxRows.length>0&&trxRows[0].STATE!=="COMMITTED"){trx=trxRows[0];return[2,"In Transaction, ConnID: ".concat(connectionId,", ThreadID: ").concat(trx.THREAD_ID,", EventID: ").concat(trx.EVENT_ID,", InnoDB TRX: ").concat(trx.STATE,"(").concat(trx.ISOLATION_LEVEL,")")]}else{return[2,"Not in Transaction, ConnID: ".concat(connectionId)]}return[2]}})}).call(this)}}]);return PuriWrapper}();var PuriTransactionWrapper=/*#__PURE__*/function(PuriWrapper){"use strict";_inherits(PuriTransactionWrapper,PuriWrapper);function PuriTransactionWrapper(trx,upsertBuilder){_class_call_check(this,PuriTransactionWrapper);var _this;_this=_call_super(this,PuriTransactionWrapper,[trx,upsertBuilder]),_define_property(_this,"trx",void 0),_define_property(_this,"upsertBuilder",void 0),_this.trx=trx,_this.upsertBuilder=upsertBuilder;return _this}_create_class(PuriTransactionWrapper,[{key:"rollback",value:function rollback(){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,this.trx.rollback()];case 1:_state.sent();return[2]}})}).call(this)}},{key:"commit",value:function commit(){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,this.trx.commit()];case 1:_state.sent();return[2]}})}).call(this)}}]);return PuriTransactionWrapper}(PuriWrapper);
|
|
2
2
|
//# sourceMappingURL=puri-wrapper.js.map
|