ts_schema 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 77d28bf3fa481c9cee1708d44202497b93168c5c41c1912fe3153e87594c2a85
4
- data.tar.gz: 4b5d1eb645ba546a5152b879481c897b735e6bd5a3f58cbf82913ff0160f8b86
3
+ metadata.gz: 63ca27c32ffaa091d17e4bc7dcc6f2f6cd17b090474c17194e41a865dc37a3df
4
+ data.tar.gz: 1e6e1a099da55952ff630cea38be5c00fc4082f4696ed26c7f4e8a805de11261
5
5
  SHA512:
6
- metadata.gz: e4d295418b3c84c8b6c9c1c0e2ae80a4bbe5595fe8a34d223c3207d95083da7fb0a61ecf83878333f499d6493752bc0ebe818b775c110ad2c0746eda2dc05208
7
- data.tar.gz: a1ce2c28636f2a9e5071e11ea42de845d5d411602d661f792e303039fd89b31d5138d63a556744d4df15b72233d135f538e42dab1cbdfcc0fc2a61f9c4dd5f89
6
+ metadata.gz: 6b2a1a3fe335a598d6c134af21d739648ef005dbf80510b66c042d4c995bad8766db5cd702f15b30ecf6d1bba4ae051c151aa0dbd986d59be47632fd0b8cacb4
7
+ data.tar.gz: 0e3a43734a1214d4c11c4dbaa18cf8ce3527c99e796baa05d6eb41008424a7ee83742bb730dca5b3c410705f1f8fd7f16e82595f7fc03b11c8c26abcf7d9a49f
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators'
4
+ require 'rails/generators/base'
5
+
6
+ module TsSchema
7
+ module Generators
8
+ class GenerateGenerator < Rails::Generators::Base
9
+
10
+ desc "Generates a schema.d.ts file"
11
+
12
+ def generate_schema
13
+ create_file TsSchema.configuration.output, TsSchema.generate
14
+ end
15
+ end
16
+ end
17
+ end
@@ -9,6 +9,28 @@ TsSchema.setup do |config|
9
9
  # config.auto_generate = true
10
10
 
11
11
  # Add custom type mappings or overrides
12
+ #
13
+ # Default type mappings:
14
+ #
15
+ # string: string
16
+ # text: string
17
+ # integer: number
18
+ # enum: number
19
+ # bigint: number
20
+ # float: number
21
+ # decimal: number
22
+ # json: Record<string, any>
23
+ # jsonb: Record<string, any>
24
+ # binary: string
25
+ # boolean: boolean
26
+ # date: string
27
+ # datetime: string
28
+ # timestamp: string
29
+ # datetime_with_timezone: string
30
+ # inet: string
31
+ # cidr: string
32
+ # macaddr: string
33
+ #
12
34
  # config.custom_types = {
13
35
  #
14
36
  # }
@@ -3,24 +3,28 @@ require "rake"
3
3
  namespace :ts_schema do
4
4
  desc "Generates a schema file in the default javascripts location, or the location specified in the ts_config initializer options"
5
5
  task :generate do
6
- TsSchema.generate
6
+ TsSchema.output_file
7
7
  end
8
8
  end
9
9
 
10
10
  namespace :db do
11
+ def auto_generate_and_save_file
12
+ TsSchema.output_file if TsSchema.configuration.auto_generate
13
+ end
14
+
11
15
  task migrate: :environment do
12
- TsSchema.generate if TsSchema.configuration.auto_generate
16
+ auto_generate_and_save_file
13
17
  end
14
18
 
15
19
  task rollback: :environment do
16
- TsSchema.generate if TsSchema.configuration.auto_generate
20
+ auto_generate_and_save_file
17
21
  end
18
22
 
19
23
  task reset: :environment do
20
- TsSchema.generate if TsSchema.configuration.auto_generate
24
+ auto_generate_and_save_file
21
25
  end
22
26
 
23
27
  task setup: :environment do
24
- TsSchema.generate if TsSchema.configuration.auto_generate
28
+ auto_generate_and_save_file
25
29
  end
26
30
  end
@@ -12,7 +12,7 @@ boolean: boolean
12
12
  date: string
13
13
  datetime: string
14
14
  timestamp: string
15
- datetime_with_timezone: :string
15
+ datetime_with_timezone: string
16
16
  inet: string
17
17
  cidr: string
18
18
  macaddr: string
@@ -9,8 +9,19 @@ module TsSchema
9
9
  end
10
10
 
11
11
  def generate
12
- ts = generate_typescript
13
- output_file(ts)
12
+ generate_typescript
13
+ end
14
+
15
+ def output_file
16
+ path = TsSchema.configuration.output
17
+ FileUtils.mkdir_p(File.dirname(path))
18
+
19
+ content = generate
20
+ return if File.exist?(path) && File.read(path) == content
21
+
22
+ File.open(path, 'w') do |f|
23
+ f.write content
24
+ end
14
25
  end
15
26
 
16
27
  private
@@ -77,17 +88,6 @@ module TsSchema
77
88
  end
78
89
  end
79
90
 
80
- def output_file(content)
81
- path = TsSchema.configuration.output
82
- FileUtils.mkdir_p(File.dirname(path))
83
-
84
- return if File.exist?(path) && File.read(path) == content
85
-
86
- File.open(path, 'w') do |f|
87
- f.write content
88
- end
89
- end
90
-
91
91
  def indent_as_str
92
92
  case TsSchema.configuration.indent.to_sym
93
93
  when :space || :spaces
@@ -1,3 +1,3 @@
1
1
  module TsSchema
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
data/lib/ts_schema.rb CHANGED
@@ -17,7 +17,12 @@ module TsSchema
17
17
  def generate
18
18
  SchemaGenerator.new.generate
19
19
  end
20
+
21
+ def output_file
22
+ SchemaGenerator.new.output_file
23
+ end
20
24
  end
21
25
  end
22
26
 
23
27
  require "generators/install_generator"
28
+ require "generators/generate_generator"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ts_schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Avram Walden
@@ -40,6 +40,7 @@ files:
40
40
  - MIT-LICENSE
41
41
  - README.md
42
42
  - Rakefile
43
+ - lib/generators/generate_generator.rb
43
44
  - lib/generators/install_generator.rb
44
45
  - lib/generators/templates/ts_schema.rb
45
46
  - lib/tasks/ts_schema_tasks.rake