sonamu 0.5.3 → 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 +3 -2
|
@@ -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 generateAlterCode(){return generateAlterCode},get generateCreateCode(){return generateCreateCode}});var _lodash=/*#__PURE__*/_interop_require_default(require("lodash"));var _prettier=/*#__PURE__*/_interop_require_default(require("prettier"));var _fastdeepequal=/*#__PURE__*/_interop_require_default(require("fast-deep-equal"));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 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 _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 _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}}}function generateCreateCode_ColumnAndIndexes(table,columns,indexes){return _async_to_generator(function(){var __partition,ngramIndexes,standardIndexes,lines,_tmp;return _ts_generator(this,function(_state){switch(_state.label){case 0:__partition=_sliced_to_array(_lodash.default.partition(indexes,function(i){return i.type==="fulltext"&&i.parser==="ngram"}),2),ngramIndexes=__partition[0],standardIndexes=__partition[1];lines=['import { Knex } from "knex";',"","export async function up(knex: Knex): Promise<void> {",'await knex.schema.createTable("'.concat(table,'", (table) => {'),"// columns"].concat(_to_consumable_array(genColumnDefinitions(columns)),["","// indexes"],_to_consumable_array(standardIndexes.map(function(index){return genIndexDefinition(index,table)})),["});"],_to_consumable_array(ngramIndexes.map(function(index){return genIndexDefinition(index,table)})),["}","","export async function down(knex: Knex): Promise<void> {",' return knex.schema.dropTable("'.concat(table,'");'),"}"]);_tmp={table:table,type:"normal",title:"create__".concat(table)};return[4,_prettier.default.format(lines.join("\n"),{parser:"typescript"})];case 1:return[2,(_tmp.formatted=_state.sent(),_tmp)]}})})()}function genColumnDefinitions(columns){return columns.map(function(column){var chains=[];if(column.name==="id"){return"table.increments().primary();"}if(column.type==="float"||column.type==="decimal"){chains.push("".concat(column.type,"('").concat(column.name,"', ").concat(column.precision,", ").concat(column.scale,")"))}else{var columnType=column.type;var extraType;if(columnType.includes("text")&&columnType!=="text"){extraType=columnType;columnType="text"}chains.push("".concat(column.type,"('").concat(column.name,"'").concat(column.length?", ".concat(column.length):"").concat(extraType?", '".concat(extraType,"'"):"",")"))}if(column.unsigned){chains.push("unsigned()")}chains.push(column.nullable?"nullable()":"notNullable()");if(column.defaultTo!==undefined){if(typeof column.defaultTo==="string"&&column.defaultTo.startsWith('"')){chains.push("defaultTo(".concat(column.defaultTo,")"))}else{chains.push("defaultTo(knex.raw('".concat(column.defaultTo,"'))"))}}return"table.".concat(chains.join("."),";")})}function genIndexDefinition(index,table){var methodMap={index:"index",fulltext:"index",unique:"unique"};if(index.type==="fulltext"&&index.parser==="ngram"){var indexName="".concat(table,"_").concat(index.columns.join("_"),"_index");return"await knex.raw(`ALTER TABLE ".concat(table," ADD FULLTEXT INDEX ").concat(indexName," (").concat(index.columns.join(", "),") WITH PARSER ngram`);")}return"table.".concat(methodMap[index.type],"([").concat(index.columns.map(function(col){return"'".concat(col,"'")}).join(","),"]").concat(index.type==="fulltext"?", undefined, 'FULLTEXT'":"",")")}function generateCreateCode_Foreign(table,foreigns){return _async_to_generator(function(){var _genForeignDefinitions,up,down,lines,foreignKeysString,_tmp;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(foreigns.length===0){return[2,[]]}_genForeignDefinitions=genForeignDefinitions(table,foreigns),up=_genForeignDefinitions.up,down=_genForeignDefinitions.down;if(up.length===0&&down.length===0){console.log("fk 가 뭔가 다릅니다");return[2,[]]}lines=['import { Knex } from "knex";',"","export async function up(knex: Knex): Promise<void> {",'return knex.schema.alterTable("'.concat(table,'", (table) => {'),"// create fk"].concat(_to_consumable_array(up),["});","}","","export async function down(knex: Knex): Promise<void> {",'return knex.schema.alterTable("'.concat(table,'", (table) => {'),"// drop fk"],_to_consumable_array(down),["});","}"]);foreignKeysString=foreigns.map(function(foreign){return foreign.columns.join("_")}).join("_");_tmp={table:table,type:"foreign",title:"foreign__".concat(table,"__").concat(foreignKeysString)};return[4,_prettier.default.format(lines.join("\n"),{parser:"typescript"})];case 1:return[2,[(_tmp.formatted=_state.sent(),_tmp)]]}})})()}function genForeignDefinitions(table,foreigns){return foreigns.reduce(function(r,foreign){var columnsStringQuote=foreign.columns.map(function(col){return"'".concat(col.replace("".concat(table,"."),""),"'")}).join(",");r.up.push("table.foreign('".concat(foreign.columns.join(","),"')\n .references('").concat(foreign.to,"')\n .onUpdate('").concat(foreign.onUpdate,"')\n .onDelete('").concat(foreign.onDelete,"')"));r.down.push("table.dropForeign([".concat(columnsStringQuote,"])"));return r},{up:[],down:[]})}function generateAlterCode_ColumnAndIndexes(table,entityColumns,entityIndexes,dbColumns,dbIndexes,dbForeigns){return _async_to_generator(function(){var alterColumnsTo,alterColumnLinesTo,alterIndexesTo,__partition,ngramIndexes,standardIndexes,indexNeedsToDrop,lines,formatted,title;return _ts_generator(this,function(_state){switch(_state.label){case 0:alterColumnsTo=getAlterColumnsTo(entityColumns,dbColumns);alterColumnLinesTo=getAlterColumnLinesTo(alterColumnsTo,entityColumns,table,dbForeigns);alterIndexesTo=getAlterIndexesTo(entityIndexes,dbIndexes);__partition=_sliced_to_array(_lodash.default.partition(alterIndexesTo.add,function(i){return i.type==="fulltext"&&i.parser==="ngram"}),2),ngramIndexes=__partition[0],standardIndexes=__partition[1];indexNeedsToDrop=alterIndexesTo.drop.filter(function(index){return index.columns.every(function(colName){return alterColumnsTo.drop.map(function(col){return col.name}).includes(colName)})===false});lines=['import { Knex } from "knex";',"","export async function up(knex: Knex): Promise<void> {",'await knex.schema.alterTable("'.concat(table,'", (table) => {')].concat(_to_consumable_array(alterColumnsTo.add.length>0?alterColumnLinesTo.add.up:[]),_to_consumable_array(alterColumnsTo.drop.length>0?alterColumnLinesTo.drop.up:[]),_to_consumable_array(alterColumnsTo.alter.length>0?alterColumnLinesTo.alter.up:[]),_to_consumable_array(standardIndexes.map(function(index){return genIndexDefinition(index,table)})),_to_consumable_array(indexNeedsToDrop.map(genIndexDropDefinition)),["});"],_to_consumable_array(ngramIndexes.map(function(index){return genIndexDefinition(index,table)})),["}","","export async function down(knex: Knex): Promise<void> {",'return knex.schema.alterTable("'.concat(table,'", (table) => {')],_to_consumable_array(alterColumnsTo.add.length>0?alterColumnLinesTo.add.down:[]),_to_consumable_array(alterColumnsTo.drop.length>0?alterColumnLinesTo.drop.down:[]),_to_consumable_array(alterColumnsTo.alter.length>0?alterColumnLinesTo.alter.down:[]),_to_consumable_array(alterIndexesTo.add.filter(function(index){return index.columns.every(function(colName){return alterColumnsTo.add.map(function(col){return col.name}).includes(colName)})===false}).map(genIndexDropDefinition)),_to_consumable_array(indexNeedsToDrop.map(function(index){return genIndexDefinition(index,table)})),["});","}"]);return[4,_prettier.default.format(lines.join("\n"),{parser:"typescript"})];case 1:formatted=_state.sent();title=["alter",table].concat(_to_consumable_array(["add","drop","alter"].map(function(action){var len=alterColumnsTo[action].length;if(len>0){return action+len}return null}).filter(function(part){return part!==null}))).join("_");return[2,[{table:table,title:title,formatted:formatted,type:"normal"}]]}})})()}function getAlterColumnsTo(entityColumns,dbColumns){var columnsTo={add:[],drop:[],alter:[]};var extraColumns={db:_lodash.default.differenceBy(dbColumns,entityColumns,function(col){return col.name}),entity:_lodash.default.differenceBy(entityColumns,dbColumns,function(col){return col.name})};if(extraColumns.entity.length>0){columnsTo.add=columnsTo.add.concat(extraColumns.entity)}if(extraColumns.db.length>0){columnsTo.drop=columnsTo.drop.concat(extraColumns.db)}var sameDbColumns=_lodash.default.intersectionBy(dbColumns,entityColumns,function(col){return col.name});var sameMdColumns=_lodash.default.intersectionBy(entityColumns,dbColumns,function(col){return col.name});columnsTo.alter=_lodash.default.differenceWith(sameDbColumns,sameMdColumns,function(a,b){return(0,_fastdeepequal.default)(a,b)});return columnsTo}function getAlterColumnLinesTo(columnsTo,entityColumns,table,dbForeigns){var linesTo={add:{up:[],down:[]},drop:{up:[],down:[]},alter:{up:[],down:[]}};linesTo.add={up:["// add"].concat(_to_consumable_array(genColumnDefinitions(columnsTo.add))),down:["// rollback - add","table.dropColumns(".concat(columnsTo.add.map(function(col){return"'".concat(col.name,"'")}).join(", "),")")]};var dropColumnNames=columnsTo.drop.map(function(col){return col.name});var fkToDropBeforeColumn=dbForeigns.filter(function(fk){return fk.columns.some(function(col){return dropColumnNames.includes(col)})});var dropFkLines=fkToDropBeforeColumn.map(function(fk){var columnsStringQuote=fk.columns.map(function(col){return"'".concat(col,"'")}).join(",");return"table.dropForeign([".concat(columnsStringQuote,"])")});var restoreFkLines=genForeignDefinitions(table,fkToDropBeforeColumn).up;linesTo.drop={up:_to_consumable_array(dropFkLines.length>0?["// drop foreign keys on columns to be dropped"].concat(_to_consumable_array(dropFkLines)):[]).concat(["// drop columns","table.dropColumns(".concat(columnsTo.drop.map(function(col){return"'".concat(col.name,"'")}).join(", "),")")]),down:["// rollback - drop columns"].concat(_to_consumable_array(genColumnDefinitions(columnsTo.drop)),_to_consumable_array(restoreFkLines.length>0?["// restore foreign keys"].concat(_to_consumable_array(restoreFkLines)):[]))};linesTo.alter=columnsTo.alter.reduce(function(r,dbColumn){var entityColumn=entityColumns.find(function(col){return col.name==dbColumn.name});if(entityColumn===undefined){return r}var columnDiffUp=_lodash.default.difference(genColumnDefinitions([entityColumn]),genColumnDefinitions([dbColumn]));var columnDiffDown=_lodash.default.difference(genColumnDefinitions([dbColumn]),genColumnDefinitions([entityColumn]));if(columnDiffUp.length>0){r.up=_to_consumable_array(r.up).concat(["// alter column"],_to_consumable_array(columnDiffUp.map(function(l){return l.replace(";","")+".alter();"})));r.down=_to_consumable_array(r.down).concat(["// rollback - alter column"],_to_consumable_array(columnDiffDown.map(function(l){return l.replace(";","")+".alter();"})))}return r},{up:[],down:[]});return linesTo}function getAlterIndexesTo(entityIndexes,dbIndexes){var indexesTo={add:[],drop:[]};var extraIndexes={db:_lodash.default.differenceBy(dbIndexes,entityIndexes,function(col){return[col.type,col.columns.join("-")].join("//")}),entity:_lodash.default.differenceBy(entityIndexes,dbIndexes,function(col){return[col.type,col.columns.join("-")].join("//")})};if(extraIndexes.entity.length>0){indexesTo.add=indexesTo.add.concat(extraIndexes.entity)}if(extraIndexes.db.length>0){indexesTo.drop=indexesTo.drop.concat(extraIndexes.db)}return indexesTo}function genIndexDropDefinition(index){var methodMap={index:"Index",fulltext:"Index",unique:"Unique"};return"table.drop".concat(methodMap[index.type],"([").concat(index.columns.map(function(columnName){return"'".concat(columnName,"'")}).join(","),"])")}function generateAlterCode_Foreigns(_0,_1,_2){return _async_to_generator(function(table,entityForeigns,dbForeigns){var droppingColumns,getKey,droppingColumnNames,fkTo,linesTo,hasLines,lines,formatted,title;var _arguments=arguments;return _ts_generator(this,function(_state){switch(_state.label){case 0:droppingColumns=_arguments.length>3&&_arguments[3]!==void 0?_arguments[3]:[];getKey=function(mf){return[mf.columns.join("-"),mf.to].join("///")};droppingColumnNames=droppingColumns.map(function(col){return col.name});fkTo=entityForeigns.reduce(function(result,entityF){var matchingDbF=dbForeigns.find(function(dbF){return getKey(entityF)===getKey(dbF)});if(!matchingDbF){result.add.push(entityF);return result}if((0,_fastdeepequal.default)(entityF,matchingDbF)===false){result.alterSrc.push(matchingDbF);result.alterDst.push(entityF);return result}return result},{add:[],drop:[],alterSrc:[],alterDst:[]});dbForeigns.forEach(function(dbF){var matchingEntityF=entityForeigns.find(function(entityF){return getKey(entityF)===getKey(dbF)});if(!matchingEntityF){var isColumnDropping=dbF.columns.some(function(col){return droppingColumnNames.includes(col)});if(!isColumnDropping){fkTo.drop.push(dbF)}}});linesTo={add:genForeignDefinitions(table,fkTo.add),drop:genForeignDefinitions(table,fkTo.drop),alterSrc:genForeignDefinitions(table,fkTo.alterSrc),alterDst:genForeignDefinitions(table,fkTo.alterDst)};hasLines=Object.values(linesTo).some(function(l){return l.up.length>0||l.down.length>0});if(!hasLines){return[2,[]]}lines=['import { Knex } from "knex";',"","export async function up(knex: Knex): Promise<void> {",'return knex.schema.alterTable("'.concat(table,'", (table) => {')].concat(_to_consumable_array(linesTo.drop.down),_to_consumable_array(linesTo.add.up),_to_consumable_array(linesTo.alterSrc.down),_to_consumable_array(linesTo.alterDst.up),["})","}","","export async function down(knex: Knex): Promise<void> {",'return knex.schema.alterTable("'.concat(table,'", (table) => {')],_to_consumable_array(linesTo.add.down),_to_consumable_array(linesTo.alterDst.down),_to_consumable_array(linesTo.alterSrc.up),_to_consumable_array(linesTo.drop.up),["})","}"]);return[4,_prettier.default.format(lines.join("\n"),{parser:"typescript"})];case 1:formatted=_state.sent();title=["alter",table,"foreigns"].join("_");return[2,[{table:table,title:title,formatted:formatted,type:"normal"}]]}})}).apply(this,arguments)}function generateCreateCode(entitySet){return _async_to_generator(function(){var _,_1;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,generateCreateCode_ColumnAndIndexes(entitySet.table,entitySet.columns,entitySet.indexes)];case 1:_1=(_=[_state.sent()]).concat;return[4,generateCreateCode_Foreign(entitySet.table,entitySet.foreigns)];case 2:return[2,_1.apply(_,[_to_consumable_array.apply(void 0,[_state.sent()])])]}})})()}function generateAlterCode(entitySet,dbSet){return _async_to_generator(function(){var replaceColumnDefaultTo,entityColumns,dbColumns,entityIndexes,dbIndexes,replaceNoActionOnMySQL,entityForeigns,dbForeigns,droppingColumns,alterCodes,isEqualColumns,isEqualIndexes,_,_1;return _ts_generator(this,function(_state){switch(_state.label){case 0:replaceColumnDefaultTo=function(col){if(col.type==="float"&&col.defaultTo&&String(col.defaultTo).includes('"')===false){var _col_scale;col.defaultTo='"'.concat(Number(col.defaultTo).toFixed((_col_scale=col.scale)!==null&&_col_scale!==void 0?_col_scale:2),'"')}if(col.type==="string"&&col.defaultTo===""){col.defaultTo='""'}if(col.type==="boolean"&&col.defaultTo!==undefined){if(col.defaultTo==="0"||col.defaultTo==="false"){col.defaultTo="0"}else if(col.defaultTo==="1"||col.defaultTo==="true"){col.defaultTo="1"}}return col};entityColumns=_lodash.default.sortBy(entitySet.columns,function(a){return a.name}).map(replaceColumnDefaultTo);dbColumns=_lodash.default.sortBy(dbSet.columns,function(a){return a.name}).map(replaceColumnDefaultTo);entityIndexes=_lodash.default.sortBy(entitySet.indexes,function(a){return[a.type].concat(_to_consumable_array(a.columns.sort(function(c1,c2){return c1>c2?1:-1}))).join("-")});dbIndexes=_lodash.default.sortBy(dbSet.indexes,function(a){return[a.type].concat(_to_consumable_array(a.columns.sort(function(c1,c2){return c1>c2?1:-1}))).join("-")});replaceNoActionOnMySQL=function(f){var onDelete=f.onDelete,onUpdate=f.onUpdate;return _object_spread_props(_object_spread({},f),{onUpdate:onUpdate==="RESTRICT"?"NO ACTION":onUpdate,onDelete:onDelete==="RESTRICT"?"NO ACTION":onDelete})};entityForeigns=_lodash.default.sortBy(entitySet.foreigns,function(a){return[a.to].concat(_to_consumable_array(a.columns)).join("-")}).map(function(f){return replaceNoActionOnMySQL(f)});dbForeigns=_lodash.default.sortBy(dbSet.foreigns,function(a){return[a.to].concat(_to_consumable_array(a.columns)).join("-")}).map(function(f){return replaceNoActionOnMySQL(f)});droppingColumns=_lodash.default.differenceBy(dbColumns,entityColumns,function(col){return col.name});alterCodes=[];isEqualColumns=(0,_fastdeepequal.default)(entityColumns,dbColumns);isEqualIndexes=(0,_fastdeepequal.default)(entityIndexes.map(function(index){return _lodash.default.omit(index,["parser"])}),dbIndexes);if(!(!isEqualColumns||!isEqualIndexes))return[3,2];_=alterCodes.push;return[4,generateAlterCode_ColumnAndIndexes(entitySet.table,entityColumns,entityIndexes,dbColumns,dbIndexes,dbSet.foreigns)];case 1:_.apply(alterCodes,[_state.sent()]);_state.label=2;case 2:if(!((0,_fastdeepequal.default)(entityForeigns,dbForeigns)===false))return[3,4];_1=alterCodes.push;return[4,generateAlterCode_Foreigns(entitySet.table,entityForeigns,dbForeigns,droppingColumns)];case 3:_1.apply(alterCodes,[_state.sent()]);_state.label=4;case 4:if(alterCodes.every(function(alterCode){return alterCode===null})){return[2,[]]}return[2,alterCodes.filter(function(alterCode){return alterCode!==null}).flat()]}})})()}
|
|
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 generateAlterCode(){return generateAlterCode},get generateCreateCode(){return generateCreateCode}});var _lodash=/*#__PURE__*/_interop_require_default(require("lodash"));var _prettier=/*#__PURE__*/_interop_require_default(require("prettier"));var _fastdeepequal=/*#__PURE__*/_interop_require_default(require("fast-deep-equal"));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 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 _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 _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}}}function generateCreateCode_ColumnAndIndexes(table,columns,indexes){return _async_to_generator(function(){var __partition,ngramIndexes,standardIndexes,lines,_tmp;return _ts_generator(this,function(_state){switch(_state.label){case 0:__partition=_sliced_to_array(_lodash.default.partition(indexes,function(i){return i.type==="fulltext"&&i.parser==="ngram"}),2),ngramIndexes=__partition[0],standardIndexes=__partition[1];lines=['import { Knex } from "knex";',"","export async function up(knex: Knex): Promise<void> {",'await knex.schema.createTable("'.concat(table,'", (table) => {'),"// columns"].concat(_to_consumable_array(genColumnDefinitions(columns)),["","// indexes"],_to_consumable_array(standardIndexes.map(function(index){return genIndexDefinition(index,table)})),["});"],_to_consumable_array(ngramIndexes.map(function(index){return genIndexDefinition(index,table)})),["}","","export async function down(knex: Knex): Promise<void> {",' return knex.schema.dropTable("'.concat(table,'");'),"}"]);_tmp={table:table,type:"normal",title:"create__".concat(table)};return[4,_prettier.default.format(lines.join("\n"),{parser:"typescript"})];case 1:return[2,(_tmp.formatted=_state.sent(),_tmp)]}})})()}function genColumnDefinitions(columns){return columns.map(function(column){var chains=[];if(column.name==="id"){return"table.increments().primary();"}if(column.type==="float"||column.type==="decimal"){chains.push("".concat(column.type,"('").concat(column.name,"', ").concat(column.precision,", ").concat(column.scale,")"))}else{var columnType=column.type;var extraType;if(columnType.includes("text")&&columnType!=="text"){extraType=columnType;columnType="text"}chains.push("".concat(columnType,"('").concat(column.name,"'").concat(column.length?", ".concat(column.length):"").concat(extraType?", '".concat(extraType,"'"):"",")"))}if(column.unsigned){chains.push("unsigned()")}chains.push(column.nullable?"nullable()":"notNullable()");if(column.defaultTo!==undefined){if(typeof column.defaultTo==="string"&&column.defaultTo.startsWith('"')){chains.push("defaultTo(".concat(column.defaultTo,")"))}else{chains.push("defaultTo(knex.raw('".concat(column.defaultTo,"'))"))}}return"table.".concat(chains.join("."),";")})}function genIndexDefinition(index,table){var methodMap={index:"index",fulltext:"index",unique:"unique"};if(index.type==="fulltext"&&index.parser==="ngram"){var indexName="".concat(table,"_").concat(index.columns.join("_"),"_index");return"await knex.raw(`ALTER TABLE ".concat(table," ADD FULLTEXT INDEX ").concat(indexName," (").concat(index.columns.join(", "),") WITH PARSER ngram`);")}return"table.".concat(methodMap[index.type],"([").concat(index.columns.map(function(col){return"'".concat(col,"'")}).join(","),"]").concat(index.type==="fulltext"?", undefined, 'FULLTEXT'":"",")")}function generateCreateCode_Foreign(table,foreigns){return _async_to_generator(function(){var _genForeignDefinitions,up,down,lines,foreignKeysString,_tmp;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(foreigns.length===0){return[2,[]]}_genForeignDefinitions=genForeignDefinitions(table,foreigns),up=_genForeignDefinitions.up,down=_genForeignDefinitions.down;if(up.length===0&&down.length===0){console.log("fk 가 뭔가 다릅니다");return[2,[]]}lines=['import { Knex } from "knex";',"","export async function up(knex: Knex): Promise<void> {",'return knex.schema.alterTable("'.concat(table,'", (table) => {'),"// create fk"].concat(_to_consumable_array(up),["});","}","","export async function down(knex: Knex): Promise<void> {",'return knex.schema.alterTable("'.concat(table,'", (table) => {'),"// drop fk"],_to_consumable_array(down),["});","}"]);foreignKeysString=foreigns.map(function(foreign){return foreign.columns.join("_")}).join("_");_tmp={table:table,type:"foreign",title:"foreign__".concat(table,"__").concat(foreignKeysString)};return[4,_prettier.default.format(lines.join("\n"),{parser:"typescript"})];case 1:return[2,[(_tmp.formatted=_state.sent(),_tmp)]]}})})()}function genForeignDefinitions(table,foreigns){return foreigns.reduce(function(r,foreign){var columnsStringQuote=foreign.columns.map(function(col){return"'".concat(col.replace("".concat(table,"."),""),"'")}).join(",");r.up.push("table.foreign('".concat(foreign.columns.join(","),"')\n .references('").concat(foreign.to,"')\n .onUpdate('").concat(foreign.onUpdate,"')\n .onDelete('").concat(foreign.onDelete,"')"));r.down.push("table.dropForeign([".concat(columnsStringQuote,"])"));return r},{up:[],down:[]})}function generateAlterCode_ColumnAndIndexes(table,entityColumns,entityIndexes,dbColumns,dbIndexes,dbForeigns){return _async_to_generator(function(){var alterColumnsTo,alterColumnLinesTo,alterIndexesTo,__partition,ngramIndexes,standardIndexes,indexNeedsToDrop,lines,formatted,title;return _ts_generator(this,function(_state){switch(_state.label){case 0:alterColumnsTo=getAlterColumnsTo(entityColumns,dbColumns);alterColumnLinesTo=getAlterColumnLinesTo(alterColumnsTo,entityColumns,table,dbForeigns);alterIndexesTo=getAlterIndexesTo(entityIndexes,dbIndexes);__partition=_sliced_to_array(_lodash.default.partition(alterIndexesTo.add,function(i){return i.type==="fulltext"&&i.parser==="ngram"}),2),ngramIndexes=__partition[0],standardIndexes=__partition[1];indexNeedsToDrop=alterIndexesTo.drop.filter(function(index){return index.columns.every(function(colName){return alterColumnsTo.drop.map(function(col){return col.name}).includes(colName)})===false});lines=['import { Knex } from "knex";',"","export async function up(knex: Knex): Promise<void> {",'await knex.schema.alterTable("'.concat(table,'", (table) => {')].concat(_to_consumable_array(alterColumnsTo.add.length>0?alterColumnLinesTo.add.up:[]),_to_consumable_array(alterColumnsTo.drop.length>0?alterColumnLinesTo.drop.up:[]),_to_consumable_array(alterColumnsTo.alter.length>0?alterColumnLinesTo.alter.up:[]),_to_consumable_array(standardIndexes.map(function(index){return genIndexDefinition(index,table)})),_to_consumable_array(indexNeedsToDrop.map(genIndexDropDefinition)),["});"],_to_consumable_array(ngramIndexes.map(function(index){return genIndexDefinition(index,table)})),["}","","export async function down(knex: Knex): Promise<void> {",'return knex.schema.alterTable("'.concat(table,'", (table) => {')],_to_consumable_array(alterColumnsTo.add.length>0?alterColumnLinesTo.add.down:[]),_to_consumable_array(alterColumnsTo.drop.length>0?alterColumnLinesTo.drop.down:[]),_to_consumable_array(alterColumnsTo.alter.length>0?alterColumnLinesTo.alter.down:[]),_to_consumable_array(alterIndexesTo.add.filter(function(index){return index.columns.every(function(colName){return alterColumnsTo.add.map(function(col){return col.name}).includes(colName)})===false}).map(genIndexDropDefinition)),_to_consumable_array(indexNeedsToDrop.map(function(index){return genIndexDefinition(index,table)})),["});","}"]);return[4,_prettier.default.format(lines.join("\n"),{parser:"typescript"})];case 1:formatted=_state.sent();title=["alter",table].concat(_to_consumable_array(["add","drop","alter"].map(function(action){var len=alterColumnsTo[action].length;if(len>0){return action+len}return null}).filter(function(part){return part!==null}))).join("_");return[2,[{table:table,title:title,formatted:formatted,type:"normal"}]]}})})()}function getAlterColumnsTo(entityColumns,dbColumns){var columnsTo={add:[],drop:[],alter:[]};var extraColumns={db:_lodash.default.differenceBy(dbColumns,entityColumns,function(col){return col.name}),entity:_lodash.default.differenceBy(entityColumns,dbColumns,function(col){return col.name})};if(extraColumns.entity.length>0){columnsTo.add=columnsTo.add.concat(extraColumns.entity)}if(extraColumns.db.length>0){columnsTo.drop=columnsTo.drop.concat(extraColumns.db)}var sameDbColumns=_lodash.default.intersectionBy(dbColumns,entityColumns,function(col){return col.name});var sameMdColumns=_lodash.default.intersectionBy(entityColumns,dbColumns,function(col){return col.name});columnsTo.alter=_lodash.default.differenceWith(sameDbColumns,sameMdColumns,function(a,b){return(0,_fastdeepequal.default)(a,b)});return columnsTo}function getAlterColumnLinesTo(columnsTo,entityColumns,table,dbForeigns){var linesTo={add:{up:[],down:[]},drop:{up:[],down:[]},alter:{up:[],down:[]}};linesTo.add={up:["// add"].concat(_to_consumable_array(genColumnDefinitions(columnsTo.add))),down:["// rollback - add","table.dropColumns(".concat(columnsTo.add.map(function(col){return"'".concat(col.name,"'")}).join(", "),")")]};var dropColumnNames=columnsTo.drop.map(function(col){return col.name});var fkToDropBeforeColumn=dbForeigns.filter(function(fk){return fk.columns.some(function(col){return dropColumnNames.includes(col)})});var dropFkLines=fkToDropBeforeColumn.map(function(fk){var columnsStringQuote=fk.columns.map(function(col){return"'".concat(col,"'")}).join(",");return"table.dropForeign([".concat(columnsStringQuote,"])")});var restoreFkLines=genForeignDefinitions(table,fkToDropBeforeColumn).up;linesTo.drop={up:_to_consumable_array(dropFkLines.length>0?["// drop foreign keys on columns to be dropped"].concat(_to_consumable_array(dropFkLines)):[]).concat(["// drop columns","table.dropColumns(".concat(columnsTo.drop.map(function(col){return"'".concat(col.name,"'")}).join(", "),")")]),down:["// rollback - drop columns"].concat(_to_consumable_array(genColumnDefinitions(columnsTo.drop)),_to_consumable_array(restoreFkLines.length>0?["// restore foreign keys"].concat(_to_consumable_array(restoreFkLines)):[]))};linesTo.alter=columnsTo.alter.reduce(function(r,dbColumn){var entityColumn=entityColumns.find(function(col){return col.name==dbColumn.name});if(entityColumn===undefined){return r}var columnDiffUp=_lodash.default.difference(genColumnDefinitions([entityColumn]),genColumnDefinitions([dbColumn]));var columnDiffDown=_lodash.default.difference(genColumnDefinitions([dbColumn]),genColumnDefinitions([entityColumn]));if(columnDiffUp.length>0){r.up=_to_consumable_array(r.up).concat(["// alter column"],_to_consumable_array(columnDiffUp.map(function(l){return l.replace(";","")+".alter();"})));r.down=_to_consumable_array(r.down).concat(["// rollback - alter column"],_to_consumable_array(columnDiffDown.map(function(l){return l.replace(";","")+".alter();"})))}return r},{up:[],down:[]});return linesTo}function getAlterIndexesTo(entityIndexes,dbIndexes){var indexesTo={add:[],drop:[]};var extraIndexes={db:_lodash.default.differenceBy(dbIndexes,entityIndexes,function(col){return[col.type,col.columns.join("-")].join("//")}),entity:_lodash.default.differenceBy(entityIndexes,dbIndexes,function(col){return[col.type,col.columns.join("-")].join("//")})};if(extraIndexes.entity.length>0){indexesTo.add=indexesTo.add.concat(extraIndexes.entity)}if(extraIndexes.db.length>0){indexesTo.drop=indexesTo.drop.concat(extraIndexes.db)}return indexesTo}function genIndexDropDefinition(index){var methodMap={index:"Index",fulltext:"Index",unique:"Unique"};return"table.drop".concat(methodMap[index.type],"([").concat(index.columns.map(function(columnName){return"'".concat(columnName,"'")}).join(","),"])")}function generateAlterCode_Foreigns(_0,_1,_2){return _async_to_generator(function(table,entityForeigns,dbForeigns){var droppingColumns,getKey,droppingColumnNames,fkTo,linesTo,hasLines,lines,formatted,title;var _arguments=arguments;return _ts_generator(this,function(_state){switch(_state.label){case 0:droppingColumns=_arguments.length>3&&_arguments[3]!==void 0?_arguments[3]:[];getKey=function(mf){return[mf.columns.join("-"),mf.to].join("///")};droppingColumnNames=droppingColumns.map(function(col){return col.name});fkTo=entityForeigns.reduce(function(result,entityF){var matchingDbF=dbForeigns.find(function(dbF){return getKey(entityF)===getKey(dbF)});if(!matchingDbF){result.add.push(entityF);return result}if((0,_fastdeepequal.default)(entityF,matchingDbF)===false){result.alterSrc.push(matchingDbF);result.alterDst.push(entityF);return result}return result},{add:[],drop:[],alterSrc:[],alterDst:[]});dbForeigns.forEach(function(dbF){var matchingEntityF=entityForeigns.find(function(entityF){return getKey(entityF)===getKey(dbF)});if(!matchingEntityF){var isColumnDropping=dbF.columns.some(function(col){return droppingColumnNames.includes(col)});if(!isColumnDropping){fkTo.drop.push(dbF)}}});linesTo={add:genForeignDefinitions(table,fkTo.add),drop:genForeignDefinitions(table,fkTo.drop),alterSrc:genForeignDefinitions(table,fkTo.alterSrc),alterDst:genForeignDefinitions(table,fkTo.alterDst)};hasLines=Object.values(linesTo).some(function(l){return l.up.length>0||l.down.length>0});if(!hasLines){return[2,[]]}lines=['import { Knex } from "knex";',"","export async function up(knex: Knex): Promise<void> {",'return knex.schema.alterTable("'.concat(table,'", (table) => {')].concat(_to_consumable_array(linesTo.drop.down),_to_consumable_array(linesTo.add.up),_to_consumable_array(linesTo.alterSrc.down),_to_consumable_array(linesTo.alterDst.up),["})","}","","export async function down(knex: Knex): Promise<void> {",'return knex.schema.alterTable("'.concat(table,'", (table) => {')],_to_consumable_array(linesTo.add.down),_to_consumable_array(linesTo.alterDst.down),_to_consumable_array(linesTo.alterSrc.up),_to_consumable_array(linesTo.drop.up),["})","}"]);return[4,_prettier.default.format(lines.join("\n"),{parser:"typescript"})];case 1:formatted=_state.sent();title=["alter",table,"foreigns"].join("_");return[2,[{table:table,title:title,formatted:formatted,type:"normal"}]]}})}).apply(this,arguments)}function generateCreateCode(entitySet){return _async_to_generator(function(){var _,_1;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,generateCreateCode_ColumnAndIndexes(entitySet.table,entitySet.columns,entitySet.indexes)];case 1:_1=(_=[_state.sent()]).concat;return[4,generateCreateCode_Foreign(entitySet.table,entitySet.foreigns)];case 2:return[2,_1.apply(_,[_to_consumable_array.apply(void 0,[_state.sent()])])]}})})()}function generateAlterCode(entitySet,dbSet){return _async_to_generator(function(){var replaceColumnDefaultTo,entityColumns,dbColumns,entityIndexes,dbIndexes,replaceNoActionOnMySQL,entityForeigns,dbForeigns,droppingColumns,alterCodes,isEqualColumns,isEqualIndexes,_,_1;return _ts_generator(this,function(_state){switch(_state.label){case 0:replaceColumnDefaultTo=function(col){if(col.type==="float"&&col.defaultTo&&String(col.defaultTo).includes('"')===false){var _col_scale;col.defaultTo='"'.concat(Number(col.defaultTo).toFixed((_col_scale=col.scale)!==null&&_col_scale!==void 0?_col_scale:2),'"')}if(col.type==="string"&&col.defaultTo===""){col.defaultTo='""'}if(col.type==="boolean"&&col.defaultTo!==undefined){if(col.defaultTo==="0"||col.defaultTo.toLowerCase()==="false"){col.defaultTo="0"}else if(col.defaultTo==="1"||col.defaultTo.toLowerCase()==="true"){col.defaultTo="1"}}return col};entityColumns=_lodash.default.sortBy(entitySet.columns,function(a){return a.name}).map(replaceColumnDefaultTo);dbColumns=_lodash.default.sortBy(dbSet.columns,function(a){return a.name}).map(replaceColumnDefaultTo);entityIndexes=_lodash.default.sortBy(entitySet.indexes,function(a){return[a.type].concat(_to_consumable_array(a.columns.sort(function(c1,c2){return c1>c2?1:-1}))).join("-")});dbIndexes=_lodash.default.sortBy(dbSet.indexes,function(a){return[a.type].concat(_to_consumable_array(a.columns.sort(function(c1,c2){return c1>c2?1:-1}))).join("-")});replaceNoActionOnMySQL=function(f){var onDelete=f.onDelete,onUpdate=f.onUpdate;return _object_spread_props(_object_spread({},f),{onUpdate:onUpdate==="RESTRICT"?"NO ACTION":onUpdate,onDelete:onDelete==="RESTRICT"?"NO ACTION":onDelete})};entityForeigns=_lodash.default.sortBy(entitySet.foreigns,function(a){return[a.to].concat(_to_consumable_array(a.columns)).join("-")}).map(function(f){return replaceNoActionOnMySQL(f)});dbForeigns=_lodash.default.sortBy(dbSet.foreigns,function(a){return[a.to].concat(_to_consumable_array(a.columns)).join("-")}).map(function(f){return replaceNoActionOnMySQL(f)});droppingColumns=_lodash.default.differenceBy(dbColumns,entityColumns,function(col){return col.name});alterCodes=[];isEqualColumns=(0,_fastdeepequal.default)(entityColumns,dbColumns);isEqualIndexes=(0,_fastdeepequal.default)(entityIndexes.map(function(index){return _lodash.default.omit(index,["parser"])}),dbIndexes);if(!(!isEqualColumns||!isEqualIndexes))return[3,2];_=alterCodes.push;return[4,generateAlterCode_ColumnAndIndexes(entitySet.table,entityColumns,entityIndexes,dbColumns,dbIndexes,dbSet.foreigns)];case 1:_.apply(alterCodes,[_state.sent()]);_state.label=2;case 2:if(!((0,_fastdeepequal.default)(entityForeigns,dbForeigns)===false))return[3,4];_1=alterCodes.push;return[4,generateAlterCode_Foreigns(entitySet.table,entityForeigns,dbForeigns,droppingColumns)];case 3:_1.apply(alterCodes,[_state.sent()]);_state.label=4;case 4:if(alterCodes.every(function(alterCode){return alterCode===null})){return[2,[]]}return[2,alterCodes.filter(function(alterCode){return alterCode!==null}).flat()]}})})()}
|
|
2
2
|
//# sourceMappingURL=code-generation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/migration/code-generation.ts"],"sourcesContent":["import _ from \"lodash\";\nimport prettier from \"prettier\";\nimport equal from \"fast-deep-equal\";\nimport {\n GenMigrationCode,\n MigrationColumn,\n MigrationForeign,\n MigrationIndex,\n MigrationSet,\n} from \"../types/types\";\n\n/**\n * 테이블 생성하는 케이스 - 컬럼/인덱스 생성\n */\nasync function generateCreateCode_ColumnAndIndexes(\n table: string,\n columns: MigrationColumn[],\n indexes: MigrationIndex[]\n): Promise<GenMigrationCode> {\n // fulltext index 분리\n const [ngramIndexes, standardIndexes] = _.partition(\n indexes,\n (i) => i.type === \"fulltext\" && i.parser === \"ngram\"\n );\n\n // 컬럼, 인덱스 처리\n const lines: string[] = [\n 'import { Knex } from \"knex\";',\n \"\",\n \"export async function up(knex: Knex): Promise<void> {\",\n `await knex.schema.createTable(\"${table}\", (table) => {`,\n \"// columns\",\n ...genColumnDefinitions(columns),\n \"\",\n \"// indexes\",\n ...standardIndexes.map((index) => genIndexDefinition(index, table)),\n \"});\",\n // ngram은 knex.raw로 처리하므로 createTable 밖에서 실행\n ...ngramIndexes.map((index) => genIndexDefinition(index, table)),\n \"}\",\n \"\",\n \"export async function down(knex: Knex): Promise<void> {\",\n ` return knex.schema.dropTable(\"${table}\");`,\n \"}\",\n ];\n return {\n table,\n type: \"normal\",\n title: `create__${table}`,\n formatted: await prettier.format(lines.join(\"\\n\"), {\n parser: \"typescript\",\n }),\n };\n}\n\n/**\n * MigrationColumn[] 읽어서 컬럼 정의하는 구문 생성\n */\nfunction genColumnDefinitions(columns: MigrationColumn[]): string[] {\n return columns.map((column) => {\n const chains: string[] = [];\n if (column.name === \"id\") {\n return `table.increments().primary();`;\n }\n\n // FIXME: float(M,D) deprecated -> decimal(M,D) 이용하도록 하고, float/double 처리 추가\n if (column.type === \"float\" || column.type === \"decimal\") {\n chains.push(\n `${column.type}('${column.name}', ${column.precision}, ${column.scale})`\n );\n } else {\n // type, length\n let columnType = column.type;\n let extraType: string | undefined;\n if (columnType.includes(\"text\") && columnType !== \"text\") {\n extraType = columnType;\n columnType = \"text\";\n }\n chains.push(\n `${column.type}('${column.name}'${\n column.length ? `, ${column.length}` : \"\"\n }${extraType ? `, '${extraType}'` : \"\"})`\n );\n }\n if (column.unsigned) {\n chains.push(\"unsigned()\");\n }\n\n // nullable\n chains.push(column.nullable ? \"nullable()\" : \"notNullable()\");\n\n // defaultTo\n if (column.defaultTo !== undefined) {\n if (\n typeof column.defaultTo === \"string\" &&\n column.defaultTo.startsWith(`\"`)\n ) {\n chains.push(`defaultTo(${column.defaultTo})`);\n } else {\n chains.push(`defaultTo(knex.raw('${column.defaultTo}'))`);\n }\n }\n\n return `table.${chains.join(\".\")};`;\n });\n}\n\n/**\n * 개별 인덱스 정의 생성\n */\nfunction genIndexDefinition(index: MigrationIndex, table: string) {\n const methodMap = {\n index: \"index\",\n fulltext: \"index\",\n unique: \"unique\",\n };\n\n if (index.type === \"fulltext\" && index.parser === \"ngram\") {\n const indexName = `${table}_${index.columns.join(\"_\")}_index`;\n return `await knex.raw(\\`ALTER TABLE ${table} ADD FULLTEXT INDEX ${indexName} (${index.columns.join(\n \", \"\n )}) WITH PARSER ngram\\`);`;\n }\n\n return `table.${methodMap[index.type]}([${index.columns\n .map((col) => `'${col}'`)\n .join(\",\")}]${index.type === \"fulltext\" ? \", undefined, 'FULLTEXT'\" : \"\"})`;\n}\n\n/**\n * 테이블 생성하는 케이스 - FK 생성\n */\nasync function generateCreateCode_Foreign(\n table: string,\n foreigns: MigrationForeign[]\n): Promise<GenMigrationCode[]> {\n if (foreigns.length === 0) {\n return [];\n }\n\n const { up, down } = genForeignDefinitions(table, foreigns);\n if (up.length === 0 && down.length === 0) {\n console.log(\"fk 가 뭔가 다릅니다\");\n return [];\n }\n\n const lines: string[] = [\n 'import { Knex } from \"knex\";',\n \"\",\n \"export async function up(knex: Knex): Promise<void> {\",\n `return knex.schema.alterTable(\"${table}\", (table) => {`,\n \"// create fk\",\n ...up,\n \"});\",\n \"}\",\n \"\",\n \"export async function down(knex: Knex): Promise<void> {\",\n `return knex.schema.alterTable(\"${table}\", (table) => {`,\n \"// drop fk\",\n ...down,\n \"});\",\n \"}\",\n ];\n\n const foreignKeysString = foreigns\n .map((foreign) => foreign.columns.join(\"_\"))\n .join(\"_\");\n return [\n {\n table,\n type: \"foreign\",\n title: `foreign__${table}__${foreignKeysString}`,\n formatted: await prettier.format(lines.join(\"\\n\"), {\n parser: \"typescript\",\n }),\n },\n ];\n}\n\n/**\n * MigrationForeign[] 읽어서 외부키 constraint 정의하는 구문 생성\n */\nfunction genForeignDefinitions(\n table: string,\n foreigns: MigrationForeign[]\n): { up: string[]; down: string[] } {\n return foreigns.reduce(\n (r, foreign) => {\n const columnsStringQuote = foreign.columns\n .map((col) => `'${col.replace(`${table}.`, \"\")}'`)\n .join(\",\");\n r.up.push(\n `table.foreign('${foreign.columns.join(\",\")}')\n .references('${foreign.to}')\n .onUpdate('${foreign.onUpdate}')\n .onDelete('${foreign.onDelete}')`\n );\n r.down.push(`table.dropForeign([${columnsStringQuote}])`);\n return r;\n },\n {\n up: [] as string[],\n down: [] as string[],\n }\n );\n}\n\n/**\n * 테이블 변경 케이스 - 컬럼/인덱스 변경\n */\nasync function generateAlterCode_ColumnAndIndexes(\n table: string,\n entityColumns: MigrationColumn[],\n entityIndexes: MigrationIndex[],\n dbColumns: MigrationColumn[],\n dbIndexes: MigrationIndex[],\n dbForeigns: MigrationForeign[]\n): Promise<GenMigrationCode[]> {\n /*\n 세부 비교 후 다른점 찾아서 코드 생성\n\n 1. 컬럼갯수 다름: MD에 있으나, DB에 없다면 추가\n 2. 컬럼갯수 다름: MD에 없으나, DB에 있다면 삭제\n 3. 그외 컬럼(컬럼 갯수가 동일하거나, 다른 경우 동일한 컬럼끼리) => alter\n 4. 다른거 다 동일하고 index만 변경되는 경우\n\n ** 컬럼명을 변경하는 경우는 따로 핸들링하지 않음\n => drop/add 형태의 마이그레이션 코드가 생성되는데, 수동으로 rename 코드로 수정하여 처리\n */\n\n // 각 컬럼 이름 기준으로 add, drop, alter 여부 확인\n const alterColumnsTo = getAlterColumnsTo(entityColumns, dbColumns);\n\n // 추출된 컬럼들을 기준으로 각각 라인 생성\n const alterColumnLinesTo = getAlterColumnLinesTo(\n alterColumnsTo,\n entityColumns,\n table,\n dbForeigns\n );\n\n // 인덱스의 add, drop 여부 확인\n const alterIndexesTo = getAlterIndexesTo(entityIndexes, dbIndexes);\n\n // fulltext index 분리\n const [ngramIndexes, standardIndexes] = _.partition(\n alterIndexesTo.add,\n (i) => i.type === \"fulltext\" && i.parser === \"ngram\"\n );\n\n // 인덱스가 삭제되는 경우, 컬럼과 같이 삭제된 케이스에는 drop에서 제외해야함!\n const indexNeedsToDrop = alterIndexesTo.drop.filter(\n (index) =>\n index.columns.every((colName) =>\n alterColumnsTo.drop.map((col) => col.name).includes(colName)\n ) === false\n );\n\n const lines: string[] = [\n 'import { Knex } from \"knex\";',\n \"\",\n \"export async function up(knex: Knex): Promise<void> {\",\n `await knex.schema.alterTable(\"${table}\", (table) => {`,\n // 1. add column\n ...(alterColumnsTo.add.length > 0 ? alterColumnLinesTo.add.up : []),\n // 2. drop column\n ...(alterColumnsTo.drop.length > 0 ? alterColumnLinesTo.drop.up : []),\n // 3. alter column\n ...(alterColumnsTo.alter.length > 0 ? alterColumnLinesTo.alter.up : []),\n // 4. add index\n ...standardIndexes.map((index) => genIndexDefinition(index, table)),\n // 5. drop index\n ...indexNeedsToDrop.map(genIndexDropDefinition),\n \"});\",\n // ngram은 knex.raw로 처리하므로 alterTable 밖에서 실행\n ...ngramIndexes.map((index) => genIndexDefinition(index, table)),\n \"}\",\n \"\",\n \"export async function down(knex: Knex): Promise<void> {\",\n `return knex.schema.alterTable(\"${table}\", (table) => {`,\n ...(alterColumnsTo.add.length > 0 ? alterColumnLinesTo.add.down : []),\n ...(alterColumnsTo.drop.length > 0 ? alterColumnLinesTo.drop.down : []),\n ...(alterColumnsTo.alter.length > 0 ? alterColumnLinesTo.alter.down : []),\n ...alterIndexesTo.add\n .filter(\n (index) =>\n index.columns.every((colName) =>\n alterColumnsTo.add.map((col) => col.name).includes(colName)\n ) === false\n )\n .map(genIndexDropDefinition),\n ...indexNeedsToDrop.map((index) => genIndexDefinition(index, table)),\n \"});\",\n \"}\",\n ];\n\n const formatted = await prettier.format(lines.join(\"\\n\"), {\n parser: \"typescript\",\n });\n\n const title = [\n \"alter\",\n table,\n ...([\"add\", \"drop\", \"alter\"] as const)\n .map((action) => {\n const len = alterColumnsTo[action].length;\n if (len > 0) {\n return action + len;\n }\n return null;\n })\n .filter((part) => part !== null),\n ].join(\"_\");\n\n return [\n {\n table,\n title,\n formatted,\n type: \"normal\",\n },\n ];\n}\n\n/**\n * 각 컬럼 이름 기준으로 add, drop, alter 여부 확인\n */\nfunction getAlterColumnsTo(\n entityColumns: MigrationColumn[],\n dbColumns: MigrationColumn[]\n) {\n const columnsTo = {\n add: [] as MigrationColumn[],\n drop: [] as MigrationColumn[],\n alter: [] as MigrationColumn[],\n };\n\n // 컬럼명 기준 비교\n const extraColumns = {\n db: _.differenceBy(dbColumns, entityColumns, (col) => col.name),\n entity: _.differenceBy(entityColumns, dbColumns, (col) => col.name),\n };\n if (extraColumns.entity.length > 0) {\n columnsTo.add = columnsTo.add.concat(extraColumns.entity);\n }\n if (extraColumns.db.length > 0) {\n columnsTo.drop = columnsTo.drop.concat(extraColumns.db);\n }\n\n // 동일 컬럼명의 세부 필드 비교\n const sameDbColumns = _.intersectionBy(\n dbColumns,\n entityColumns,\n (col) => col.name\n );\n const sameMdColumns = _.intersectionBy(\n entityColumns,\n dbColumns,\n (col) => col.name\n );\n columnsTo.alter = _.differenceWith(sameDbColumns, sameMdColumns, (a, b) =>\n equal(a, b)\n );\n\n return columnsTo;\n}\n\n/**\n * 추출된 컬럼들을 기준으로 각각 라인 생성\n */\nfunction getAlterColumnLinesTo(\n columnsTo: ReturnType<typeof getAlterColumnsTo>,\n entityColumns: MigrationColumn[],\n table: string,\n dbForeigns: MigrationForeign[]\n) {\n let linesTo = {\n add: {\n up: [] as string[],\n down: [] as string[],\n },\n drop: {\n up: [] as string[],\n down: [] as string[],\n },\n alter: {\n up: [] as string[],\n down: [] as string[],\n },\n };\n\n linesTo.add = {\n up: [\"// add\", ...genColumnDefinitions(columnsTo.add)],\n down: [\n \"// rollback - add\",\n `table.dropColumns(${columnsTo.add\n .map((col) => `'${col.name}'`)\n .join(\", \")})`,\n ],\n };\n\n // drop할 컬럼에 걸린 FK 찾기\n const dropColumnNames = columnsTo.drop.map((col) => col.name);\n const fkToDropBeforeColumn = dbForeigns.filter((fk) =>\n fk.columns.some((col) => dropColumnNames.includes(col))\n );\n\n const dropFkLines = fkToDropBeforeColumn.map((fk) => {\n const columnsStringQuote = fk.columns.map((col) => `'${col}'`).join(\",\");\n return `table.dropForeign([${columnsStringQuote}])`;\n });\n\n const restoreFkLines = genForeignDefinitions(table, fkToDropBeforeColumn).up;\n\n linesTo.drop = {\n up: [\n ...(dropFkLines.length > 0\n ? [\"// drop foreign keys on columns to be dropped\", ...dropFkLines]\n : []),\n \"// drop columns\",\n `table.dropColumns(${columnsTo.drop\n .map((col) => `'${col.name}'`)\n .join(\", \")})`,\n ],\n down: [\n \"// rollback - drop columns\",\n ...genColumnDefinitions(columnsTo.drop),\n ...(restoreFkLines.length > 0\n ? [\"// restore foreign keys\", ...restoreFkLines]\n : []),\n ],\n };\n linesTo.alter = columnsTo.alter.reduce(\n (r, dbColumn) => {\n const entityColumn = entityColumns.find(\n (col) => col.name == dbColumn.name\n );\n if (entityColumn === undefined) {\n return r;\n }\n\n // 컬럼 변경사항\n const columnDiffUp = _.difference(\n genColumnDefinitions([entityColumn]),\n genColumnDefinitions([dbColumn])\n );\n const columnDiffDown = _.difference(\n genColumnDefinitions([dbColumn]),\n genColumnDefinitions([entityColumn])\n );\n if (columnDiffUp.length > 0) {\n r.up = [\n ...r.up,\n \"// alter column\",\n ...columnDiffUp.map((l) => l.replace(\";\", \"\") + \".alter();\"),\n ];\n r.down = [\n ...r.down,\n \"// rollback - alter column\",\n ...columnDiffDown.map((l) => l.replace(\";\", \"\") + \".alter();\"),\n ];\n }\n\n return r;\n },\n {\n up: [] as string[],\n down: [] as string[],\n }\n );\n\n return linesTo;\n}\n\n/**\n * 인덱스의 add, drop 여부 확인\n */\nfunction getAlterIndexesTo(\n entityIndexes: MigrationIndex[],\n dbIndexes: MigrationIndex[]\n) {\n // 인덱스 비교\n let indexesTo = {\n add: [] as MigrationIndex[],\n drop: [] as MigrationIndex[],\n };\n const extraIndexes = {\n db: _.differenceBy(dbIndexes, entityIndexes, (col) =>\n [col.type, col.columns.join(\"-\")].join(\"//\")\n ),\n entity: _.differenceBy(entityIndexes, dbIndexes, (col) =>\n [col.type, col.columns.join(\"-\")].join(\"//\")\n ),\n };\n if (extraIndexes.entity.length > 0) {\n indexesTo.add = indexesTo.add.concat(extraIndexes.entity);\n }\n if (extraIndexes.db.length > 0) {\n indexesTo.drop = indexesTo.drop.concat(extraIndexes.db);\n }\n\n return indexesTo;\n}\n\n/**\n * 인덱스 삭제 정의 생성\n */\nfunction genIndexDropDefinition(index: MigrationIndex) {\n const methodMap = {\n index: \"Index\",\n fulltext: \"Index\",\n unique: \"Unique\",\n };\n\n return `table.drop${methodMap[index.type]}([${index.columns\n .map((columnName) => `'${columnName}'`)\n .join(\",\")}])`;\n}\n\n/**\n * 테이블 변경 케이스 - Foreign Key 변경\n */\nasync function generateAlterCode_Foreigns(\n table: string,\n entityForeigns: MigrationForeign[],\n dbForeigns: MigrationForeign[],\n droppingColumns: MigrationColumn[] = []\n): Promise<GenMigrationCode[]> {\n // console.log({ entityForeigns, dbForeigns });\n\n const getKey = (mf: MigrationForeign): string => {\n return [mf.columns.join(\"-\"), mf.to].join(\"///\");\n };\n\n // 삭제될 컬럼명 목록\n const droppingColumnNames = droppingColumns.map((col) => col.name);\n\n const fkTo = entityForeigns.reduce(\n (result, entityF) => {\n const matchingDbF = dbForeigns.find(\n (dbF) => getKey(entityF) === getKey(dbF)\n );\n if (!matchingDbF) {\n result.add.push(entityF);\n return result;\n }\n\n if (equal(entityF, matchingDbF) === false) {\n result.alterSrc.push(matchingDbF);\n result.alterDst.push(entityF);\n return result;\n }\n return result;\n },\n {\n add: [] as MigrationForeign[],\n drop: [] as MigrationForeign[],\n alterSrc: [] as MigrationForeign[],\n alterDst: [] as MigrationForeign[],\n }\n );\n\n // dbForeigns에는 있지만 entityForeigns에는 없는 경우 (삭제된 FK)\n // 단, 삭제될 컬럼의 FK는 제외 (generateAlterCode_ColumnAndIndexes에서 처리)\n dbForeigns.forEach((dbF) => {\n const matchingEntityF = entityForeigns.find(\n (entityF) => getKey(entityF) === getKey(dbF)\n );\n if (!matchingEntityF) {\n // 이 FK의 컬럼이 삭제될 컬럼 목록에 있는지 확인\n const isColumnDropping = dbF.columns.some((col) =>\n droppingColumnNames.includes(col)\n );\n // 컬럼이 삭제되지 않는 경우에만 FK drop 목록에 추가\n if (!isColumnDropping) {\n fkTo.drop.push(dbF);\n }\n }\n });\n\n const linesTo = {\n add: genForeignDefinitions(table, fkTo.add),\n drop: genForeignDefinitions(table, fkTo.drop),\n alterSrc: genForeignDefinitions(table, fkTo.alterSrc),\n alterDst: genForeignDefinitions(table, fkTo.alterDst),\n };\n\n // drop fk columns인 경우(생성될 코드 없는 경우) 패스\n const hasLines = Object.values(linesTo).some(\n (l) => l.up.length > 0 || l.down.length > 0\n );\n if (!hasLines) {\n return [];\n }\n\n const lines: string[] = [\n 'import { Knex } from \"knex\";',\n \"\",\n \"export async function up(knex: Knex): Promise<void> {\",\n `return knex.schema.alterTable(\"${table}\", (table) => {`,\n ...linesTo.drop.down,\n ...linesTo.add.up,\n ...linesTo.alterSrc.down,\n ...linesTo.alterDst.up,\n \"})\",\n \"}\",\n \"\",\n \"export async function down(knex: Knex): Promise<void> {\",\n `return knex.schema.alterTable(\"${table}\", (table) => {`,\n ...linesTo.add.down,\n ...linesTo.alterDst.down,\n ...linesTo.alterSrc.up,\n ...linesTo.drop.up,\n \"})\",\n \"}\",\n ];\n\n const formatted = await prettier.format(lines.join(\"\\n\"), {\n parser: \"typescript\",\n });\n\n const title = [\n \"alter\",\n table,\n \"foreigns\",\n // TODO 바뀌는 부분\n ].join(\"_\");\n\n return [\n {\n table,\n title,\n formatted,\n type: \"normal\",\n },\n ];\n}\n\n/**\n * 주어진 EntitySet을 기반으로 테이블 CREATE 마이그레이션 코드를 생성합니다.\n * @param entitySet\n * @returns CREATE 마이그레이션 코드\n */\nexport async function generateCreateCode(\n entitySet: MigrationSet\n): Promise<GenMigrationCode[]> {\n return [\n await generateCreateCode_ColumnAndIndexes(\n entitySet.table,\n entitySet.columns,\n entitySet.indexes\n ),\n ...(await generateCreateCode_Foreign(entitySet.table, entitySet.foreigns)),\n ];\n}\n\n/**\n * 주어진 entitySet을 목표로, dbSet을 현 상황으로 하여 테이블 ALTER 마이그레이션 코드를 생성합니다.\n * @param entitySet 현 상황의 MigrationSet\n * @param dbSet 목표 상황의 MigrationSet\n * @returns ALTER 마이그레이션 코드\n */\nexport async function generateAlterCode(\n entitySet: MigrationSet,\n dbSet: MigrationSet\n): Promise<GenMigrationCode[]> {\n const replaceColumnDefaultTo = (col: MigrationColumn) => {\n // float인 경우 기본값을 0으로 지정하는 경우 \"0.00\"으로 변환되는 케이스 대응\n if (\n col.type === \"float\" &&\n col.defaultTo &&\n String(col.defaultTo).includes('\"') === false\n ) {\n col.defaultTo = `\"${Number(col.defaultTo).toFixed(col.scale ?? 2)}\"`;\n }\n // string인 경우 기본값이 빈 스트링인 경우 대응\n if (col.type === \"string\" && col.defaultTo === \"\") {\n col.defaultTo = '\"\"';\n }\n // boolean인 경우 기본값 정규화 (MySQL에서는 TINYINT(1)로 저장되므로 0 또는 1로 정규화)\n // TODO: db.ts에 typeCase 설정 확인하여 처리하도록 수정 필요\n if (col.type === \"boolean\" && col.defaultTo !== undefined) {\n if (col.defaultTo === \"0\" || col.defaultTo === \"false\") {\n col.defaultTo = \"0\";\n } else if (col.defaultTo === \"1\" || col.defaultTo === \"true\") {\n col.defaultTo = \"1\";\n }\n }\n return col;\n };\n const entityColumns = _.sortBy(entitySet.columns, (a) => a.name).map(\n replaceColumnDefaultTo\n );\n const dbColumns = _.sortBy(dbSet.columns, (a) => a.name).map(\n replaceColumnDefaultTo\n );\n\n /* 디버깅용 코드, 특정 컬럼에서 불일치 발생할 때 확인\n const entityColumn = entitySet.columns.find(\n (col) => col.name === \"price_krw\"\n );\n const dbColumn = dbSet.columns.find(\n (col) => col.name === \"price_krw\"\n );\n console.debug({ entityColumn, dbColumn });\n */\n\n const entityIndexes = _.sortBy(entitySet.indexes, (a) =>\n [a.type, ...a.columns.sort((c1, c2) => (c1 > c2 ? 1 : -1))].join(\"-\")\n );\n const dbIndexes = _.sortBy(dbSet.indexes, (a) =>\n [a.type, ...a.columns.sort((c1, c2) => (c1 > c2 ? 1 : -1))].join(\"-\")\n );\n\n const replaceNoActionOnMySQL = (f: MigrationForeign) => {\n // MySQL에서 RESTRICT와 NO ACTION은 동일함\n const { onDelete, onUpdate } = f;\n return {\n ...f,\n onUpdate: onUpdate === \"RESTRICT\" ? \"NO ACTION\" : onUpdate,\n onDelete: onDelete === \"RESTRICT\" ? \"NO ACTION\" : onDelete,\n };\n };\n\n const entityForeigns = _.sortBy(entitySet.foreigns, (a) =>\n [a.to, ...a.columns].join(\"-\")\n ).map((f) => replaceNoActionOnMySQL(f));\n const dbForeigns = _.sortBy(dbSet.foreigns, (a) =>\n [a.to, ...a.columns].join(\"-\")\n ).map((f) => replaceNoActionOnMySQL(f));\n\n // 삭제될 컬럼 목록 계산\n const droppingColumns = _.differenceBy(\n dbColumns,\n entityColumns,\n (col) => col.name\n );\n\n const alterCodes: (GenMigrationCode | GenMigrationCode[] | null)[] = [];\n\n // 1. columnsAndIndexes 처리\n const isEqualColumns = equal(entityColumns, dbColumns);\n const isEqualIndexes = equal(\n entityIndexes.map((index) => _.omit(index, [\"parser\"])),\n dbIndexes\n );\n if (!isEqualColumns || !isEqualIndexes) {\n alterCodes.push(\n await generateAlterCode_ColumnAndIndexes(\n entitySet.table,\n entityColumns,\n entityIndexes,\n dbColumns,\n dbIndexes,\n dbSet.foreigns\n )\n );\n }\n\n // 2. foreigns 처리 (삭제될 컬럼 정보 전달)\n if (equal(entityForeigns, dbForeigns) === false) {\n alterCodes.push(\n await generateAlterCode_Foreigns(\n entitySet.table,\n entityForeigns,\n dbForeigns,\n droppingColumns\n )\n );\n }\n\n if (alterCodes.every((alterCode) => alterCode === null)) {\n return [];\n }\n\n return alterCodes.filter((alterCode) => alterCode !== null).flat();\n}\n"],"names":["generateAlterCode","generateCreateCode","generateCreateCode_ColumnAndIndexes","table","columns","indexes","_","ngramIndexes","standardIndexes","lines","partition","i","type","parser","genColumnDefinitions","map","index","genIndexDefinition","title","prettier","format","join","formatted","column","chains","name","push","precision","scale","columnType","extraType","includes","length","unsigned","nullable","defaultTo","undefined","startsWith","methodMap","fulltext","unique","indexName","col","generateCreateCode_Foreign","foreigns","genForeignDefinitions","up","down","foreignKeysString","console","log","foreign","reduce","r","columnsStringQuote","replace","to","onUpdate","onDelete","generateAlterCode_ColumnAndIndexes","entityColumns","entityIndexes","dbColumns","dbIndexes","dbForeigns","alterColumnsTo","alterColumnLinesTo","alterIndexesTo","indexNeedsToDrop","getAlterColumnsTo","getAlterColumnLinesTo","getAlterIndexesTo","add","drop","filter","every","colName","alter","genIndexDropDefinition","action","len","part","columnsTo","extraColumns","db","differenceBy","entity","concat","sameDbColumns","intersectionBy","sameMdColumns","differenceWith","a","b","equal","linesTo","dropColumnNames","fkToDropBeforeColumn","fk","some","dropFkLines","restoreFkLines","dbColumn","entityColumn","find","columnDiffUp","difference","columnDiffDown","l","indexesTo","extraIndexes","columnName","generateAlterCode_Foreigns","entityForeigns","droppingColumns","getKey","droppingColumnNames","fkTo","hasLines","mf","result","entityF","matchingDbF","dbF","alterSrc","alterDst","forEach","matchingEntityF","isColumnDropping","Object","values","entitySet","dbSet","replaceColumnDefaultTo","replaceNoActionOnMySQL","alterCodes","isEqualColumns","isEqualIndexes","String","Number","toFixed","sortBy","sort","c1","c2","f","omit","alterCode","flat"],"mappings":"mPAspBsBA,2BAAAA,uBAnBAC,4BAAAA,gFAnoBR,uEACO,8EACH,ghKAYlB,SAAeC,oCACbC,KAAa,CACbC,OAA0B,CAC1BC,OAAyB,4CAGeC,YAAjCC,aAAcC,gBAMfC,kFANkCH,6BAAAA,eAAC,CAACI,SAAS,CACjDL,QACA,SAACM,UAAMA,EAAEC,IAAI,GAAK,YAAcD,EAAEE,MAAM,GAAK,aAFxCN,aAAiCD,eAAnBE,gBAAmBF,eAMlCG,MAAkB,CACtB,+BACA,GACA,wDACA,AAAC,kCAAuC,OAANN,MAAM,mBACxC,cALsB,OAMtB,qBAAGW,qBAAqBV,WACxB,GACA,cACA,qBAAGI,gBAAgBO,GAAG,CAAC,SAACC,cAAUC,mBAAmBD,MAAOb,WAC5D,OAEA,qBAAGI,aAAaQ,GAAG,CAAC,SAACC,cAAUC,mBAAmBD,MAAOb,WACzD,IACA,GACA,0DACA,AAAC,kCAAuC,OAANA,MAAM,OACxC,YAGAA,MAAAA,MACAS,KAAM,SACNM,MAAO,AAAC,WAAgB,OAANf,QACP,SAAMgB,iBAAQ,CAACC,MAAM,CAACX,MAAMY,IAAI,CAAC,MAAO,CACjDR,OAAQ,YACV,WANF,eAIES,UAAW,uBAIf,KAKA,SAASR,qBAAqBV,OAA0B,EACtD,OAAOA,QAAQW,GAAG,CAAC,SAACQ,QAClB,IAAMC,OAAmB,EAAE,CAC3B,GAAID,OAAOE,IAAI,GAAK,KAAM,CACxB,MAAO,+BACT,CAGA,GAAIF,OAAOX,IAAI,GAAK,SAAWW,OAAOX,IAAI,GAAK,UAAW,CACxDY,OAAOE,IAAI,CACT,AAAC,GAAkBH,OAAhBA,OAAOX,IAAI,CAAC,MAAqBW,OAAjBA,OAAOE,IAAI,CAAC,OAA0BF,OAArBA,OAAOI,SAAS,CAAC,MAAiB,OAAbJ,OAAOK,KAAK,CAAC,KAE1E,KAAO,CAEL,IAAIC,WAAaN,OAAOX,IAAI,CAC5B,IAAIkB,UACJ,GAAID,WAAWE,QAAQ,CAAC,SAAWF,aAAe,OAAQ,CACxDC,UAAYD,WACZA,WAAa,MACf,CACAL,OAAOE,IAAI,CACT,AAAC,GAAkBH,OAAhBA,OAAOX,IAAI,CAAC,MACbW,OADiBA,OAAOE,IAAI,CAAC,KAE5BK,OADDP,OAAOS,MAAM,CAAG,AAAC,KAAkB,OAAdT,OAAOS,MAAM,EAAK,IACF,OAApCF,UAAY,AAAC,MAAe,OAAVA,UAAU,KAAK,GAAG,KAE3C,CACA,GAAIP,OAAOU,QAAQ,CAAE,CACnBT,OAAOE,IAAI,CAAC,aACd,CAGAF,OAAOE,IAAI,CAACH,OAAOW,QAAQ,CAAG,aAAe,iBAG7C,GAAIX,OAAOY,SAAS,GAAKC,UAAW,CAClC,GACE,OAAOb,OAAOY,SAAS,GAAK,UAC5BZ,OAAOY,SAAS,CAACE,UAAU,CAAC,KAC5B,CACAb,OAAOE,IAAI,CAAC,AAAC,aAA6B,OAAjBH,OAAOY,SAAS,CAAC,KAC5C,KAAO,CACLX,OAAOE,IAAI,CAAC,AAAC,uBAAuC,OAAjBH,OAAOY,SAAS,CAAC,OACtD,CACF,CAEA,MAAO,AAAC,SAAyB,OAAjBX,OAAOH,IAAI,CAAC,KAAK,IACnC,EACF,CAKA,SAASJ,mBAAmBD,KAAqB,CAAEb,KAAa,EAC9D,IAAMmC,UAAY,CAChBtB,MAAO,QACPuB,SAAU,QACVC,OAAQ,QACV,EAEA,GAAIxB,MAAMJ,IAAI,GAAK,YAAcI,MAAMH,MAAM,GAAK,QAAS,CACzD,IAAM4B,UAAY,AAAC,GAAWzB,OAATb,MAAM,KAA2B,OAAxBa,MAAMZ,OAAO,CAACiB,IAAI,CAAC,KAAK,UACtD,MAAO,AAAC,+BAA2DoB,OAA5BtC,MAAM,wBAAoCa,OAAdyB,UAAU,MAE3E,OAF+EzB,MAAMZ,OAAO,CAACiB,IAAI,CACjG,MACA,yBACJ,CAEA,MAAO,AAAC,SAAkCL,OAA1BsB,SAAS,CAACtB,MAAMJ,IAAI,CAAC,CAAC,MAEtBI,OAF0BA,MAAMZ,OAAO,CACpDW,GAAG,CAAC,SAAC2B,WAAQ,AAAC,IAAO,OAAJA,IAAI,OACrBrB,IAAI,CAAC,KAAK,KAA8D,OAA3DL,MAAMJ,IAAI,GAAK,WAAa,0BAA4B,GAAG,IAC7E,CAKA,SAAe+B,2BACbxC,KAAa,CACbyC,QAA4B,4CAMPC,uBAAbC,GAAIC,KAMNtC,MAkBAuC,8FA5BN,GAAIJ,SAASZ,MAAM,GAAK,EAAG,CACzB,YACF,CAEqBa,uBAAAA,sBAAsB1C,MAAOyC,UAA1CE,GAAaD,uBAAbC,GAAIC,KAASF,uBAATE,KACZ,GAAID,GAAGd,MAAM,GAAK,GAAKe,KAAKf,MAAM,GAAK,EAAG,CACxCiB,QAAQC,GAAG,CAAC,gBACZ,YACF,CAEMzC,MAAkB,CACtB,+BACA,GACA,wDACA,AAAC,kCAAuC,OAANN,MAAM,mBACxC,gBALsB,OAMtB,qBAAG2C,KACH,MACA,IACA,GACA,0DACA,AAAC,kCAAuC,OAAN3C,MAAM,mBACxC,cACA,qBAAG4C,OACH,MACA,MAGIC,kBAAoBJ,SACvB7B,GAAG,CAAC,SAACoC,gBAAYA,QAAQ/C,OAAO,CAACiB,IAAI,CAAC,OACtCA,IAAI,CAAC,WAGJlB,MAAAA,MACAS,KAAM,UACNM,MAAO,AAAC,YAAqB8B,OAAV7C,MAAM,MAAsB,OAAlB6C,oBAClB,SAAM7B,iBAAQ,CAACC,MAAM,CAACX,MAAMY,IAAI,CAAC,MAAO,CACjDR,OAAQ,YACV,WAPJ,gBAKIS,UAAW,wBAKjB,KAKA,SAASuB,sBACP1C,KAAa,CACbyC,QAA4B,EAE5B,OAAOA,SAASQ,MAAM,CACpB,SAACC,EAAGF,SACF,IAAMG,mBAAqBH,QAAQ/C,OAAO,CACvCW,GAAG,CAAC,SAAC2B,WAAQ,AAAC,IAAgC,OAA7BA,IAAIa,OAAO,CAAC,AAAC,GAAQ,OAANpD,MAAM,KAAI,IAAI,OAC9CkB,IAAI,CAAC,KACRgC,EAAEP,EAAE,CAACpB,IAAI,CACP,AAAC,kBACkByB,OADDA,QAAQ/C,OAAO,CAACiB,IAAI,CAAC,KAAK,iCAE3B8B,OADEA,QAAQK,EAAE,CAAC,+BAEbL,OADAA,QAAQM,QAAQ,CAAC,+BACA,OAAjBN,QAAQO,QAAQ,CAAC,OAEpCL,EAAEN,IAAI,CAACrB,IAAI,CAAC,AAAC,sBAAwC,OAAnB4B,mBAAmB,OACrD,OAAOD,CACT,EACA,CACEP,GAAI,EAAE,CACNC,KAAM,EAAE,AACV,EAEJ,CAKA,SAAeY,mCACbxD,KAAa,CACbyD,aAAgC,CAChCC,aAA+B,CAC/BC,SAA4B,CAC5BC,SAA2B,CAC3BC,UAA8B,4CAexBC,eAGAC,mBAQAC,eAGkC7D,YAAjCC,aAAcC,gBAMf4D,iBAOA3D,MAsCAa,UAIAJ,6EArEA+C,eAAiBI,kBAAkBT,cAAeE,WAGlDI,mBAAqBI,sBACzBL,eACAL,cACAzD,MACA6D,YAIIG,eAAiBI,kBAAkBV,cAAeE,WAGhBzD,6BAAAA,eAAC,CAACI,SAAS,CACjDyD,eAAeK,GAAG,CAClB,SAAC7D,UAAMA,EAAEC,IAAI,GAAK,YAAcD,EAAEE,MAAM,GAAK,aAFxCN,aAAiCD,eAAnBE,gBAAmBF,eAMlC8D,iBAAmBD,eAAeM,IAAI,CAACC,MAAM,CACjD,SAAC1D,cACCA,MAAMZ,OAAO,CAACuE,KAAK,CAAC,SAACC,gBACnBX,eAAeQ,IAAI,CAAC1D,GAAG,CAAC,SAAC2B,YAAQA,IAAIjB,IAAI,GAAEM,QAAQ,CAAC6C,aAChD,QAGJnE,MAAkB,CACtB,+BACA,GACA,wDACA,AAAC,iCAAsC,OAANN,MAAM,oBAJjB,OAMtB,qBAAI8D,eAAeO,GAAG,CAACxC,MAAM,CAAG,EAAIkC,mBAAmBM,GAAG,CAAC1B,EAAE,KAE7D,qBAAImB,eAAeQ,IAAI,CAACzC,MAAM,CAAG,EAAIkC,mBAAmBO,IAAI,CAAC3B,EAAE,KAE/D,qBAAImB,eAAeY,KAAK,CAAC7C,MAAM,CAAG,EAAIkC,mBAAmBW,KAAK,CAAC/B,EAAE,KAEjE,qBAAGtC,gBAAgBO,GAAG,CAAC,SAACC,cAAUC,mBAAmBD,MAAOb,UAE5D,qBAAGiE,iBAAiBrD,GAAG,CAAC+D,0BACxB,OAEA,qBAAGvE,aAAaQ,GAAG,CAAC,SAACC,cAAUC,mBAAmBD,MAAOb,WACzD,IACA,GACA,0DACA,AAAC,kCAAuC,OAANA,MAAM,oBACxC,qBAAI8D,eAAeO,GAAG,CAACxC,MAAM,CAAG,EAAIkC,mBAAmBM,GAAG,CAACzB,IAAI,KAC/D,qBAAIkB,eAAeQ,IAAI,CAACzC,MAAM,CAAG,EAAIkC,mBAAmBO,IAAI,CAAC1B,IAAI,KACjE,qBAAIkB,eAAeY,KAAK,CAAC7C,MAAM,CAAG,EAAIkC,mBAAmBW,KAAK,CAAC9B,IAAI,KACnE,qBAAGoB,eAAeK,GAAG,CAClBE,MAAM,CACL,SAAC1D,cACCA,MAAMZ,OAAO,CAACuE,KAAK,CAAC,SAACC,gBACnBX,eAAeO,GAAG,CAACzD,GAAG,CAAC,SAAC2B,YAAQA,IAAIjB,IAAI,GAAEM,QAAQ,CAAC6C,aAC/C,QAET7D,GAAG,CAAC+D,yBACP,qBAAGV,iBAAiBrD,GAAG,CAAC,SAACC,cAAUC,mBAAmBD,MAAOb,WAC7D,MACA,MAGgB,SAAMgB,iBAAQ,CAACC,MAAM,CAACX,MAAMY,IAAI,CAAC,MAAO,CACxDR,OAAQ,YACV,WAFMS,UAAY,cAIZJ,MAAQ,CACZ,QACAf,OAFY,OAGZ,qBAAG,CAAE,MAAO,OAAQ,SACjBY,GAAG,CAAC,SAACgE,QACJ,IAAMC,IAAMf,cAAc,CAACc,OAAO,CAAC/C,MAAM,CACzC,GAAIgD,IAAM,EAAG,CACX,OAAOD,OAASC,GAClB,CACA,OAAO,IACT,GACCN,MAAM,CAAC,SAACO,aAASA,OAAS,SAC7B5D,IAAI,CAAC,KAEP,UACE,CACElB,MAAAA,MACAe,MAAAA,MACAI,UAAAA,UACAV,KAAM,QACR,MAEJ,KAKA,SAASyD,kBACPT,aAAgC,CAChCE,SAA4B,EAE5B,IAAMoB,UAAY,CAChBV,IAAK,EAAE,CACPC,KAAM,EAAE,CACRI,MAAO,EAAE,AACX,EAGA,IAAMM,aAAe,CACnBC,GAAI9E,eAAC,CAAC+E,YAAY,CAACvB,UAAWF,cAAe,SAAClB,YAAQA,IAAIjB,IAAI,GAC9D6D,OAAQhF,eAAC,CAAC+E,YAAY,CAACzB,cAAeE,UAAW,SAACpB,YAAQA,IAAIjB,IAAI,EACpE,EACA,GAAI0D,aAAaG,MAAM,CAACtD,MAAM,CAAG,EAAG,CAClCkD,UAAUV,GAAG,CAAGU,UAAUV,GAAG,CAACe,MAAM,CAACJ,aAAaG,MAAM,CAC1D,CACA,GAAIH,aAAaC,EAAE,CAACpD,MAAM,CAAG,EAAG,CAC9BkD,UAAUT,IAAI,CAAGS,UAAUT,IAAI,CAACc,MAAM,CAACJ,aAAaC,EAAE,CACxD,CAGA,IAAMI,cAAgBlF,eAAC,CAACmF,cAAc,CACpC3B,UACAF,cACA,SAAClB,YAAQA,IAAIjB,IAAI,GAEnB,IAAMiE,cAAgBpF,eAAC,CAACmF,cAAc,CACpC7B,cACAE,UACA,SAACpB,YAAQA,IAAIjB,IAAI,EAEnByD,CAAAA,UAAUL,KAAK,CAAGvE,eAAC,CAACqF,cAAc,CAACH,cAAeE,cAAe,SAACE,EAAGC,SACnEC,GAAAA,sBAAK,EAACF,EAAGC,KAGX,OAAOX,SACT,CAKA,SAASZ,sBACPY,SAA+C,CAC/CtB,aAAgC,CAChCzD,KAAa,CACb6D,UAA8B,EAE9B,IAAI+B,QAAU,CACZvB,IAAK,CACH1B,GAAI,EAAE,CACNC,KAAM,EAAE,AACV,EACA0B,KAAM,CACJ3B,GAAI,EAAE,CACNC,KAAM,EAAE,AACV,EACA8B,MAAO,CACL/B,GAAI,EAAE,CACNC,KAAM,EAAE,AACV,CACF,CAEAgD,CAAAA,QAAQvB,GAAG,CAAG,CACZ1B,GAAI,CAAC,SAAiD,CAAlD,OAAW,qBAAGhC,qBAAqBoE,UAAUV,GAAG,IACpDzB,KAAM,CACJ,oBACA,AAAC,qBAEa,OAFOmC,UAAUV,GAAG,CAC/BzD,GAAG,CAAC,SAAC2B,WAAQ,AAAC,IAAY,OAATA,IAAIjB,IAAI,CAAC,OAC1BJ,IAAI,CAAC,MAAM,KACf,AACH,EAGA,IAAM2E,gBAAkBd,UAAUT,IAAI,CAAC1D,GAAG,CAAC,SAAC2B,YAAQA,IAAIjB,IAAI,GAC5D,IAAMwE,qBAAuBjC,WAAWU,MAAM,CAAC,SAACwB,WAC9CA,GAAG9F,OAAO,CAAC+F,IAAI,CAAC,SAACzD,YAAQsD,gBAAgBjE,QAAQ,CAACW,SAGpD,IAAM0D,YAAcH,qBAAqBlF,GAAG,CAAC,SAACmF,IAC5C,IAAM5C,mBAAqB4C,GAAG9F,OAAO,CAACW,GAAG,CAAC,SAAC2B,WAAQ,AAAC,IAAO,OAAJA,IAAI,OAAIrB,IAAI,CAAC,KACpE,MAAO,AAAC,sBAAwC,OAAnBiC,mBAAmB,KAClD,GAEA,IAAM+C,eAAiBxD,sBAAsB1C,MAAO8F,sBAAsBnD,EAAE,AAE5EiD,CAAAA,QAAQtB,IAAI,CAAG,CACb3B,GAAI,AACF,qBAAIsD,YAAYpE,MAAM,CAAG,EACrB,CAAC,gDAAgE,CAAjE,OAAkD,qBAAGoE,cACrD,EAAE,SAHJ,CAIF,kBACA,AAAC,qBAEa,OAFOlB,UAAUT,IAAI,CAChC1D,GAAG,CAAC,SAAC2B,WAAQ,AAAC,IAAY,OAATA,IAAIjB,IAAI,CAAC,OAC1BJ,IAAI,CAAC,MAAM,KACf,EACD0B,KAAM,CACJ,6BAKD,CANK,OAEJ,qBAAGjC,qBAAqBoE,UAAUT,IAAI,GACtC,qBAAI4B,eAAerE,MAAM,CAAG,EACxB,CAAC,0BAA6C,CAA9C,OAA4B,qBAAGqE,iBAC/B,EAAE,EAEV,CACAN,CAAAA,QAAQlB,KAAK,CAAGK,UAAUL,KAAK,CAACzB,MAAM,CACpC,SAACC,EAAGiD,UACF,IAAMC,aAAe3C,cAAc4C,IAAI,CACrC,SAAC9D,YAAQA,IAAIjB,IAAI,EAAI6E,SAAS7E,IAAI,GAEpC,GAAI8E,eAAiBnE,UAAW,CAC9B,OAAOiB,CACT,CAGA,IAAMoD,aAAenG,eAAC,CAACoG,UAAU,CAC/B5F,qBAAqB,CAACyF,aAAa,EACnCzF,qBAAqB,CAACwF,SAAS,GAEjC,IAAMK,eAAiBrG,eAAC,CAACoG,UAAU,CACjC5F,qBAAqB,CAACwF,SAAS,EAC/BxF,qBAAqB,CAACyF,aAAa,GAErC,GAAIE,aAAazE,MAAM,CAAG,EAAG,CAC3BqB,EAAEP,EAAE,CAAG,AACL,qBAAGO,EAAEP,EAAE,SADF,CAEL,kBAED,CADC,qBAAG2D,aAAa1F,GAAG,CAAC,SAAC6F,UAAMA,EAAErD,OAAO,CAAC,IAAK,IAAM,eAElDF,CAAAA,EAAEN,IAAI,CAAG,AACP,qBAAGM,EAAEN,IAAI,SADF,CAEP,6BAED,CADC,qBAAG4D,eAAe5F,GAAG,CAAC,SAAC6F,UAAMA,EAAErD,OAAO,CAAC,IAAK,IAAM,eAEtD,CAEA,OAAOF,CACT,EACA,CACEP,GAAI,EAAE,CACNC,KAAM,EAAE,AACV,GAGF,OAAOgD,OACT,CAKA,SAASxB,kBACPV,aAA+B,CAC/BE,SAA2B,EAG3B,IAAI8C,UAAY,CACdrC,IAAK,EAAE,CACPC,KAAM,EAAE,AACV,EACA,IAAMqC,aAAe,CACnB1B,GAAI9E,eAAC,CAAC+E,YAAY,CAACtB,UAAWF,cAAe,SAACnB,WAC5C,CAACA,IAAI9B,IAAI,CAAE8B,IAAItC,OAAO,CAACiB,IAAI,CAAC,KAAK,CAACA,IAAI,CAAC,QAEzCiE,OAAQhF,eAAC,CAAC+E,YAAY,CAACxB,cAAeE,UAAW,SAACrB,WAChD,CAACA,IAAI9B,IAAI,CAAE8B,IAAItC,OAAO,CAACiB,IAAI,CAAC,KAAK,CAACA,IAAI,CAAC,OAE3C,EACA,GAAIyF,aAAaxB,MAAM,CAACtD,MAAM,CAAG,EAAG,CAClC6E,UAAUrC,GAAG,CAAGqC,UAAUrC,GAAG,CAACe,MAAM,CAACuB,aAAaxB,MAAM,CAC1D,CACA,GAAIwB,aAAa1B,EAAE,CAACpD,MAAM,CAAG,EAAG,CAC9B6E,UAAUpC,IAAI,CAAGoC,UAAUpC,IAAI,CAACc,MAAM,CAACuB,aAAa1B,EAAE,CACxD,CAEA,OAAOyB,SACT,CAKA,SAAS/B,uBAAuB9D,KAAqB,EACnD,IAAMsB,UAAY,CAChBtB,MAAO,QACPuB,SAAU,QACVC,OAAQ,QACV,EAEA,MAAO,AAAC,aAAsCxB,OAA1BsB,SAAS,CAACtB,MAAMJ,IAAI,CAAC,CAAC,MAE7B,OAFiCI,MAAMZ,OAAO,CACxDW,GAAG,CAAC,SAACgG,kBAAe,AAAC,IAAc,OAAXA,WAAW,OACnC1F,IAAI,CAAC,KAAK,KACf,CAKA,SAAe2F,yEACb7G,KAAa,CACb8G,cAAkC,CAClCjD,UAA8B,MAC9BkD,gBAIMC,OAKAC,oBAEAC,KA2CAtB,QAQAuB,SAOA7G,MAsBAa,UAIAJ,sGA/FNgG,gBAAAA,6DAIMC,OAAS,SAACI,IACd,MAAO,CAACA,GAAGnH,OAAO,CAACiB,IAAI,CAAC,KAAMkG,GAAG/D,EAAE,CAAC,CAACnC,IAAI,CAAC,MAC5C,EAGM+F,oBAAsBF,gBAAgBnG,GAAG,CAAC,SAAC2B,YAAQA,IAAIjB,IAAI,GAE3D4F,KAAOJ,eAAe7D,MAAM,CAChC,SAACoE,OAAQC,SACP,IAAMC,YAAc1D,WAAWwC,IAAI,CACjC,SAACmB,YAAQR,OAAOM,WAAaN,OAAOQ,OAEtC,GAAI,CAACD,YAAa,CAChBF,OAAOhD,GAAG,CAAC9C,IAAI,CAAC+F,SAChB,OAAOD,MACT,CAEA,GAAI1B,GAAAA,sBAAK,EAAC2B,QAASC,eAAiB,MAAO,CACzCF,OAAOI,QAAQ,CAAClG,IAAI,CAACgG,aACrBF,OAAOK,QAAQ,CAACnG,IAAI,CAAC+F,SACrB,OAAOD,MACT,CACA,OAAOA,MACT,EACA,CACEhD,GAAG,IACHC,IAAI,IACJmD,QAAQ,IACRC,QAAQ,GACV,GAKF7D,WAAW8D,OAAO,CAAC,SAACH,KAClB,IAAMI,gBAAkBd,eAAeT,IAAI,CACzC,SAACiB,gBAAYN,OAAOM,WAAaN,OAAOQ,OAE1C,GAAI,CAACI,gBAAiB,CAEpB,IAAMC,iBAAmBL,IAAIvH,OAAO,CAAC+F,IAAI,CAAC,SAACzD,YACzC0E,oBAAoBrF,QAAQ,CAACW,OAG/B,GAAI,CAACsF,iBAAkB,CACrBX,KAAK5C,IAAI,CAAC/C,IAAI,CAACiG,IACjB,CACF,CACF,GAEM5B,QAAU,CACdvB,IAAK3B,sBAAsB1C,MAAOkH,KAAK7C,GAAG,EAC1CC,KAAM5B,sBAAsB1C,MAAOkH,KAAK5C,IAAI,EAC5CmD,SAAU/E,sBAAsB1C,MAAOkH,KAAKO,QAAQ,EACpDC,SAAUhF,sBAAsB1C,MAAOkH,KAAKQ,QAAQ,CACtD,EAGMP,SAAWW,OAAOC,MAAM,CAACnC,SAASI,IAAI,CAC1C,SAACS,UAAMA,EAAE9D,EAAE,CAACd,MAAM,CAAG,GAAK4E,EAAE7D,IAAI,CAACf,MAAM,CAAG,IAE5C,GAAI,CAACsF,SAAU,CACb,YACF,CAEM7G,MAAkB,CACtB,+BACA,GACA,wDACA,AAAC,kCAAuC,OAANN,MAAM,oBAJlB,OAKtB,qBAAG4F,QAAQtB,IAAI,CAAC1B,IAAI,EACpB,qBAAGgD,QAAQvB,GAAG,CAAC1B,EAAE,EACjB,qBAAGiD,QAAQ6B,QAAQ,CAAC7E,IAAI,EACxB,qBAAGgD,QAAQ8B,QAAQ,CAAC/E,EAAE,GACtB,KACA,IACA,GACA,0DACA,AAAC,kCAAuC,OAAN3C,MAAM,oBACxC,qBAAG4F,QAAQvB,GAAG,CAACzB,IAAI,EACnB,qBAAGgD,QAAQ8B,QAAQ,CAAC9E,IAAI,EACxB,qBAAGgD,QAAQ6B,QAAQ,CAAC9E,EAAE,EACtB,qBAAGiD,QAAQtB,IAAI,CAAC3B,EAAE,GAClB,KACA,MAGgB,SAAM3B,iBAAQ,CAACC,MAAM,CAACX,MAAMY,IAAI,CAAC,MAAO,CACxDR,OAAQ,YACV,WAFMS,UAAY,cAIZJ,MAAQ,CACZ,QACAf,MACA,YAEAkB,IAAI,CAAC,KAEP,UACE,CACElB,MAAAA,MACAe,MAAAA,MACAI,UAAAA,UACAV,KAAM,QACR,MAEJ,yBAOO,SAAeX,mBACpBkI,SAAuB,wHAGrB,SAAMjI,oCACJiI,UAAUhI,KAAK,CACfgI,UAAU/H,OAAO,CACjB+H,UAAU9H,OAAO,iBAHnB,gBADK,OAMD,SAAMsC,2BAA2BwF,UAAUhI,KAAK,CAAEgI,UAAUvF,QAAQ,UAN1E,SAAO,YAML,mCAAI,qBAER,KAQO,SAAe5C,kBACpBmI,SAAuB,CACvBC,KAAmB,4CAEbC,uBAwBAzE,cAGAE,UAcAD,cAGAE,UAIAuE,uBAUArB,eAGAjD,WAKAkD,gBAMAqB,WAGAC,eACAC,2FA5EAJ,uBAAyB,SAAC3F,KAE9B,GACEA,IAAI9B,IAAI,GAAK,SACb8B,IAAIP,SAAS,EACbuG,OAAOhG,IAAIP,SAAS,EAAEJ,QAAQ,CAAC,OAAS,MACxC,KACkDW,UAAlDA,CAAAA,IAAIP,SAAS,CAAG,AAAC,IAAiD,OAA9CwG,OAAOjG,IAAIP,SAAS,EAAEyG,OAAO,CAAClG,CAAAA,WAAAA,IAAId,KAAK,UAATc,oBAAAA,WAAa,GAAG,IACpE,CAEA,GAAIA,IAAI9B,IAAI,GAAK,UAAY8B,IAAIP,SAAS,GAAK,GAAI,CACjDO,IAAIP,SAAS,CAAG,IAClB,CAGA,GAAIO,IAAI9B,IAAI,GAAK,WAAa8B,IAAIP,SAAS,GAAKC,UAAW,CACzD,GAAIM,IAAIP,SAAS,GAAK,KAAOO,IAAIP,SAAS,GAAK,QAAS,CACtDO,IAAIP,SAAS,CAAG,GAClB,MAAO,GAAIO,IAAIP,SAAS,GAAK,KAAOO,IAAIP,SAAS,GAAK,OAAQ,CAC5DO,IAAIP,SAAS,CAAG,GAClB,CACF,CACA,OAAOO,GACT,EACMkB,cAAgBtD,eAAC,CAACuI,MAAM,CAACV,UAAU/H,OAAO,CAAE,SAACwF,UAAMA,EAAEnE,IAAI,GAAEV,GAAG,CAClEsH,wBAEIvE,UAAYxD,eAAC,CAACuI,MAAM,CAACT,MAAMhI,OAAO,CAAE,SAACwF,UAAMA,EAAEnE,IAAI,GAAEV,GAAG,CAC1DsH,wBAaIxE,cAAgBvD,eAAC,CAACuI,MAAM,CAACV,UAAU9H,OAAO,CAAE,SAACuF,SACjD,CAACA,EAAEhF,IAAI,CAAoD,CAA3D,OAAS,qBAAGgF,EAAExF,OAAO,CAAC0I,IAAI,CAAC,SAACC,GAAIC,WAAQD,GAAKC,GAAK,EAAI,CAAC,MAAK3H,IAAI,CAAC,OAE7D0C,UAAYzD,eAAC,CAACuI,MAAM,CAACT,MAAM/H,OAAO,CAAE,SAACuF,SACzC,CAACA,EAAEhF,IAAI,CAAoD,CAA3D,OAAS,qBAAGgF,EAAExF,OAAO,CAAC0I,IAAI,CAAC,SAACC,GAAIC,WAAQD,GAAKC,GAAK,EAAI,CAAC,MAAK3H,IAAI,CAAC,OAG7DiH,uBAAyB,SAACW,GAE9B,IAAQvF,SAAuBuF,EAAvBvF,SAAUD,SAAawF,EAAbxF,SAClB,OAAO,uCACFwF,IACHxF,SAAUA,WAAa,WAAa,YAAcA,SAClDC,SAAUA,WAAa,WAAa,YAAcA,UAEtD,EAEMuD,eAAiB3G,eAAC,CAACuI,MAAM,CAACV,UAAUvF,QAAQ,CAAE,SAACgD,SACnD,CAACA,EAAEpC,EAAE,CAAe,CAApB,OAAO,qBAAGoC,EAAExF,OAAO,GAAEiB,IAAI,CAAC,OAC1BN,GAAG,CAAC,SAACkI,UAAMX,uBAAuBW,KAC9BjF,WAAa1D,eAAC,CAACuI,MAAM,CAACT,MAAMxF,QAAQ,CAAE,SAACgD,SAC3C,CAACA,EAAEpC,EAAE,CAAe,CAApB,OAAO,qBAAGoC,EAAExF,OAAO,GAAEiB,IAAI,CAAC,OAC1BN,GAAG,CAAC,SAACkI,UAAMX,uBAAuBW,KAG9B/B,gBAAkB5G,eAAC,CAAC+E,YAAY,CACpCvB,UACAF,cACA,SAAClB,YAAQA,IAAIjB,IAAI,GAGb8G,cAGAC,eAAiB1C,GAAAA,sBAAK,EAAClC,cAAeE,WACtC2E,eAAiB3C,GAAAA,sBAAK,EAC1BjC,cAAc9C,GAAG,CAAC,SAACC,cAAUV,eAAC,CAAC4I,IAAI,CAAClI,MAAO,CAAC,SAAS,IACrD+C,eAEE,CAAA,CAACyE,gBAAkB,CAACC,cAAa,EAAjC,cACFF,WAAW7G,IAAI,CACb,SAAMiC,mCACJwE,UAAUhI,KAAK,CACfyD,cACAC,cACAC,UACAC,UACAqE,MAAMxF,QAAQ,UAPlB2F,QAAAA,YACE,0CAYAzC,CAAAA,GAAAA,sBAAK,EAACmB,eAAgBjD,cAAgB,KAAI,EAA1C8B,eACFyC,WAAW7G,IAAI,CACb,SAAMsF,2BACJmB,UAAUhI,KAAK,CACf8G,eACAjD,WACAkD,yBALJqB,SAAAA,YACE,sCASJ,GAAIA,WAAW5D,KAAK,CAAC,SAACwE,kBAAcA,YAAc,OAAO,CACvD,YACF,CAEA,SAAOZ,WAAW7D,MAAM,CAAC,SAACyE,kBAAcA,YAAc,OAAMC,IAAI,MAClE"}
|
|
1
|
+
{"version":3,"sources":["../../src/migration/code-generation.ts"],"sourcesContent":["import _ from \"lodash\";\nimport prettier from \"prettier\";\nimport equal from \"fast-deep-equal\";\nimport {\n GenMigrationCode,\n MigrationColumn,\n MigrationForeign,\n MigrationIndex,\n MigrationSet,\n} from \"../types/types\";\n\n/**\n * 테이블 생성하는 케이스 - 컬럼/인덱스 생성\n */\nasync function generateCreateCode_ColumnAndIndexes(\n table: string,\n columns: MigrationColumn[],\n indexes: MigrationIndex[]\n): Promise<GenMigrationCode> {\n // fulltext index 분리\n const [ngramIndexes, standardIndexes] = _.partition(\n indexes,\n (i) => i.type === \"fulltext\" && i.parser === \"ngram\"\n );\n\n // 컬럼, 인덱스 처리\n const lines: string[] = [\n 'import { Knex } from \"knex\";',\n \"\",\n \"export async function up(knex: Knex): Promise<void> {\",\n `await knex.schema.createTable(\"${table}\", (table) => {`,\n \"// columns\",\n ...genColumnDefinitions(columns),\n \"\",\n \"// indexes\",\n ...standardIndexes.map((index) => genIndexDefinition(index, table)),\n \"});\",\n // ngram은 knex.raw로 처리하므로 createTable 밖에서 실행\n ...ngramIndexes.map((index) => genIndexDefinition(index, table)),\n \"}\",\n \"\",\n \"export async function down(knex: Knex): Promise<void> {\",\n ` return knex.schema.dropTable(\"${table}\");`,\n \"}\",\n ];\n return {\n table,\n type: \"normal\",\n title: `create__${table}`,\n formatted: await prettier.format(lines.join(\"\\n\"), {\n parser: \"typescript\",\n }),\n };\n}\n\n/**\n * MigrationColumn[] 읽어서 컬럼 정의하는 구문 생성\n */\nfunction genColumnDefinitions(columns: MigrationColumn[]): string[] {\n return columns.map((column) => {\n const chains: string[] = [];\n if (column.name === \"id\") {\n return `table.increments().primary();`;\n }\n\n // FIXME: float(M,D) deprecated -> decimal(M,D) 이용하도록 하고, float/double 처리 추가\n if (column.type === \"float\" || column.type === \"decimal\") {\n chains.push(\n `${column.type}('${column.name}', ${column.precision}, ${column.scale})`\n );\n } else {\n // type, length\n let columnType = column.type;\n let extraType: string | undefined;\n if (columnType.includes(\"text\") && columnType !== \"text\") {\n extraType = columnType;\n columnType = \"text\";\n }\n chains.push(\n `${columnType}('${column.name}'${\n column.length ? `, ${column.length}` : \"\"\n }${extraType ? `, '${extraType}'` : \"\"})`\n );\n }\n if (column.unsigned) {\n chains.push(\"unsigned()\");\n }\n\n // nullable\n chains.push(column.nullable ? \"nullable()\" : \"notNullable()\");\n\n // defaultTo\n if (column.defaultTo !== undefined) {\n if (\n typeof column.defaultTo === \"string\" &&\n column.defaultTo.startsWith(`\"`)\n ) {\n chains.push(`defaultTo(${column.defaultTo})`);\n } else {\n chains.push(`defaultTo(knex.raw('${column.defaultTo}'))`);\n }\n }\n\n return `table.${chains.join(\".\")};`;\n });\n}\n\n/**\n * 개별 인덱스 정의 생성\n */\nfunction genIndexDefinition(index: MigrationIndex, table: string) {\n const methodMap = {\n index: \"index\",\n fulltext: \"index\",\n unique: \"unique\",\n };\n\n if (index.type === \"fulltext\" && index.parser === \"ngram\") {\n const indexName = `${table}_${index.columns.join(\"_\")}_index`;\n return `await knex.raw(\\`ALTER TABLE ${table} ADD FULLTEXT INDEX ${indexName} (${index.columns.join(\n \", \"\n )}) WITH PARSER ngram\\`);`;\n }\n\n return `table.${methodMap[index.type]}([${index.columns\n .map((col) => `'${col}'`)\n .join(\",\")}]${index.type === \"fulltext\" ? \", undefined, 'FULLTEXT'\" : \"\"})`;\n}\n\n/**\n * 테이블 생성하는 케이스 - FK 생성\n */\nasync function generateCreateCode_Foreign(\n table: string,\n foreigns: MigrationForeign[]\n): Promise<GenMigrationCode[]> {\n if (foreigns.length === 0) {\n return [];\n }\n\n const { up, down } = genForeignDefinitions(table, foreigns);\n if (up.length === 0 && down.length === 0) {\n console.log(\"fk 가 뭔가 다릅니다\");\n return [];\n }\n\n const lines: string[] = [\n 'import { Knex } from \"knex\";',\n \"\",\n \"export async function up(knex: Knex): Promise<void> {\",\n `return knex.schema.alterTable(\"${table}\", (table) => {`,\n \"// create fk\",\n ...up,\n \"});\",\n \"}\",\n \"\",\n \"export async function down(knex: Knex): Promise<void> {\",\n `return knex.schema.alterTable(\"${table}\", (table) => {`,\n \"// drop fk\",\n ...down,\n \"});\",\n \"}\",\n ];\n\n const foreignKeysString = foreigns\n .map((foreign) => foreign.columns.join(\"_\"))\n .join(\"_\");\n return [\n {\n table,\n type: \"foreign\",\n title: `foreign__${table}__${foreignKeysString}`,\n formatted: await prettier.format(lines.join(\"\\n\"), {\n parser: \"typescript\",\n }),\n },\n ];\n}\n\n/**\n * MigrationForeign[] 읽어서 외부키 constraint 정의하는 구문 생성\n */\nfunction genForeignDefinitions(\n table: string,\n foreigns: MigrationForeign[]\n): { up: string[]; down: string[] } {\n return foreigns.reduce(\n (r, foreign) => {\n const columnsStringQuote = foreign.columns\n .map((col) => `'${col.replace(`${table}.`, \"\")}'`)\n .join(\",\");\n r.up.push(\n `table.foreign('${foreign.columns.join(\",\")}')\n .references('${foreign.to}')\n .onUpdate('${foreign.onUpdate}')\n .onDelete('${foreign.onDelete}')`\n );\n r.down.push(`table.dropForeign([${columnsStringQuote}])`);\n return r;\n },\n {\n up: [] as string[],\n down: [] as string[],\n }\n );\n}\n\n/**\n * 테이블 변경 케이스 - 컬럼/인덱스 변경\n */\nasync function generateAlterCode_ColumnAndIndexes(\n table: string,\n entityColumns: MigrationColumn[],\n entityIndexes: MigrationIndex[],\n dbColumns: MigrationColumn[],\n dbIndexes: MigrationIndex[],\n dbForeigns: MigrationForeign[]\n): Promise<GenMigrationCode[]> {\n /*\n 세부 비교 후 다른점 찾아서 코드 생성\n\n 1. 컬럼갯수 다름: MD에 있으나, DB에 없다면 추가\n 2. 컬럼갯수 다름: MD에 없으나, DB에 있다면 삭제\n 3. 그외 컬럼(컬럼 갯수가 동일하거나, 다른 경우 동일한 컬럼끼리) => alter\n 4. 다른거 다 동일하고 index만 변경되는 경우\n\n ** 컬럼명을 변경하는 경우는 따로 핸들링하지 않음\n => drop/add 형태의 마이그레이션 코드가 생성되는데, 수동으로 rename 코드로 수정하여 처리\n */\n\n // 각 컬럼 이름 기준으로 add, drop, alter 여부 확인\n const alterColumnsTo = getAlterColumnsTo(entityColumns, dbColumns);\n\n // 추출된 컬럼들을 기준으로 각각 라인 생성\n const alterColumnLinesTo = getAlterColumnLinesTo(\n alterColumnsTo,\n entityColumns,\n table,\n dbForeigns\n );\n\n // 인덱스의 add, drop 여부 확인\n const alterIndexesTo = getAlterIndexesTo(entityIndexes, dbIndexes);\n\n // fulltext index 분리\n const [ngramIndexes, standardIndexes] = _.partition(\n alterIndexesTo.add,\n (i) => i.type === \"fulltext\" && i.parser === \"ngram\"\n );\n\n // 인덱스가 삭제되는 경우, 컬럼과 같이 삭제된 케이스에는 drop에서 제외해야함!\n const indexNeedsToDrop = alterIndexesTo.drop.filter(\n (index) =>\n index.columns.every((colName) =>\n alterColumnsTo.drop.map((col) => col.name).includes(colName)\n ) === false\n );\n\n const lines: string[] = [\n 'import { Knex } from \"knex\";',\n \"\",\n \"export async function up(knex: Knex): Promise<void> {\",\n `await knex.schema.alterTable(\"${table}\", (table) => {`,\n // 1. add column\n ...(alterColumnsTo.add.length > 0 ? alterColumnLinesTo.add.up : []),\n // 2. drop column\n ...(alterColumnsTo.drop.length > 0 ? alterColumnLinesTo.drop.up : []),\n // 3. alter column\n ...(alterColumnsTo.alter.length > 0 ? alterColumnLinesTo.alter.up : []),\n // 4. add index\n ...standardIndexes.map((index) => genIndexDefinition(index, table)),\n // 5. drop index\n ...indexNeedsToDrop.map(genIndexDropDefinition),\n \"});\",\n // ngram은 knex.raw로 처리하므로 alterTable 밖에서 실행\n ...ngramIndexes.map((index) => genIndexDefinition(index, table)),\n \"}\",\n \"\",\n \"export async function down(knex: Knex): Promise<void> {\",\n `return knex.schema.alterTable(\"${table}\", (table) => {`,\n ...(alterColumnsTo.add.length > 0 ? alterColumnLinesTo.add.down : []),\n ...(alterColumnsTo.drop.length > 0 ? alterColumnLinesTo.drop.down : []),\n ...(alterColumnsTo.alter.length > 0 ? alterColumnLinesTo.alter.down : []),\n ...alterIndexesTo.add\n .filter(\n (index) =>\n index.columns.every((colName) =>\n alterColumnsTo.add.map((col) => col.name).includes(colName)\n ) === false\n )\n .map(genIndexDropDefinition),\n ...indexNeedsToDrop.map((index) => genIndexDefinition(index, table)),\n \"});\",\n \"}\",\n ];\n\n const formatted = await prettier.format(lines.join(\"\\n\"), {\n parser: \"typescript\",\n });\n\n const title = [\n \"alter\",\n table,\n ...([\"add\", \"drop\", \"alter\"] as const)\n .map((action) => {\n const len = alterColumnsTo[action].length;\n if (len > 0) {\n return action + len;\n }\n return null;\n })\n .filter((part) => part !== null),\n ].join(\"_\");\n\n return [\n {\n table,\n title,\n formatted,\n type: \"normal\",\n },\n ];\n}\n\n/**\n * 각 컬럼 이름 기준으로 add, drop, alter 여부 확인\n */\nfunction getAlterColumnsTo(\n entityColumns: MigrationColumn[],\n dbColumns: MigrationColumn[]\n) {\n const columnsTo = {\n add: [] as MigrationColumn[],\n drop: [] as MigrationColumn[],\n alter: [] as MigrationColumn[],\n };\n\n // 컬럼명 기준 비교\n const extraColumns = {\n db: _.differenceBy(dbColumns, entityColumns, (col) => col.name),\n entity: _.differenceBy(entityColumns, dbColumns, (col) => col.name),\n };\n if (extraColumns.entity.length > 0) {\n columnsTo.add = columnsTo.add.concat(extraColumns.entity);\n }\n if (extraColumns.db.length > 0) {\n columnsTo.drop = columnsTo.drop.concat(extraColumns.db);\n }\n\n // 동일 컬럼명의 세부 필드 비교\n const sameDbColumns = _.intersectionBy(\n dbColumns,\n entityColumns,\n (col) => col.name\n );\n const sameMdColumns = _.intersectionBy(\n entityColumns,\n dbColumns,\n (col) => col.name\n );\n columnsTo.alter = _.differenceWith(sameDbColumns, sameMdColumns, (a, b) =>\n equal(a, b)\n );\n\n return columnsTo;\n}\n\n/**\n * 추출된 컬럼들을 기준으로 각각 라인 생성\n */\nfunction getAlterColumnLinesTo(\n columnsTo: ReturnType<typeof getAlterColumnsTo>,\n entityColumns: MigrationColumn[],\n table: string,\n dbForeigns: MigrationForeign[]\n) {\n let linesTo = {\n add: {\n up: [] as string[],\n down: [] as string[],\n },\n drop: {\n up: [] as string[],\n down: [] as string[],\n },\n alter: {\n up: [] as string[],\n down: [] as string[],\n },\n };\n\n linesTo.add = {\n up: [\"// add\", ...genColumnDefinitions(columnsTo.add)],\n down: [\n \"// rollback - add\",\n `table.dropColumns(${columnsTo.add\n .map((col) => `'${col.name}'`)\n .join(\", \")})`,\n ],\n };\n\n // drop할 컬럼에 걸린 FK 찾기\n const dropColumnNames = columnsTo.drop.map((col) => col.name);\n const fkToDropBeforeColumn = dbForeigns.filter((fk) =>\n fk.columns.some((col) => dropColumnNames.includes(col))\n );\n\n const dropFkLines = fkToDropBeforeColumn.map((fk) => {\n const columnsStringQuote = fk.columns.map((col) => `'${col}'`).join(\",\");\n return `table.dropForeign([${columnsStringQuote}])`;\n });\n\n const restoreFkLines = genForeignDefinitions(table, fkToDropBeforeColumn).up;\n\n linesTo.drop = {\n up: [\n ...(dropFkLines.length > 0\n ? [\"// drop foreign keys on columns to be dropped\", ...dropFkLines]\n : []),\n \"// drop columns\",\n `table.dropColumns(${columnsTo.drop\n .map((col) => `'${col.name}'`)\n .join(\", \")})`,\n ],\n down: [\n \"// rollback - drop columns\",\n ...genColumnDefinitions(columnsTo.drop),\n ...(restoreFkLines.length > 0\n ? [\"// restore foreign keys\", ...restoreFkLines]\n : []),\n ],\n };\n linesTo.alter = columnsTo.alter.reduce(\n (r, dbColumn) => {\n const entityColumn = entityColumns.find(\n (col) => col.name == dbColumn.name\n );\n if (entityColumn === undefined) {\n return r;\n }\n\n // 컬럼 변경사항\n const columnDiffUp = _.difference(\n genColumnDefinitions([entityColumn]),\n genColumnDefinitions([dbColumn])\n );\n const columnDiffDown = _.difference(\n genColumnDefinitions([dbColumn]),\n genColumnDefinitions([entityColumn])\n );\n if (columnDiffUp.length > 0) {\n r.up = [\n ...r.up,\n \"// alter column\",\n ...columnDiffUp.map((l) => l.replace(\";\", \"\") + \".alter();\"),\n ];\n r.down = [\n ...r.down,\n \"// rollback - alter column\",\n ...columnDiffDown.map((l) => l.replace(\";\", \"\") + \".alter();\"),\n ];\n }\n\n return r;\n },\n {\n up: [] as string[],\n down: [] as string[],\n }\n );\n\n return linesTo;\n}\n\n/**\n * 인덱스의 add, drop 여부 확인\n */\nfunction getAlterIndexesTo(\n entityIndexes: MigrationIndex[],\n dbIndexes: MigrationIndex[]\n) {\n // 인덱스 비교\n let indexesTo = {\n add: [] as MigrationIndex[],\n drop: [] as MigrationIndex[],\n };\n const extraIndexes = {\n db: _.differenceBy(dbIndexes, entityIndexes, (col) =>\n [col.type, col.columns.join(\"-\")].join(\"//\")\n ),\n entity: _.differenceBy(entityIndexes, dbIndexes, (col) =>\n [col.type, col.columns.join(\"-\")].join(\"//\")\n ),\n };\n if (extraIndexes.entity.length > 0) {\n indexesTo.add = indexesTo.add.concat(extraIndexes.entity);\n }\n if (extraIndexes.db.length > 0) {\n indexesTo.drop = indexesTo.drop.concat(extraIndexes.db);\n }\n\n return indexesTo;\n}\n\n/**\n * 인덱스 삭제 정의 생성\n */\nfunction genIndexDropDefinition(index: MigrationIndex) {\n const methodMap = {\n index: \"Index\",\n fulltext: \"Index\",\n unique: \"Unique\",\n };\n\n return `table.drop${methodMap[index.type]}([${index.columns\n .map((columnName) => `'${columnName}'`)\n .join(\",\")}])`;\n}\n\n/**\n * 테이블 변경 케이스 - Foreign Key 변경\n */\nasync function generateAlterCode_Foreigns(\n table: string,\n entityForeigns: MigrationForeign[],\n dbForeigns: MigrationForeign[],\n droppingColumns: MigrationColumn[] = []\n): Promise<GenMigrationCode[]> {\n // console.log({ entityForeigns, dbForeigns });\n\n const getKey = (mf: MigrationForeign): string => {\n return [mf.columns.join(\"-\"), mf.to].join(\"///\");\n };\n\n // 삭제될 컬럼명 목록\n const droppingColumnNames = droppingColumns.map((col) => col.name);\n\n const fkTo = entityForeigns.reduce(\n (result, entityF) => {\n const matchingDbF = dbForeigns.find(\n (dbF) => getKey(entityF) === getKey(dbF)\n );\n if (!matchingDbF) {\n result.add.push(entityF);\n return result;\n }\n\n if (equal(entityF, matchingDbF) === false) {\n result.alterSrc.push(matchingDbF);\n result.alterDst.push(entityF);\n return result;\n }\n return result;\n },\n {\n add: [] as MigrationForeign[],\n drop: [] as MigrationForeign[],\n alterSrc: [] as MigrationForeign[],\n alterDst: [] as MigrationForeign[],\n }\n );\n\n // dbForeigns에는 있지만 entityForeigns에는 없는 경우 (삭제된 FK)\n // 단, 삭제될 컬럼의 FK는 제외 (generateAlterCode_ColumnAndIndexes에서 처리)\n dbForeigns.forEach((dbF) => {\n const matchingEntityF = entityForeigns.find(\n (entityF) => getKey(entityF) === getKey(dbF)\n );\n if (!matchingEntityF) {\n // 이 FK의 컬럼이 삭제될 컬럼 목록에 있는지 확인\n const isColumnDropping = dbF.columns.some((col) =>\n droppingColumnNames.includes(col)\n );\n // 컬럼이 삭제되지 않는 경우에만 FK drop 목록에 추가\n if (!isColumnDropping) {\n fkTo.drop.push(dbF);\n }\n }\n });\n\n const linesTo = {\n add: genForeignDefinitions(table, fkTo.add),\n drop: genForeignDefinitions(table, fkTo.drop),\n alterSrc: genForeignDefinitions(table, fkTo.alterSrc),\n alterDst: genForeignDefinitions(table, fkTo.alterDst),\n };\n\n // drop fk columns인 경우(생성될 코드 없는 경우) 패스\n const hasLines = Object.values(linesTo).some(\n (l) => l.up.length > 0 || l.down.length > 0\n );\n if (!hasLines) {\n return [];\n }\n\n const lines: string[] = [\n 'import { Knex } from \"knex\";',\n \"\",\n \"export async function up(knex: Knex): Promise<void> {\",\n `return knex.schema.alterTable(\"${table}\", (table) => {`,\n ...linesTo.drop.down,\n ...linesTo.add.up,\n ...linesTo.alterSrc.down,\n ...linesTo.alterDst.up,\n \"})\",\n \"}\",\n \"\",\n \"export async function down(knex: Knex): Promise<void> {\",\n `return knex.schema.alterTable(\"${table}\", (table) => {`,\n ...linesTo.add.down,\n ...linesTo.alterDst.down,\n ...linesTo.alterSrc.up,\n ...linesTo.drop.up,\n \"})\",\n \"}\",\n ];\n\n const formatted = await prettier.format(lines.join(\"\\n\"), {\n parser: \"typescript\",\n });\n\n const title = [\n \"alter\",\n table,\n \"foreigns\",\n // TODO 바뀌는 부분\n ].join(\"_\");\n\n return [\n {\n table,\n title,\n formatted,\n type: \"normal\",\n },\n ];\n}\n\n/**\n * 주어진 EntitySet을 기반으로 테이블 CREATE 마이그레이션 코드를 생성합니다.\n * @param entitySet\n * @returns CREATE 마이그레이션 코드\n */\nexport async function generateCreateCode(\n entitySet: MigrationSet\n): Promise<GenMigrationCode[]> {\n return [\n await generateCreateCode_ColumnAndIndexes(\n entitySet.table,\n entitySet.columns,\n entitySet.indexes\n ),\n ...(await generateCreateCode_Foreign(entitySet.table, entitySet.foreigns)),\n ];\n}\n\n/**\n * 주어진 entitySet을 목표로, dbSet을 현 상황으로 하여 테이블 ALTER 마이그레이션 코드를 생성합니다.\n * @param entitySet 현 상황의 MigrationSet\n * @param dbSet 목표 상황의 MigrationSet\n * @returns ALTER 마이그레이션 코드\n */\nexport async function generateAlterCode(\n entitySet: MigrationSet,\n dbSet: MigrationSet\n): Promise<GenMigrationCode[]> {\n const replaceColumnDefaultTo = (col: MigrationColumn) => {\n // float인 경우 기본값을 0으로 지정하는 경우 \"0.00\"으로 변환되는 케이스 대응\n if (\n col.type === \"float\" &&\n col.defaultTo &&\n String(col.defaultTo).includes('\"') === false\n ) {\n col.defaultTo = `\"${Number(col.defaultTo).toFixed(col.scale ?? 2)}\"`;\n }\n // string인 경우 기본값이 빈 스트링인 경우 대응\n if (col.type === \"string\" && col.defaultTo === \"\") {\n col.defaultTo = '\"\"';\n }\n // boolean인 경우 기본값 정규화 (MySQL에서는 TINYINT(1)로 저장되므로 0 또는 1로 정규화)\n // TODO: db.ts에 typeCase 설정 확인하여 처리하도록 수정 필요\n if (col.type === \"boolean\" && col.defaultTo !== undefined) {\n if (col.defaultTo === \"0\" || col.defaultTo.toLowerCase() === \"false\") {\n col.defaultTo = \"0\";\n } else if (col.defaultTo === \"1\" || col.defaultTo.toLowerCase() === \"true\") {\n col.defaultTo = \"1\";\n }\n }\n return col;\n };\n const entityColumns = _.sortBy(entitySet.columns, (a) => a.name).map(\n replaceColumnDefaultTo\n );\n const dbColumns = _.sortBy(dbSet.columns, (a) => a.name).map(\n replaceColumnDefaultTo\n );\n\n /* 디버깅용 코드, 특정 컬럼에서 불일치 발생할 때 확인\n const entityColumn = entitySet.columns.find(\n (col) => col.name === \"price_krw\"\n );\n const dbColumn = dbSet.columns.find(\n (col) => col.name === \"price_krw\"\n );\n console.debug({ entityColumn, dbColumn });\n */\n\n const entityIndexes = _.sortBy(entitySet.indexes, (a) =>\n [a.type, ...a.columns.sort((c1, c2) => (c1 > c2 ? 1 : -1))].join(\"-\")\n );\n const dbIndexes = _.sortBy(dbSet.indexes, (a) =>\n [a.type, ...a.columns.sort((c1, c2) => (c1 > c2 ? 1 : -1))].join(\"-\")\n );\n\n const replaceNoActionOnMySQL = (f: MigrationForeign) => {\n // MySQL에서 RESTRICT와 NO ACTION은 동일함\n const { onDelete, onUpdate } = f;\n return {\n ...f,\n onUpdate: onUpdate === \"RESTRICT\" ? \"NO ACTION\" : onUpdate,\n onDelete: onDelete === \"RESTRICT\" ? \"NO ACTION\" : onDelete,\n };\n };\n\n const entityForeigns = _.sortBy(entitySet.foreigns, (a) =>\n [a.to, ...a.columns].join(\"-\")\n ).map((f) => replaceNoActionOnMySQL(f));\n const dbForeigns = _.sortBy(dbSet.foreigns, (a) =>\n [a.to, ...a.columns].join(\"-\")\n ).map((f) => replaceNoActionOnMySQL(f));\n\n // 삭제될 컬럼 목록 계산\n const droppingColumns = _.differenceBy(\n dbColumns,\n entityColumns,\n (col) => col.name\n );\n\n const alterCodes: (GenMigrationCode | GenMigrationCode[] | null)[] = [];\n\n // 1. columnsAndIndexes 처리\n const isEqualColumns = equal(entityColumns, dbColumns);\n const isEqualIndexes = equal(\n entityIndexes.map((index) => _.omit(index, [\"parser\"])),\n dbIndexes\n );\n if (!isEqualColumns || !isEqualIndexes) {\n alterCodes.push(\n await generateAlterCode_ColumnAndIndexes(\n entitySet.table,\n entityColumns,\n entityIndexes,\n dbColumns,\n dbIndexes,\n dbSet.foreigns\n )\n );\n }\n\n // 2. foreigns 처리 (삭제될 컬럼 정보 전달)\n if (equal(entityForeigns, dbForeigns) === false) {\n alterCodes.push(\n await generateAlterCode_Foreigns(\n entitySet.table,\n entityForeigns,\n dbForeigns,\n droppingColumns\n )\n );\n }\n\n if (alterCodes.every((alterCode) => alterCode === null)) {\n return [];\n }\n\n return alterCodes.filter((alterCode) => alterCode !== null).flat();\n}\n"],"names":["generateAlterCode","generateCreateCode","generateCreateCode_ColumnAndIndexes","table","columns","indexes","_","ngramIndexes","standardIndexes","lines","partition","i","type","parser","genColumnDefinitions","map","index","genIndexDefinition","title","prettier","format","join","formatted","column","chains","name","push","precision","scale","columnType","extraType","includes","length","unsigned","nullable","defaultTo","undefined","startsWith","methodMap","fulltext","unique","indexName","col","generateCreateCode_Foreign","foreigns","genForeignDefinitions","up","down","foreignKeysString","console","log","foreign","reduce","r","columnsStringQuote","replace","to","onUpdate","onDelete","generateAlterCode_ColumnAndIndexes","entityColumns","entityIndexes","dbColumns","dbIndexes","dbForeigns","alterColumnsTo","alterColumnLinesTo","alterIndexesTo","indexNeedsToDrop","getAlterColumnsTo","getAlterColumnLinesTo","getAlterIndexesTo","add","drop","filter","every","colName","alter","genIndexDropDefinition","action","len","part","columnsTo","extraColumns","db","differenceBy","entity","concat","sameDbColumns","intersectionBy","sameMdColumns","differenceWith","a","b","equal","linesTo","dropColumnNames","fkToDropBeforeColumn","fk","some","dropFkLines","restoreFkLines","dbColumn","entityColumn","find","columnDiffUp","difference","columnDiffDown","l","indexesTo","extraIndexes","columnName","generateAlterCode_Foreigns","entityForeigns","droppingColumns","getKey","droppingColumnNames","fkTo","hasLines","mf","result","entityF","matchingDbF","dbF","alterSrc","alterDst","forEach","matchingEntityF","isColumnDropping","Object","values","entitySet","dbSet","replaceColumnDefaultTo","replaceNoActionOnMySQL","alterCodes","isEqualColumns","isEqualIndexes","String","Number","toFixed","toLowerCase","sortBy","sort","c1","c2","f","omit","alterCode","flat"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SonamuDBConfig } from "../database/db";
|
|
1
2
|
import { GenMigrationCode } from "../types/types";
|
|
2
3
|
export type MigrationCode = {
|
|
3
4
|
name: string;
|
|
@@ -8,7 +9,7 @@ export type MigrationStatus = {
|
|
|
8
9
|
codes: MigrationCode[];
|
|
9
10
|
conns: {
|
|
10
11
|
name: string;
|
|
11
|
-
connKey:
|
|
12
|
+
connKey: keyof SonamuDBConfig;
|
|
12
13
|
connString: ConnString;
|
|
13
14
|
currentVersion: string;
|
|
14
15
|
status: string | number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/migration/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AACF,MAAM,MAAM,UAAU,GACpB,GAAG,QAAQ,MAAM,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;AAC1D,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/migration/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AACF,MAAM,MAAM,UAAU,GACpB,GAAG,QAAQ,MAAM,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;AAC1D,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,cAAc,CAAC;QAC9B,UAAU,EAAE,UAAU,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;QACxB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,EAAE,CAAC;IACJ,aAAa,EAAE,gBAAgB,EAAE,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AACF,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AACF,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC"}
|
package/dist/syncer/syncer.d.ts
CHANGED
|
@@ -72,6 +72,7 @@ export declare class Syncer {
|
|
|
72
72
|
path: string;
|
|
73
73
|
options: ApiDecoratorOptions;
|
|
74
74
|
streamOptions?: import("../api/decorators").StreamDecoratorOptions;
|
|
75
|
+
uploadOptions?: import("../api/decorators").UploadDecoratorOptions;
|
|
75
76
|
}[]>;
|
|
76
77
|
resolveTypeNode(typeNode: ts.TypeNode): ApiParamType;
|
|
77
78
|
resolveParamDec: (paramDec: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncer.d.ts","sourceRoot":"","sources":["../../src/syncer/syncer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"syncer.d.ts","sourceRoot":"","sources":["../../src/syncer/syncer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generated_http.template.d.ts","sourceRoot":"","sources":["../../src/templates/generated_http.template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAI3C,qBAAa,wBAAyB,SAAQ,QAAQ;;IAKpD,gBAAgB;;;;IASV,MAAM,CAAC,EAAE,EAAE,eAAe,CAAC,gBAAgB,CAAC;;;;;;IAsDlD,mBAAmB,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"generated_http.template.d.ts","sourceRoot":"","sources":["../../src/templates/generated_http.template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAI3C,qBAAa,wBAAyB,SAAQ,QAAQ;;IAKpD,gBAAgB;;;;IASV,MAAM,CAAC,EAAE,EAAE,eAAe,CAAC,gBAAgB,CAAC;;;;;;IAsDlD,mBAAmB,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAoFvE,gBAAgB,CACd,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;KAAE,GACnD;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE;CAa9B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Template__generated_http",{enumerable:true,get:function(){return Template__generated_http}});var _qs=/*#__PURE__*/_interop_require_default(require("qs"));var _zod=require("zod");var _codeconverters=require("../api/code-converters");var _basetemplate=require("./base-template");var _prettier=/*#__PURE__*/_interop_require_default(require("prettier"));var _sonamu=require("../api/sonamu");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 _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 _instanceof(left,right){if(right!=null&&typeof Symbol!=="undefined"&&right[Symbol.hasInstance]){return!!right[Symbol.hasInstance](left)}else{return left instanceof right}}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 _object_destructuring_empty(o){if(o===null||o===void 0)throw new TypeError("Cannot destructure "+o);return o}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 _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 _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}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 Template__generated_http=/*#__PURE__*/function(Template){"use strict";_inherits(Template__generated_http,Template);function Template__generated_http(){_class_call_check(this,Template__generated_http);return _call_super(this,Template__generated_http,["generated_http"])}_create_class(Template__generated_http,[{key:"getTargetAndPath",value:function getTargetAndPath(){var dir=_sonamu.Sonamu.config.api.dir;return{target:"".concat(dir,"/src/application"),path:"sonamu.generated.http"}}},{key:"render",value:function render(_0){return _async_to_generator(function(param){var _this,ref,_Sonamu_syncer,types,apis,_Sonamu_config,prefix,lines;return _ts_generator(this,function(_state){switch(_state.label){case 0:_this=this;ref=_object_destructuring_empty(param);_Sonamu_syncer=_sonamu.Sonamu.syncer,types=_Sonamu_syncer.types,apis=_Sonamu_syncer.apis,_Sonamu_config=_sonamu.Sonamu.config,prefix=_Sonamu_config.route.prefix;return[4,Promise.all(apis.map(function(api){return _async_to_generator(function(){var reqObject,dataLines,_api_options_httpMethod,_api_options_contentType;return _ts_generator(this,function(_state){switch(_state.label){case 0:reqObject=this.resolveApiParams(api,types);return[4,function(){return _async_to_generator(function(){var _api_options_httpMethod,_tmp,_tmp1;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(!(((_api_options_httpMethod=api.options.httpMethod)!==null&&_api_options_httpMethod!==void 0?_api_options_httpMethod:"GET")==="GET"))return[3,1];return[2,{querystring:[_qs.default.stringify(reqObject,{encode:false}).split("&").join("\n &")],body:[]}];case 1:_tmp={querystring:[]};_tmp1=[""];return[4,_prettier.default.format(JSON.stringify(reqObject),{parser:"json"})];case 2:return[2,(_tmp.body=_tmp1.concat([_state.sent()]),_tmp)];case 3:return[2]}})})()}()];case 1:dataLines=_state.sent();return[2,[["".concat((_api_options_httpMethod=api.options.httpMethod)!==null&&_api_options_httpMethod!==void 0?_api_options_httpMethod:"GET"," {{baseUrl}}").concat(prefix).concat(api.path)].concat(_to_consumable_array(dataLines.querystring)).join("\n ?"),"Content-Type: ".concat((_api_options_contentType=api.options.contentType)!==null&&_api_options_contentType!==void 0?_api_options_contentType:"application/json")].concat(_to_consumable_array(dataLines.body)).join("\n")]}})}).call(_this)}))];case 1:lines=_state.sent();return[2,_object_spread_props(_object_spread({},this.getTargetAndPath()),{body:lines.join("\n\n###\n\n"),importKeys:[]})]}})}).apply(this,arguments)}},{key:"zodTypeToReqDefault",value:function zodTypeToReqDefault(zodType,name){var _this=this;if(_instanceof(zodType,_zod.z.ZodObject)){return Object.fromEntries(Object.keys(zodType.shape).map(function(key){return[key,_this.zodTypeToReqDefault(zodType.shape[key],key)]}))}else if(_instanceof(zodType,_zod.z.ZodArray)){return[this.zodTypeToReqDefault(zodType.element,name)]}else if(_instanceof(zodType,_zod.z.ZodString)){if(name.endsWith("_at")||name.endsWith("_date")||name==="range"){return"2000-01-01"}else{return name.toUpperCase()}}else if(_instanceof(zodType,_zod.z.ZodNumber)){if(name==="num"){return 24}var _zodType_minValue;var minValue=(_zodType_minValue=zodType.minValue)!==null&&_zodType_minValue!==void 0?_zodType_minValue:0;return minValue>Number.MIN_SAFE_INTEGER?minValue:0}else if(_instanceof(zodType,_zod.z.ZodBoolean)){return false}else if(_instanceof(zodType,_zod.z.ZodEnum)){return zodType.options[0]}else if(_instanceof(zodType,_zod.z.ZodOptional)){return this.zodTypeToReqDefault(zodType.def.innerType,name)}else if(_instanceof(zodType,_zod.z.ZodNullable)){return null}else if(_instanceof(zodType,_zod.z.ZodUnion)){return this.zodTypeToReqDefault(zodType.def.options[0],name)}else if(_instanceof(zodType,_zod.z.ZodUnknown)){return"unknown"}else if(_instanceof(zodType,_zod.z.ZodTuple)){return zodType.def.items.map(function(item){return _this.zodTypeToReqDefault(item,name)})}else if(_instanceof(zodType,_zod.z.ZodDate)){return"2000-01-01"}else if(_instanceof(zodType,_zod.z.ZodLiteral)){return zodType.value}else if(_instanceof(zodType,_zod.z.ZodRecord)||_instanceof(zodType,_zod.z.ZodMap)){var kvDef=zodType.def;var key=this.zodTypeToReqDefault(kvDef.keyType,name);var value=this.zodTypeToReqDefault(kvDef.valueType,name);return _define_property({},key,value)}else if(_instanceof(zodType,_zod.z.ZodSet)){return[this.zodTypeToReqDefault(zodType.def.valueType,name)]}else if(_instanceof(zodType,_zod.z.ZodIntersection)){return this.zodTypeToReqDefault(zodType.def.right,name)}else if(_instanceof(zodType,_zod.z.ZodDefault)){return this.zodTypeToReqDefault(zodType.def.innerType,name)}else{return"unknown-".concat(zodType.type)}}},{key:"resolveApiParams",value:function resolveApiParams(api,references){var reqType=(0,_codeconverters.getZodObjectFromApi)(api,references);return this.zodTypeToReqDefault(reqType,"unknownName")}}]);return Template__generated_http}(_basetemplate.Template);
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Template__generated_http",{enumerable:true,get:function(){return Template__generated_http}});var _qs=/*#__PURE__*/_interop_require_default(require("qs"));var _zod=require("zod");var _codeconverters=require("../api/code-converters");var _basetemplate=require("./base-template");var _prettier=/*#__PURE__*/_interop_require_default(require("prettier"));var _sonamu=require("../api/sonamu");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 _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 _instanceof(left,right){if(right!=null&&typeof Symbol!=="undefined"&&right[Symbol.hasInstance]){return!!right[Symbol.hasInstance](left)}else{return left instanceof right}}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 _object_destructuring_empty(o){if(o===null||o===void 0)throw new TypeError("Cannot destructure "+o);return o}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 _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 _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}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 Template__generated_http=/*#__PURE__*/function(Template){"use strict";_inherits(Template__generated_http,Template);function Template__generated_http(){_class_call_check(this,Template__generated_http);return _call_super(this,Template__generated_http,["generated_http"])}_create_class(Template__generated_http,[{key:"getTargetAndPath",value:function getTargetAndPath(){var dir=_sonamu.Sonamu.config.api.dir;return{target:"".concat(dir,"/src/application"),path:"sonamu.generated.http"}}},{key:"render",value:function render(_0){return _async_to_generator(function(param){var _this,ref,_Sonamu_syncer,types,apis,_Sonamu_config,prefix,lines;return _ts_generator(this,function(_state){switch(_state.label){case 0:_this=this;ref=_object_destructuring_empty(param);_Sonamu_syncer=_sonamu.Sonamu.syncer,types=_Sonamu_syncer.types,apis=_Sonamu_syncer.apis,_Sonamu_config=_sonamu.Sonamu.config,prefix=_Sonamu_config.route.prefix;return[4,Promise.all(apis.map(function(api){return _async_to_generator(function(){var reqObject,dataLines,_api_options_httpMethod,_api_options_contentType;return _ts_generator(this,function(_state){switch(_state.label){case 0:reqObject=this.resolveApiParams(api,types);return[4,function(){return _async_to_generator(function(){var _api_options_httpMethod,_tmp,_tmp1;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(!(((_api_options_httpMethod=api.options.httpMethod)!==null&&_api_options_httpMethod!==void 0?_api_options_httpMethod:"GET")==="GET"))return[3,1];return[2,{querystring:[_qs.default.stringify(reqObject,{encode:false}).split("&").join("\n &")],body:[]}];case 1:_tmp={querystring:[]};_tmp1=[""];return[4,_prettier.default.format(JSON.stringify(reqObject),{parser:"json"})];case 2:return[2,(_tmp.body=_tmp1.concat([_state.sent()]),_tmp)];case 3:return[2]}})})()}()];case 1:dataLines=_state.sent();return[2,[["".concat((_api_options_httpMethod=api.options.httpMethod)!==null&&_api_options_httpMethod!==void 0?_api_options_httpMethod:"GET"," {{baseUrl}}").concat(prefix).concat(api.path)].concat(_to_consumable_array(dataLines.querystring)).join("\n ?"),"Content-Type: ".concat((_api_options_contentType=api.options.contentType)!==null&&_api_options_contentType!==void 0?_api_options_contentType:"application/json")].concat(_to_consumable_array(dataLines.body)).join("\n")]}})}).call(_this)}))];case 1:lines=_state.sent();return[2,_object_spread_props(_object_spread({},this.getTargetAndPath()),{body:lines.join("\n\n###\n\n"),importKeys:[]})]}})}).apply(this,arguments)}},{key:"zodTypeToReqDefault",value:function zodTypeToReqDefault(zodType,name){var _this=this;if(_instanceof(zodType,_zod.z.ZodObject)){return Object.fromEntries(Object.keys(zodType.shape).map(function(key){return[key,_this.zodTypeToReqDefault(zodType.shape[key],key)]}))}else if(_instanceof(zodType,_zod.z.ZodArray)){return[this.zodTypeToReqDefault(zodType.element,name)]}else if(_instanceof(zodType,_zod.z.ZodString)){if(name.endsWith("_at")||name.endsWith("_date")||name==="range"){return"2000-01-01"}else{return name.toUpperCase()}}else if(_instanceof(zodType,_zod.z.ZodNumber)){if(name==="num"){return 24}var _zodType_minValue;var minValue=(_zodType_minValue=zodType.minValue)!==null&&_zodType_minValue!==void 0?_zodType_minValue:0;return minValue>Number.MIN_SAFE_INTEGER?minValue:0}else if(_instanceof(zodType,_zod.z.ZodBoolean)){return false}else if(_instanceof(zodType,_zod.z.ZodEnum)){return zodType.options[0]}else if(_instanceof(zodType,_zod.z.ZodOptional)){return this.zodTypeToReqDefault(zodType.def.innerType,name)}else if(_instanceof(zodType,_zod.z.ZodNullable)){return null}else if(_instanceof(zodType,_zod.z.ZodUnion)){return this.zodTypeToReqDefault(zodType.def.options[0],name)}else if(_instanceof(zodType,_zod.z.ZodUnknown)){return"unknown"}else if(_instanceof(zodType,_zod.z.ZodTuple)){return zodType.def.items.map(function(item){return _this.zodTypeToReqDefault(item,name)})}else if(_instanceof(zodType,_zod.z.ZodDate)){return"2000-01-01"}else if(_instanceof(zodType,_zod.z.ZodLiteral)){return zodType.value}else if(_instanceof(zodType,_zod.z.ZodRecord)||_instanceof(zodType,_zod.z.ZodMap)){var kvDef=zodType.def;var key=this.zodTypeToReqDefault(kvDef.keyType,name);var value=this.zodTypeToReqDefault(kvDef.valueType,name);return _define_property({},key,value)}else if(_instanceof(zodType,_zod.z.ZodSet)){return[this.zodTypeToReqDefault(zodType.def.valueType,name)]}else if(_instanceof(zodType,_zod.z.ZodIntersection)){return this.zodTypeToReqDefault(zodType.def.right,name)}else if(_instanceof(zodType,_zod.z.ZodDefault)){return this.zodTypeToReqDefault(zodType.def.innerType,name)}else{return"unknown-".concat(zodType.type)}}},{key:"resolveApiParams",value:function resolveApiParams(api,references){var reqType=(0,_codeconverters.getZodObjectFromApi)(api,references);try{var def=this.zodTypeToReqDefault(reqType,"unknownName");return def}catch(error){throw new Error("Invalid zod type detected on ".concat(api.modelName,":").concat(api.methodName))}}}]);return Template__generated_http}(_basetemplate.Template);
|
|
2
2
|
//# sourceMappingURL=generated_http.template.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/templates/generated_http.template.ts"],"sourcesContent":["import qs from \"qs\";\nimport { z } from \"zod\";\nimport { TemplateOptions } from \"../types/types\";\nimport { getZodObjectFromApi } from \"../api/code-converters\";\nimport { ExtendedApi } from \"../api/decorators\";\nimport { Template } from \"./base-template\";\nimport prettier from \"prettier\";\nimport { Sonamu } from \"../api/sonamu\";\n\nexport class Template__generated_http extends Template {\n constructor() {\n super(\"generated_http\");\n }\n\n getTargetAndPath() {\n const { dir } = Sonamu.config.api;\n\n return {\n target: `${dir}/src/application`,\n path: `sonamu.generated.http`,\n };\n }\n\n async render({}: TemplateOptions[\"generated_http\"]) {\n const {\n syncer: { types, apis },\n config: {\n route: { prefix },\n },\n } = Sonamu;\n\n const lines = await Promise.all(\n apis.map(async (api) => {\n const reqObject = this.resolveApiParams(api, types);\n\n const dataLines = await (async () => {\n if ((api.options.httpMethod ?? \"GET\") === \"GET\") {\n return {\n querystring: [\n qs\n .stringify(reqObject, { encode: false })\n .split(\"&\")\n .join(\"\\n\\t&\"),\n ],\n body: [],\n };\n } else {\n return {\n querystring: [],\n body: [\n \"\",\n await prettier.format(JSON.stringify(reqObject), {\n parser: \"json\",\n }),\n ],\n };\n }\n })();\n\n return [\n [\n `${api.options.httpMethod ?? \"GET\"} {{baseUrl}}${prefix}${api.path}`,\n ...dataLines.querystring,\n ].join(\"\\n\\t?\"),\n `Content-Type: ${api.options.contentType ?? \"application/json\"}`,\n ...dataLines.body,\n ].join(\"\\n\");\n })\n );\n\n return {\n ...this.getTargetAndPath(),\n body: lines.join(\"\\n\\n###\\n\\n\"),\n importKeys: [],\n };\n }\n\n zodTypeToReqDefault(zodType: z.ZodType<unknown>, name: string): unknown {\n if (zodType instanceof z.ZodObject) {\n return Object.fromEntries(\n Object.keys(zodType.shape).map((key) => [\n key,\n this.zodTypeToReqDefault(zodType.shape[key], key),\n ])\n );\n } else if (zodType instanceof z.ZodArray) {\n return [this.zodTypeToReqDefault((zodType as z.ZodArray<z.ZodType>).element, name)];\n } else if (zodType instanceof z.ZodString) {\n if (name.endsWith(\"_at\") || name.endsWith(\"_date\") || name === \"range\") {\n return \"2000-01-01\";\n } else {\n return name.toUpperCase();\n }\n } else if (zodType instanceof z.ZodNumber) {\n if (name === \"num\") {\n return 24;\n }\n\n const minValue = zodType.minValue ?? 0;\n return minValue > Number.MIN_SAFE_INTEGER ? minValue : 0;\n } else if (zodType instanceof z.ZodBoolean) {\n return false;\n } else if (zodType instanceof z.ZodEnum) {\n return zodType.options[0];\n } else if (zodType instanceof z.ZodOptional) {\n return this.zodTypeToReqDefault((zodType as z.ZodOptional<z.ZodType>).def.innerType, name);\n } else if (zodType instanceof z.ZodNullable) {\n return null;\n } else if (zodType instanceof z.ZodUnion) {\n return this.zodTypeToReqDefault((zodType as z.ZodUnion<z.ZodType[]>).def.options[0], name);\n } else if (zodType instanceof z.ZodUnknown) {\n return \"unknown\";\n } else if (zodType instanceof z.ZodTuple) {\n return zodType.def.items.map((item: any) =>\n this.zodTypeToReqDefault(item, name)\n );\n } else if (zodType instanceof z.ZodDate) {\n return \"2000-01-01\";\n } else if (zodType instanceof z.ZodLiteral) {\n return zodType.value;\n } else if (zodType instanceof z.ZodRecord || zodType instanceof z.ZodMap) {\n const kvDef = (zodType as z.ZodRecord<any, z.ZodType> | z.ZodMap<z.ZodType, z.ZodType>).def\n const key = this.zodTypeToReqDefault(kvDef.keyType, name) as any;\n const value = this.zodTypeToReqDefault(kvDef.valueType, name);\n return { [key]: value };\n } else if (zodType instanceof z.ZodSet) {\n return [this.zodTypeToReqDefault((zodType as z.ZodSet<z.ZodType>).def.valueType, name)];\n } else if (zodType instanceof z.ZodIntersection) {\n return this.zodTypeToReqDefault((zodType as z.ZodIntersection<z.ZodType, z.ZodType>).def.right, name);\n } else if (zodType instanceof z.ZodDefault) {\n return this.zodTypeToReqDefault((zodType as z.ZodDefault<z.ZodType>).def.innerType, name);\n } else {\n // console.log(zodType);\n return `unknown-${zodType.type}`;\n }\n }\n\n resolveApiParams(\n api: ExtendedApi,\n references: { [typeName: string]: z.ZodObject<any> }\n ): { [key: string]: unknown } {\n const reqType = getZodObjectFromApi(api, references);\n return this.zodTypeToReqDefault(reqType, \"unknownName\") as {\n [key: string]: unknown;\n };\n }\n}\n"],"names":["Template__generated_http","getTargetAndPath","dir","Sonamu","config","api","target","path","render","types","apis","prefix","lines","syncer","route","Promise","all","map","reqObject","dataLines","resolveApiParams","options","httpMethod","querystring","qs","stringify","encode","split","join","body","prettier","format","JSON","parser","contentType","importKeys","zodTypeToReqDefault","zodType","name","z","ZodObject","Object","fromEntries","keys","shape","key","ZodArray","element","ZodString","endsWith","toUpperCase","ZodNumber","minValue","Number","MIN_SAFE_INTEGER","ZodBoolean","ZodEnum","ZodOptional","def","innerType","ZodNullable","ZodUnion","ZodUnknown","ZodTuple","items","item","ZodDate","ZodLiteral","value","ZodRecord","ZodMap","kvDef","keyType","valueType","ZodSet","ZodIntersection","right","ZodDefault","type","references","reqType","getZodObjectFromApi","Template"],"mappings":"oGASaA,kEAAAA,kFATE,wBACG,mCAEkB,oDAEX,+EACJ,iCACE,krNAEhB,IAAA,AAAMA,sCAAN,0CAAMA,4CAAAA,kDAAAA,0BAET,OAAA,iBAFSA,0BAEH,iCAFGA,2BAKXC,IAAAA,yBAAAA,SAAAA,mBACE,IAAM,AAAEC,IAAQC,cAAM,CAACC,MAAM,CAACC,GAAG,CAAzBH,IAER,MAAO,CACLI,OAAQ,AAAC,GAAM,OAAJJ,IAAI,oBACfK,KAAM,uBACR,CACF,IAEMC,IAAAA,eAAN,SAAMA,+CAAO,KAAqC,YAArC,mBAECC,MAAOC,oBAENC,OAIPC,wFARK,gCAAA,sBAMPT,cAAM,CAJRU,OAAUJ,qBAAAA,MAAOC,oBAAAA,oBAIfP,cAAM,CAHRC,OACWO,sBAATG,MAASH,OAIC,SAAMI,QAAQC,GAAG,CAC7BN,KAAKO,GAAG,CAAC,SAAOZ,+CACRa,UAEAC,UA0BCd,wBAGYA,gGA/Bba,UAAY,IAAI,CAACE,gBAAgB,CAACf,IAAKI,OAE3B,SAAM,AAAC,qDAClBJ,8GAAD,CAAA,AAACA,CAAAA,CAAAA,wBAAAA,IAAIgB,OAAO,CAACC,UAAU,UAAtBjB,iCAAAA,wBAA0B,KAAI,IAAO,KAAI,EAA1C,YACF,SAAO,CACLkB,WAAW,EACTC,WAAE,CACCC,SAAS,CAACP,UAAW,CAAEQ,OAAQ,KAAM,GACrCC,KAAK,CAAC,KACNC,IAAI,CAAC,SAEVC,IAAI,GACN,gBAGEN,WAAW,YAET,IACA,SAAMO,iBAAQ,CAACC,MAAM,CAACC,KAAKP,SAAS,CAACP,WAAY,CAC/Ce,OAAQ,MACV,WANJ,eAEEJ,mBAEE,0CAMR,gBAtBMV,UAAY,cAwBlB,SAAO,CACL,CACE,AAAC,GAAgDR,OAA9CN,CAAAA,wBAAAA,IAAIgB,OAAO,CAACC,UAAU,UAAtBjB,iCAAAA,wBAA0B,MAAM,gBAAuBA,OAATM,QAAkB,OAATN,IAAIE,IAAI,GADpE,OAEE,qBAAGY,UAAUI,WAAW,GACxBK,IAAI,CAAC,QACP,AAAC,iBAA8D,OAA9CvB,CAAAA,yBAAAA,IAAIgB,OAAO,CAACa,WAAW,UAAvB7B,kCAAAA,yBAA2B,qBALvC,OAML,qBAAGc,UAAUU,IAAI,GACjBD,IAAI,CAAC,SACT,0BApCIhB,MAAQ,cAuCd,SAAO,uCACF,IAAI,CAACX,gBAAgB,KACxB4B,KAAMjB,MAAMgB,IAAI,CAAC,eACjBO,UAAU,SAEd,4BAEAC,IAAAA,4BAAAA,SAAAA,oBAAoBC,OAA2B,CAAEC,IAAY,iBAC3D,GAAID,AAAO,YAAPA,QAAmBE,MAAC,CAACC,SAAS,EAAE,CAClC,OAAOC,OAAOC,WAAW,CACvBD,OAAOE,IAAI,CAACN,QAAQO,KAAK,EAAE3B,GAAG,CAAC,SAAC4B,WAAQ,CACtCA,IACA,MAAKT,mBAAmB,CAACC,QAAQO,KAAK,CAACC,IAAI,CAAEA,KAC9C,GAEL,MAAO,GAAIR,AAAO,YAAPA,QAAmBE,MAAC,CAACO,QAAQ,EAAE,CACxC,MAAO,CAAC,IAAI,CAACV,mBAAmB,CAAC,AAACC,QAAkCU,OAAO,CAAET,MAAM,AACrF,MAAO,GAAID,AAAO,YAAPA,QAAmBE,MAAC,CAACS,SAAS,EAAE,CACzC,GAAIV,KAAKW,QAAQ,CAAC,QAAUX,KAAKW,QAAQ,CAAC,UAAYX,OAAS,QAAS,CACtE,MAAO,YACT,KAAO,CACL,OAAOA,KAAKY,WAAW,EACzB,CACF,MAAO,GAAIb,AAAO,YAAPA,QAAmBE,MAAC,CAACY,SAAS,EAAE,CACzC,GAAIb,OAAS,MAAO,CAClB,OAAO,EACT,KAEiBD,kBAAjB,IAAMe,SAAWf,CAAAA,kBAAAA,QAAQe,QAAQ,UAAhBf,2BAAAA,kBAAoB,EACrC,OAAOe,SAAWC,OAAOC,gBAAgB,CAAIF,SAAW,CAC1D,MAAO,GAAIf,AAAO,YAAPA,QAAmBE,MAAC,CAACgB,UAAU,EAAE,CAC1C,OAAO,KACT,MAAO,GAAIlB,AAAO,YAAPA,QAAmBE,MAAC,CAACiB,OAAO,EAAE,CACvC,OAAOnB,QAAQhB,OAAO,CAAC,EAAE,AAC3B,MAAO,GAAIgB,AAAO,YAAPA,QAAmBE,MAAC,CAACkB,WAAW,EAAE,CAC3C,OAAO,IAAI,CAACrB,mBAAmB,CAAC,AAACC,QAAqCqB,GAAG,CAACC,SAAS,CAAErB,KACvF,MAAO,GAAID,AAAO,YAAPA,QAAmBE,MAAC,CAACqB,WAAW,EAAE,CAC3C,OAAO,IACT,MAAO,GAAIvB,AAAO,YAAPA,QAAmBE,MAAC,CAACsB,QAAQ,EAAE,CACxC,OAAO,IAAI,CAACzB,mBAAmB,CAAC,AAACC,QAAoCqB,GAAG,CAACrC,OAAO,CAAC,EAAE,CAAEiB,KACvF,MAAO,GAAID,AAAO,YAAPA,QAAmBE,MAAC,CAACuB,UAAU,EAAE,CAC1C,MAAO,SACT,MAAO,GAAIzB,AAAO,YAAPA,QAAmBE,MAAC,CAACwB,QAAQ,EAAE,CACxC,OAAO1B,QAAQqB,GAAG,CAACM,KAAK,CAAC/C,GAAG,CAAC,SAACgD,aAC5B,MAAK7B,mBAAmB,CAAC6B,KAAM3B,OAEnC,MAAO,GAAID,AAAO,YAAPA,QAAmBE,MAAC,CAAC2B,OAAO,EAAE,CACvC,MAAO,YACT,MAAO,GAAI7B,AAAO,YAAPA,QAAmBE,MAAC,CAAC4B,UAAU,EAAE,CAC1C,OAAO9B,QAAQ+B,KAAK,AACtB,MAAO,GAAI/B,AAAO,YAAPA,QAAmBE,MAAC,CAAC8B,SAAS,GAAIhC,AAAO,YAAPA,QAAmBE,MAAC,CAAC+B,MAAM,EAAE,CACxE,IAAMC,MAAQ,AAAClC,QAAyEqB,GAAG,CAC3F,IAAMb,IAAM,IAAI,CAACT,mBAAmB,CAACmC,MAAMC,OAAO,CAAElC,MACpD,IAAM8B,MAAQ,IAAI,CAAChC,mBAAmB,CAACmC,MAAME,SAAS,CAAEnC,MACxD,OAAS,oBAACO,IAAMuB,MAClB,MAAO,GAAI/B,AAAO,YAAPA,QAAmBE,MAAC,CAACmC,MAAM,EAAE,CACtC,MAAO,CAAC,IAAI,CAACtC,mBAAmB,CAAC,AAACC,QAAgCqB,GAAG,CAACe,SAAS,CAAEnC,MAAM,AACzF,MAAO,GAAID,AAAO,YAAPA,QAAmBE,MAAC,CAACoC,eAAe,EAAE,CAC/C,OAAO,IAAI,CAACvC,mBAAmB,CAAC,AAACC,QAAoDqB,GAAG,CAACkB,KAAK,CAAEtC,KAClG,MAAO,GAAID,AAAO,YAAPA,QAAmBE,MAAC,CAACsC,UAAU,EAAE,CAC1C,OAAO,IAAI,CAACzC,mBAAmB,CAAC,AAACC,QAAoCqB,GAAG,CAACC,SAAS,CAAErB,KACtF,KAAO,CAEL,MAAO,AAAC,WAAuB,OAAbD,QAAQyC,IAAI,CAChC,CACF,IAEA1D,IAAAA,yBAAAA,SAAAA,iBACEf,GAAgB,CAChB0E,UAAoD,EAEpD,IAAMC,QAAUC,GAAAA,mCAAmB,EAAC5E,IAAK0E,YACzC,OAAO,IAAI,CAAC3C,mBAAmB,CAAC4C,QAAS,cAG3C,YAxIWhF,0BAAiCkF,sBAAQ"}
|
|
1
|
+
{"version":3,"sources":["../../src/templates/generated_http.template.ts"],"sourcesContent":["import qs from \"qs\";\nimport { z } from \"zod\";\nimport { TemplateOptions } from \"../types/types\";\nimport { getZodObjectFromApi } from \"../api/code-converters\";\nimport { ExtendedApi } from \"../api/decorators\";\nimport { Template } from \"./base-template\";\nimport prettier from \"prettier\";\nimport { Sonamu } from \"../api/sonamu\";\n\nexport class Template__generated_http extends Template {\n constructor() {\n super(\"generated_http\");\n }\n\n getTargetAndPath() {\n const { dir } = Sonamu.config.api;\n\n return {\n target: `${dir}/src/application`,\n path: `sonamu.generated.http`,\n };\n }\n\n async render({}: TemplateOptions[\"generated_http\"]) {\n const {\n syncer: { types, apis },\n config: {\n route: { prefix },\n },\n } = Sonamu;\n\n const lines = await Promise.all(\n apis.map(async (api) => {\n const reqObject = this.resolveApiParams(api, types);\n\n const dataLines = await (async () => {\n if ((api.options.httpMethod ?? \"GET\") === \"GET\") {\n return {\n querystring: [\n qs\n .stringify(reqObject, { encode: false })\n .split(\"&\")\n .join(\"\\n\\t&\"),\n ],\n body: [],\n };\n } else {\n return {\n querystring: [],\n body: [\n \"\",\n await prettier.format(JSON.stringify(reqObject), {\n parser: \"json\",\n }),\n ],\n };\n }\n })();\n\n return [\n [\n `${api.options.httpMethod ?? \"GET\"} {{baseUrl}}${prefix}${api.path}`,\n ...dataLines.querystring,\n ].join(\"\\n\\t?\"),\n `Content-Type: ${api.options.contentType ?? \"application/json\"}`,\n ...dataLines.body,\n ].join(\"\\n\");\n })\n );\n\n return {\n ...this.getTargetAndPath(),\n body: lines.join(\"\\n\\n###\\n\\n\"),\n importKeys: [],\n };\n }\n\n zodTypeToReqDefault(zodType: z.ZodType<unknown>, name: string): unknown {\n if (zodType instanceof z.ZodObject) {\n return Object.fromEntries(\n Object.keys(zodType.shape).map((key) => [\n key,\n this.zodTypeToReqDefault(zodType.shape[key], key),\n ])\n );\n } else if (zodType instanceof z.ZodArray) {\n return [\n this.zodTypeToReqDefault(\n (zodType as z.ZodArray<z.ZodType>).element,\n name\n ),\n ];\n } else if (zodType instanceof z.ZodString) {\n if (name.endsWith(\"_at\") || name.endsWith(\"_date\") || name === \"range\") {\n return \"2000-01-01\";\n } else {\n return name.toUpperCase();\n }\n } else if (zodType instanceof z.ZodNumber) {\n if (name === \"num\") {\n return 24;\n }\n\n const minValue = zodType.minValue ?? 0;\n return minValue > Number.MIN_SAFE_INTEGER ? minValue : 0;\n } else if (zodType instanceof z.ZodBoolean) {\n return false;\n } else if (zodType instanceof z.ZodEnum) {\n return zodType.options[0];\n } else if (zodType instanceof z.ZodOptional) {\n return this.zodTypeToReqDefault(\n (zodType as z.ZodOptional<z.ZodType>).def.innerType,\n name\n );\n } else if (zodType instanceof z.ZodNullable) {\n return null;\n } else if (zodType instanceof z.ZodUnion) {\n return this.zodTypeToReqDefault(\n (zodType as z.ZodUnion<z.ZodType[]>).def.options[0],\n name\n );\n } else if (zodType instanceof z.ZodUnknown) {\n return \"unknown\";\n } else if (zodType instanceof z.ZodTuple) {\n return zodType.def.items.map((item: any) =>\n this.zodTypeToReqDefault(item, name)\n );\n } else if (zodType instanceof z.ZodDate) {\n return \"2000-01-01\";\n } else if (zodType instanceof z.ZodLiteral) {\n return zodType.value;\n } else if (zodType instanceof z.ZodRecord || zodType instanceof z.ZodMap) {\n const kvDef = (\n zodType as z.ZodRecord<any, z.ZodType> | z.ZodMap<z.ZodType, z.ZodType>\n ).def;\n const key = this.zodTypeToReqDefault(kvDef.keyType, name) as any;\n const value = this.zodTypeToReqDefault(kvDef.valueType, name);\n return { [key]: value };\n } else if (zodType instanceof z.ZodSet) {\n return [\n this.zodTypeToReqDefault(\n (zodType as z.ZodSet<z.ZodType>).def.valueType,\n name\n ),\n ];\n } else if (zodType instanceof z.ZodIntersection) {\n return this.zodTypeToReqDefault(\n (zodType as z.ZodIntersection<z.ZodType, z.ZodType>).def.right,\n name\n );\n } else if (zodType instanceof z.ZodDefault) {\n return this.zodTypeToReqDefault(\n (zodType as z.ZodDefault<z.ZodType>).def.innerType,\n name\n );\n } else {\n // console.log(zodType);\n return `unknown-${zodType.type}`;\n }\n }\n\n resolveApiParams(\n api: ExtendedApi,\n references: { [typeName: string]: z.ZodObject<any> }\n ): { [key: string]: unknown } {\n const reqType = getZodObjectFromApi(api, references);\n try {\n const def = this.zodTypeToReqDefault(reqType, \"unknownName\") as {\n [key: string]: unknown;\n };\n return def;\n } catch (error) {\n throw new Error(\n `Invalid zod type detected on ${api.modelName}:${api.methodName}`\n );\n }\n }\n}\n"],"names":["Template__generated_http","getTargetAndPath","dir","Sonamu","config","api","target","path","render","types","apis","prefix","lines","syncer","route","Promise","all","map","reqObject","dataLines","resolveApiParams","options","httpMethod","querystring","qs","stringify","encode","split","join","body","prettier","format","JSON","parser","contentType","importKeys","zodTypeToReqDefault","zodType","name","z","ZodObject","Object","fromEntries","keys","shape","key","ZodArray","element","ZodString","endsWith","toUpperCase","ZodNumber","minValue","Number","MIN_SAFE_INTEGER","ZodBoolean","ZodEnum","ZodOptional","def","innerType","ZodNullable","ZodUnion","ZodUnknown","ZodTuple","items","item","ZodDate","ZodLiteral","value","ZodRecord","ZodMap","kvDef","keyType","valueType","ZodSet","ZodIntersection","right","ZodDefault","type","references","reqType","getZodObjectFromApi","error","Error","modelName","methodName","Template"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generated_sso.template.d.ts","sourceRoot":"","sources":["../../src/templates/generated_sso.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIlD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,qBAAa,uBAAwB,SAAQ,QAAQ;;IAKnD,gBAAgB;;;;IAShB,MAAM,CAAC,EAAE,EAAE,eAAe,CAAC,eAAe,CAAC;;;;;;;
|
|
1
|
+
{"version":3,"file":"generated_sso.template.d.ts","sourceRoot":"","sources":["../../src/templates/generated_sso.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIlD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,qBAAa,uBAAwB,SAAQ,QAAQ;;IAKnD,gBAAgB;;;;IAShB,MAAM,CAAC,EAAE,EAAE,eAAe,CAAC,eAAe,CAAC;;;;;;;IA2E3C,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,IAAI;CAkCnE"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Template__generated_sso",{enumerable:true,get:function(){return Template__generated_sso}});var _types=require("../types/types");var _entitymanager=require("../entity/entity-manager");var _basetemplate=require("./base-template");var _inflection=/*#__PURE__*/_interop_require_default(require("inflection"));var _lodash=/*#__PURE__*/_interop_require_default(require("lodash"));var _utils=require("../utils/utils");var _api=require("../api");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 _assert_this_initialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}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(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 _object_destructuring_empty(o){if(o===null||o===void 0)throw new TypeError("Cannot destructure "+o);return o}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 _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 _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}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})()}var Template__generated_sso=/*#__PURE__*/function(Template){"use strict";_inherits(Template__generated_sso,Template);function Template__generated_sso(){_class_call_check(this,Template__generated_sso);return _call_super(this,Template__generated_sso,["generated_sso"])}_create_class(Template__generated_sso,[{key:"getTargetAndPath",value:function getTargetAndPath(){var dir=_api.Sonamu.config.api.dir;return{target:"".concat(dir,"/src/application"),path:"sonamu.generated.sso.ts"}}},{key:"render",value:function render(param){var ref=_object_destructuring_empty(param);var entityIds=_entitymanager.EntityManager.getAllIds();var entities=entityIds.map(function(id){return _entitymanager.EntityManager.get(id)});var sourceCodes=entities.map(function(entity){if(entity.parentId!==undefined||Object.keys(entity.subsets).length===0){return null}var subsetKeys=Object.keys(entity.subsets);var subsetQueryObject=subsetKeys.reduce(function(r,subsetKey){var subsetQuery=entity.getSubsetQuery(subsetKey);r[subsetKey]=subsetQuery;return r},{});var subsetKeyTypeName="".concat(entity.names.module,"SubsetKey");return{label:"SubsetQuery: ".concat(entity.id),lines:["export const ".concat(_inflection.default.camelize(entity.id,true),"SubsetQueries:{ [key in ").concat(subsetKeyTypeName,"]: SubsetQuery} = ").concat(JSON.stringify(subsetQueryObject),";"),""],importKeys:[subsetKeyTypeName]}}).filter(_utils.nonNullable);var dbSchemaSourceCode=this.getDatabaseSchemaSourceCode(entities);if(dbSchemaSourceCode){sourceCodes.push(dbSchemaSourceCode)}var sourceCode=sourceCodes.reduce(function(result,ts){if(ts===null){return result}return{lines:_to_consumable_array(result.lines).concat(["// ".concat(ts.label)],_to_consumable_array(ts.lines),[""]),importKeys:_lodash.default.uniq(_to_consumable_array(result.importKeys).concat(_to_consumable_array(ts.importKeys)))}},{lines:[],importKeys:[]});return _object_spread_props(_object_spread({},this.getTargetAndPath()),{body:sourceCode.lines.join("\n"),importKeys:sourceCode.importKeys,customHeaders:[
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Template__generated_sso",{enumerable:true,get:function(){return Template__generated_sso}});var _types=require("../types/types");var _entitymanager=require("../entity/entity-manager");var _basetemplate=require("./base-template");var _inflection=/*#__PURE__*/_interop_require_default(require("inflection"));var _lodash=/*#__PURE__*/_interop_require_default(require("lodash"));var _utils=require("../utils/utils");var _api=require("../api");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 _assert_this_initialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}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(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 _object_destructuring_empty(o){if(o===null||o===void 0)throw new TypeError("Cannot destructure "+o);return o}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 _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 _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}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})()}var Template__generated_sso=/*#__PURE__*/function(Template){"use strict";_inherits(Template__generated_sso,Template);function Template__generated_sso(){_class_call_check(this,Template__generated_sso);return _call_super(this,Template__generated_sso,["generated_sso"])}_create_class(Template__generated_sso,[{key:"getTargetAndPath",value:function getTargetAndPath(){var dir=_api.Sonamu.config.api.dir;return{target:"".concat(dir,"/src/application"),path:"sonamu.generated.sso.ts"}}},{key:"render",value:function render(param){var ref=_object_destructuring_empty(param);var entityIds=_entitymanager.EntityManager.getAllIds();var entities=entityIds.map(function(id){return _entitymanager.EntityManager.get(id)});var sourceCodes=entities.map(function(entity){if(entity.parentId!==undefined||Object.keys(entity.subsets).length===0){return null}var subsetKeys=Object.keys(entity.subsets);var subsetQueryObject=subsetKeys.reduce(function(r,subsetKey){var subsetQuery=entity.getSubsetQuery(subsetKey);r[subsetKey]=subsetQuery;return r},{});var subsetKeyTypeName="".concat(entity.names.module,"SubsetKey");return{label:"SubsetQuery: ".concat(entity.id),lines:["export const ".concat(_inflection.default.camelize(entity.id,true),"SubsetQueries:{ [key in ").concat(subsetKeyTypeName,"]: SubsetQuery} = ").concat(JSON.stringify(subsetQueryObject),";"),""],importKeys:[subsetKeyTypeName]}}).filter(_utils.nonNullable);var dbSchemaSourceCode=this.getDatabaseSchemaSourceCode(entities);if(dbSchemaSourceCode){sourceCodes.push(dbSchemaSourceCode)}var sourceCode=sourceCodes.reduce(function(result,ts){if(ts===null){return result}return{lines:_to_consumable_array(result.lines).concat(["// ".concat(ts.label)],_to_consumable_array(ts.lines),[""]),importKeys:_lodash.default.uniq(_to_consumable_array(result.importKeys).concat(_to_consumable_array(ts.importKeys)))}},{lines:[],importKeys:[]});var body=sourceCode.lines.join("\n");var isUsingManyToManyBaseSchema=body.includes("ManyToManyBaseSchema");return _object_spread_props(_object_spread({},this.getTargetAndPath()),{body:sourceCode.lines.join("\n"),importKeys:sourceCode.importKeys,customHeaders:["import { SubsetQuery, ".concat(isUsingManyToManyBaseSchema?"ManyToManyBaseSchema":"",' } from "sonamu";')]})}},{key:"getDatabaseSchemaSourceCode",value:function getDatabaseSchemaSourceCode(entities){if(entities.length===0){return null}var entitySchemaLines=entities.map(function(entity){return"".concat(entity.table,": ").concat(entity.id,"BaseSchema;")});var joinTableSchemaLines=_lodash.default.uniq(entities.flatMap(function(entity){return entity.props.filter(_types.isManyToManyRelationProp).map(function(prop){var fromTableKey=_inflection.default.singularize(entity.table);var toTableKey=_inflection.default.singularize(_entitymanager.EntityManager.get(prop.with).table);return"".concat(prop.joinTable,': ManyToManyBaseSchema<"').concat(fromTableKey,'", "').concat(toTableKey,'">;')})}));return{label:"DatabaseSchema",lines:['declare module "sonamu" {'," export interface DatabaseSchemaExtend {"].concat(_to_consumable_array(entitySchemaLines),_to_consumable_array(joinTableSchemaLines),[" }","}"]),importKeys:entities.map(function(entity){return"".concat(entity.id,"BaseSchema")})}}}]);return Template__generated_sso}(_basetemplate.Template);
|
|
2
2
|
//# sourceMappingURL=generated_sso.template.js.map
|