From 9550be24ff6af379d7774cbb1cab04853fe70add Mon Sep 17 00:00:00 2001 From: Umed Khudoiberdiev Date: Wed, 27 Sep 2017 14:52:27 +0500 Subject: [PATCH 1/4] updated all dependencies, fixed es6 issues --- README.md | 2 + package.json | 9 +-- src/app1-es5/entity/Category.js | 2 +- src/app1-es5/entity/Post.js | 2 +- src/app1-es5/index.js | 20 +++--- .../entity/category.json | 2 +- src/app2-es5-json-schemas/entity/post.json | 2 +- src/app2-es5-json-schemas/index.js | 20 +++--- src/app3-es6/entity/CategorySchema.js | 11 ++-- src/app3-es6/entity/PostSchema.js | 15 ++--- src/app3-es6/index.js | 65 ++++++++++--------- 11 files changed, 73 insertions(+), 77 deletions(-) diff --git a/README.md b/README.md index 201087c..5a087a6 100644 --- a/README.md +++ b/README.md @@ -5,3 +5,5 @@ 3. run `node src/app1-es5/index.js` to run simple example of usage with ES5. 4. run `node src/app2-es5-json-schemas/index.js` to run example of usage with ES5 + schemas defined in a JSON. 5. run `node src/app3-es6/index.js` to run simple example of usage with ES6. + +If you are looking for more advanced JavaScript example with latest ES features and Babel used see [here](https://github.com/typeorm/babel-example). \ No newline at end of file diff --git a/package.json b/package.json index 23e3fef..a83cb7f 100644 --- a/package.json +++ b/package.json @@ -21,12 +21,9 @@ "typeorm-sample", "typeorm-example" ], - "devDependencies": { - "typescript": "^2.1.5" - }, "dependencies": { - "pg": "^6.1.0", - "reflect-metadata": "^0.1.9", - "typeorm": "0.0.8" + "mysql": "^2.14.1", + "reflect-metadata": "^0.1.10", + "typeorm": "0.1.0-alpha.49" } } diff --git a/src/app1-es5/entity/Category.js b/src/app1-es5/entity/Category.js index 3ebbc3f..28c90c9 100644 --- a/src/app1-es5/entity/Category.js +++ b/src/app1-es5/entity/Category.js @@ -7,7 +7,7 @@ module.exports = { generated: true }, name: { - type: "string" + type: "varchar" } } }; \ No newline at end of file diff --git a/src/app1-es5/entity/Post.js b/src/app1-es5/entity/Post.js index 9f31ee3..fd90622 100644 --- a/src/app1-es5/entity/Post.js +++ b/src/app1-es5/entity/Post.js @@ -7,7 +7,7 @@ module.exports = { generated: true }, title: { - type: "string" + type: "varchar" }, text: { type: "text" diff --git a/src/app1-es5/index.js b/src/app1-es5/index.js index 86fbf25..7f7d7a6 100644 --- a/src/app1-es5/index.js +++ b/src/app1-es5/index.js @@ -1,19 +1,17 @@ var typeorm = require("typeorm"); typeorm.createConnection({ - driver: { - type: "postgres", - host: "localhost", - port: 5432, - username: "test", - password: "admin", - database: "test" - }, + type: "mysql", + host: "localhost", + port: 3306, + username: "test", + password: "test", + database: "test", + synchronize: true, entitySchemas: [ require("./entity/Post"), require("./entity/Category") - ], - autoSchemaSync: true + ] }).then(function (connection) { var category1 = { @@ -32,7 +30,7 @@ typeorm.createConnection({ }; var postRepository = connection.getRepository("Post"); - postRepository.persist(post) + postRepository.save(post) .then(function(savedPost) { console.log("Post has been saved: ", savedPost); console.log("Now lets load all posts: "); diff --git a/src/app2-es5-json-schemas/entity/category.json b/src/app2-es5-json-schemas/entity/category.json index 155fb16..9f47d43 100644 --- a/src/app2-es5-json-schemas/entity/category.json +++ b/src/app2-es5-json-schemas/entity/category.json @@ -7,7 +7,7 @@ "generated": true }, "name": { - "type": "string" + "type": "varchar" } } } \ No newline at end of file diff --git a/src/app2-es5-json-schemas/entity/post.json b/src/app2-es5-json-schemas/entity/post.json index 110e9f3..9a66ce5 100644 --- a/src/app2-es5-json-schemas/entity/post.json +++ b/src/app2-es5-json-schemas/entity/post.json @@ -7,7 +7,7 @@ "generated": true }, "title": { - "type": "string" + "type": "varchar" }, "text": { "type": "text" diff --git a/src/app2-es5-json-schemas/index.js b/src/app2-es5-json-schemas/index.js index 2d432ab..f52dc5a 100644 --- a/src/app2-es5-json-schemas/index.js +++ b/src/app2-es5-json-schemas/index.js @@ -1,18 +1,16 @@ var typeorm = require("typeorm"); typeorm.createConnection({ - driver: { - type: "postgres", - host: "localhost", - port: 5432, - username: "test", - password: "admin", - database: "test" - }, + type: "mysql", + host: "localhost", + port: 3306, + username: "test", + password: "test", + database: "test", + synchronize: true, entitySchemas: [ __dirname + "/entity/*.json" - ], - autoSchemaSync: true + ] }).then(function (connection) { var category1 = { @@ -31,7 +29,7 @@ typeorm.createConnection({ }; var postRepository = connection.getRepository("Post"); - postRepository.persist(post) + postRepository.save(post) .then(function(savedPost) { console.log("Post has been saved: ", savedPost); console.log("Now lets load all posts: "); diff --git a/src/app3-es6/entity/CategorySchema.js b/src/app3-es6/entity/CategorySchema.js index 9158a0a..098c9d8 100644 --- a/src/app3-es6/entity/CategorySchema.js +++ b/src/app3-es6/entity/CategorySchema.js @@ -1,5 +1,6 @@ -const Category = require("../model/Category"); // import {Category} from "../model/Category"; -const CategorySchema = { +const Category = require("../model/Category").Category; // import {Category} from "../model/Category"; + +module.exports = { target: Category, columns: { id: { @@ -8,11 +9,7 @@ const CategorySchema = { generated: true }, name: { - type: "string" + type: "varchar" } } -}; - -module.exports = { - CategorySchema: CategorySchema }; \ No newline at end of file diff --git a/src/app3-es6/entity/PostSchema.js b/src/app3-es6/entity/PostSchema.js index 7193cf3..6877bbe 100644 --- a/src/app3-es6/entity/PostSchema.js +++ b/src/app3-es6/entity/PostSchema.js @@ -1,6 +1,7 @@ -const Post = require("../model/Post"); // import {Post} from "../model/Post"; -const Category = require("../model/Category"); // import {Category} from "../model/Category"; -const PostSchema = { +const Post = require("../model/Post").Post; // import {Post} from "../model/Post"; +const Category = require("../model/Category").Category; // import {Category} from "../model/Category"; + +module.exports = { target: Post, columns: { id: { @@ -9,7 +10,7 @@ const PostSchema = { generated: true }, title: { - type: "string" + type: "varchar" }, text: { type: "text" @@ -17,14 +18,10 @@ const PostSchema = { }, relations: { categories: { - target: Category, + target: () => Category, type: "many-to-many", joinTable: true, cascadeInsert: true } } -}; - -module.exports = { - PostSchema: PostSchema }; \ No newline at end of file diff --git a/src/app3-es6/index.js b/src/app3-es6/index.js index b884214..93e3534 100644 --- a/src/app3-es6/index.js +++ b/src/app3-es6/index.js @@ -1,40 +1,47 @@ const typeorm = require("typeorm"); // import * as typeorm from "typeorm"; -const Post = require("./model/Post"); // import {Post} from "./model/Post"; -const Category = require("./model/Category"); // import {Category} from "./model/Category"; +const Post = require("./model/Post").Post; // import {Post} from "./model/Post"; +const Category = require("./model/Category").Category; // import {Category} from "./model/Category"; typeorm.createConnection({ - driver: { - type: "postgres", - host: "localhost", - port: 5432, - username: "test", - password: "admin", - database: "test" - }, - entities: [ - __dirname + "/entity/*.js" - ], - autoSchemaSync: true + type: "mysql", + host: "localhost", + port: 3306, + username: "test", + password: "test", + database: "test", + synchronize: true, + logging: false, + entitySchemas: [ + require("./entity/PostSchema"), + require("./entity/CategorySchema") + ] }).then(function (connection) { - console.log(connection); - let post = new Post(); - post.title = "Control flow based type analysis"; - post.text = "TypeScript 2.0 implements a control flow-based type analysis for local variables and parameters."; - post.categories = [new Category(0, "TypeScript"), new Category(0, "Programming")]; + const category1 = new Category(0, "TypeScript"); + const category2 = new Category(0, "Programming"); - let postRepository = connection.getRepository(Post); - postRepository.persist(post) - .then(function(savedPost) { - console.log("Post has been saved: ", savedPost); - console.log("Now lets load all posts: "); + return connection + .manager + .save([category1, category2]) + .then(() => { - return postRepository.find(); - }) - .then(function(allPosts) { - console.log("All posts: ", allPosts); - }); + let post = new Post(); + post.title = "Control flow based type analysis"; + post.text = "TypeScript 2.0 implements a control flow-based type analysis for local variables and parameters."; + post.categories = [category1, category2]; + + let postRepository = connection.getRepository(Post); + postRepository.save(post) + .then(function(savedPost) { + console.log("Post has been saved: ", savedPost); + console.log("Now lets load all posts: "); + return postRepository.find(); + }) + .then(function(allPosts) { + console.log("All posts: ", allPosts); + }); + }); }).catch(function(error) { console.log("Error: ", error); From dbb898ab03f590da7cb618bee24487301ca00bb9 Mon Sep 17 00:00:00 2001 From: Umed Khudoiberdiev Date: Mon, 9 Oct 2017 19:26:45 +0500 Subject: [PATCH 2/4] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a83cb7f..2d0e24f 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,6 @@ "dependencies": { "mysql": "^2.14.1", "reflect-metadata": "^0.1.10", - "typeorm": "0.1.0-alpha.49" + "typeorm": "^0.1.0" } } From 7ddc37cb53e021171da6acaf2f1028d394d15577 Mon Sep 17 00:00:00 2001 From: Umed Khudoiberdiev Date: Thu, 19 Apr 2018 16:36:00 +0500 Subject: [PATCH 3/4] updated typeorm version to 0.2.0 --- package.json | 5 ++--- src/app1-es5/index.js | 7 ++++--- src/app2-es5-json-schemas/index.js | 6 ++++-- src/app3-es6/entity/CategorySchema.js | 6 ++++-- src/app3-es6/entity/PostSchema.js | 8 +++++--- src/app3-es6/index.js | 2 +- 6 files changed, 20 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index 2d0e24f..959bcc1 100644 --- a/package.json +++ b/package.json @@ -22,8 +22,7 @@ "typeorm-example" ], "dependencies": { - "mysql": "^2.14.1", - "reflect-metadata": "^0.1.10", - "typeorm": "^0.1.0" + "mysql": "^2.15.0", + "typeorm": "^0.2.0" } } diff --git a/src/app1-es5/index.js b/src/app1-es5/index.js index 7f7d7a6..4e1dc21 100644 --- a/src/app1-es5/index.js +++ b/src/app1-es5/index.js @@ -1,4 +1,5 @@ var typeorm = require("typeorm"); +var EntitySchema = typeorm.EntitySchema; typeorm.createConnection({ type: "mysql", @@ -8,9 +9,9 @@ typeorm.createConnection({ password: "test", database: "test", synchronize: true, - entitySchemas: [ - require("./entity/Post"), - require("./entity/Category") + entities: [ + new EntitySchema(require("./entity/Post")), + new EntitySchema(require("./entity/Category")), ] }).then(function (connection) { diff --git a/src/app2-es5-json-schemas/index.js b/src/app2-es5-json-schemas/index.js index f52dc5a..3603086 100644 --- a/src/app2-es5-json-schemas/index.js +++ b/src/app2-es5-json-schemas/index.js @@ -1,4 +1,5 @@ var typeorm = require("typeorm"); +var EntitySchema = typeorm.EntitySchema; typeorm.createConnection({ type: "mysql", @@ -8,8 +9,9 @@ typeorm.createConnection({ password: "test", database: "test", synchronize: true, - entitySchemas: [ - __dirname + "/entity/*.json" + entities: [ + new EntitySchema(require("./entity/post.json")), + new EntitySchema(require("./entity/category.json")), ] }).then(function (connection) { diff --git a/src/app3-es6/entity/CategorySchema.js b/src/app3-es6/entity/CategorySchema.js index 098c9d8..eed3897 100644 --- a/src/app3-es6/entity/CategorySchema.js +++ b/src/app3-es6/entity/CategorySchema.js @@ -1,6 +1,8 @@ +const EntitySchema = require("typeorm").EntitySchema; // import {EntitySchema} from "typeorm"; const Category = require("../model/Category").Category; // import {Category} from "../model/Category"; -module.exports = { +module.exports = new EntitySchema({ + name: "Category", target: Category, columns: { id: { @@ -12,4 +14,4 @@ module.exports = { type: "varchar" } } -}; \ No newline at end of file +}); \ No newline at end of file diff --git a/src/app3-es6/entity/PostSchema.js b/src/app3-es6/entity/PostSchema.js index 6877bbe..baf26cf 100644 --- a/src/app3-es6/entity/PostSchema.js +++ b/src/app3-es6/entity/PostSchema.js @@ -1,7 +1,9 @@ +const EntitySchema = require("typeorm").EntitySchema; // import {EntitySchema} from "typeorm"; const Post = require("../model/Post").Post; // import {Post} from "../model/Post"; const Category = require("../model/Category").Category; // import {Category} from "../model/Category"; -module.exports = { +module.exports = new EntitySchema({ + name: "Post", target: Post, columns: { id: { @@ -18,10 +20,10 @@ module.exports = { }, relations: { categories: { - target: () => Category, + target: "Category", type: "many-to-many", joinTable: true, cascadeInsert: true } } -}; \ No newline at end of file +}); \ No newline at end of file diff --git a/src/app3-es6/index.js b/src/app3-es6/index.js index 93e3534..7fe6ccb 100644 --- a/src/app3-es6/index.js +++ b/src/app3-es6/index.js @@ -11,7 +11,7 @@ typeorm.createConnection({ database: "test", synchronize: true, logging: false, - entitySchemas: [ + entities: [ require("./entity/PostSchema"), require("./entity/CategorySchema") ] From fd8183583c6a6fc78ea827bc58bd6d0ef9ef9c85 Mon Sep 17 00:00:00 2001 From: Umed Khudoiberdiev Date: Thu, 19 Apr 2018 16:46:06 +0500 Subject: [PATCH 4/4] updated typeorm version to 0.2.0 --- src/app1-es5/entity/Post.js | 2 +- src/app2-es5-json-schemas/entity/post.json | 2 +- src/app3-es6/entity/PostSchema.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/app1-es5/entity/Post.js b/src/app1-es5/entity/Post.js index fd90622..4e3167f 100644 --- a/src/app1-es5/entity/Post.js +++ b/src/app1-es5/entity/Post.js @@ -18,7 +18,7 @@ module.exports = { target: "Category", type: "many-to-many", joinTable: true, - cascadeInsert: true + cascade: true } } }; \ No newline at end of file diff --git a/src/app2-es5-json-schemas/entity/post.json b/src/app2-es5-json-schemas/entity/post.json index 9a66ce5..53e8d8d 100644 --- a/src/app2-es5-json-schemas/entity/post.json +++ b/src/app2-es5-json-schemas/entity/post.json @@ -18,7 +18,7 @@ "target": "Category", "type": "many-to-many", "joinTable": true, - "cascadeInsert": true + "cascade": true } } } \ No newline at end of file diff --git a/src/app3-es6/entity/PostSchema.js b/src/app3-es6/entity/PostSchema.js index baf26cf..f9b7b56 100644 --- a/src/app3-es6/entity/PostSchema.js +++ b/src/app3-es6/entity/PostSchema.js @@ -23,7 +23,7 @@ module.exports = new EntitySchema({ target: "Category", type: "many-to-many", joinTable: true, - cascadeInsert: true + cascade: true } } }); \ No newline at end of file