{"version":3,"sources":["../../src/driver/nativescript/NativescriptQueryRunner.ts"],"names":[],"mappings":";;;AACA,+FAA4F;AAC5F,iEAA8D;AAC9D,0FAAuF;AAEvF,4DAAyD;AAEzD;;GAEG;AACH;IAA6C,mDAAyB;IAOlE,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,iCAAY,MAA0B;QAAtC,YACI,iBAAO,SAIV;QAHG,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,KAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,KAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,CAAC,KAAI,CAAC,CAAC;;IAC7C,CAAC;IAED;;OAEG;IACH,uCAAK,GAAL,UAAM,KAAa,EAAE,UAAkB;QAAvC,iBAoCC;QAnCG,IAAI,IAAI,CAAC,UAAU;YACf,MAAM,IAAI,iEAA+B,EAAE,CAAC;QAEhD,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QAE1C,OAAO,IAAI,OAAO,CAAS,UAAC,EAAE,EAAE,IAAI;YAChC,IAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,aAAa,CAAC;YAE5D,IAAM,OAAO,GAAG,UAAU,GAAQ,EAAE,MAAW;gBAE3C,oDAAoD;gBACpD,IAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,CAAC,qBAAqB,CAAC;gBACvE,IAAM,YAAY,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;gBACjC,IAAM,kBAAkB,GAAG,YAAY,GAAG,cAAc,CAAC;gBACzD,IAAI,qBAAqB,IAAI,kBAAkB,GAAG,qBAAqB;oBACnE,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,kBAAkB,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;gBAEhF,IAAI,GAAG,EAAE;oBACL,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;oBAC9D,IAAI,CAAC,IAAI,mCAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;iBACtD;qBAAM;oBACH,+CAA+C;oBAC/C,EAAE,CAAC,MAAM,CAAC,CAAC;iBACd;YACL,CAAC,CAAC;YACF,KAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,KAAI,CAAC,CAAC;YAChE,IAAM,cAAc,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YACnC,KAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,UAAA,kBAAkB;gBAClC,IAAI,aAAa,EAAE;oBACf,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;iBAC1D;qBAAM;oBACH,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;iBACtD;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAE5E;;OAEG;IACO,6CAAW,GAArB,UAAsB,aAA4B,EAAE,UAAsB;QAAtB,2BAAA,EAAA,cAAsB;QACtE,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,UAAC,GAAG,EAAE,KAAK,IAAK,OAAA,OAAI,GAAG,OAAG,GAAG,IAAI,EAAjB,CAAiB,CAAC,CAAC;IAC7E,CAAC;IACL,8BAAC;AAAD,CArEA,AAqEC,CArE4C,qDAAyB,GAqErE;AArEY,0DAAuB","file":"NativescriptQueryRunner.js","sourcesContent":["import {ObjectLiteral} from \"../../common/ObjectLiteral\";\nimport {QueryRunnerAlreadyReleasedError} from \"../../error/QueryRunnerAlreadyReleasedError\";\nimport {QueryFailedError} from \"../../error/QueryFailedError\";\nimport {AbstractSqliteQueryRunner} from \"../sqlite-abstract/AbstractSqliteQueryRunner\";\nimport {NativescriptDriver} from \"./NativescriptDriver\";\nimport {Broadcaster} from \"../../subscriber/Broadcaster\";\n\n/**\n * Runs queries on a single sqlite database connection.\n */\nexport class NativescriptQueryRunner extends AbstractSqliteQueryRunner {\n\n /**\n * Database driver used by connection.\n */\n driver: NativescriptDriver;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(driver: NativescriptDriver) {\n super();\n this.driver = driver;\n this.connection = driver.connection;\n this.broadcaster = new Broadcaster(this);\n }\n\n /**\n * Executes a given SQL query.\n */\n query(query: string, parameters?: any[]): Promise<any> {\n if (this.isReleased)\n throw new QueryRunnerAlreadyReleasedError();\n\n const connection = this.driver.connection;\n\n return new Promise<any[]>( (ok, fail) => {\n const isInsertQuery = query.substr(0, 11) === \"INSERT INTO\";\n\n const handler = function (err: any, result: any) {\n\n // log slow queries if maxQueryExecution time is set\n const maxQueryExecutionTime = connection.options.maxQueryExecutionTime;\n const queryEndTime = +new Date();\n const queryExecutionTime = queryEndTime - queryStartTime;\n if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)\n connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);\n\n if (err) {\n connection.logger.logQueryError(err, query, parameters, this);\n fail(new QueryFailedError(query, parameters, err));\n } else {\n // when isInsertQuery == true, result is the id\n ok(result);\n }\n };\n this.driver.connection.logger.logQuery(query, parameters, this);\n const queryStartTime = +new Date();\n this.connect().then(databaseConnection => {\n if (isInsertQuery) {\n databaseConnection.execSQL(query, parameters, handler);\n } else {\n databaseConnection.all(query, parameters, handler);\n }\n });\n });\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Parametrizes given object of values. Used to create column=value queries.\n */\n protected parametrize(objectLiteral: ObjectLiteral, startIndex: number = 0): string[] {\n return Object.keys(objectLiteral).map((key, index) => `\"${key}\"` + \"=?\");\n }\n}"],"sourceRoot":"../.."}
|