foobara-typescript-remote-command-generator 1.2.7 → 1.3.1

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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/lib/foobara/typescript_remote_command_generator.rb +1 -6
  4. data/src/{remote_generator/generate_typescript.rb → generate_typescript.rb} +13 -4
  5. data/src/{remote_generator/services → generators}/aggregate_entity_generator.rb +2 -2
  6. data/src/{remote_generator/services → generators}/aggregate_model_generator.rb +3 -3
  7. data/src/{remote_generator/services → generators}/atom_entity_generator.rb +3 -3
  8. data/src/{remote_generator/services → generators}/atom_model_generator.rb +3 -3
  9. data/src/{remote_generator/services → generators}/auth/access_tokens_generator.rb +1 -1
  10. data/src/generators/auth/login_command_generator.rb +29 -0
  11. data/src/{remote_generator/services → generators}/auth/login_generator.rb +4 -2
  12. data/src/generators/auth/logout_command_generator.rb +29 -0
  13. data/src/{remote_generator/services → generators}/auth/logout_generator.rb +4 -2
  14. data/src/{remote_generator/services → generators}/auth/refresh_login_generator.rb +4 -2
  15. data/src/generators/auth/requires_auth_command_generator.rb +27 -0
  16. data/src/{remote_generator/services → generators}/auth/requires_auth_generator.rb +4 -2
  17. data/src/{remote_generator/services → generators}/command_cast_result_generator.rb +6 -6
  18. data/src/{remote_generator/services → generators}/command_errors_generator.rb +2 -2
  19. data/src/{remote_generator/services → generators}/command_errors_index_generator.rb +1 -1
  20. data/src/generators/command_generator.rb +209 -0
  21. data/src/{remote_generator/services → generators}/command_inputs_generator.rb +1 -1
  22. data/src/{remote_generator/services → generators}/command_manifest_generator.rb +1 -1
  23. data/src/{remote_generator/services → generators}/command_result_generator.rb +1 -1
  24. data/src/{remote_generator/services → generators}/dependency_group.rb +2 -2
  25. data/src/{remote_generator/services → generators}/domain_config_generator.rb +1 -1
  26. data/src/{remote_generator/services → generators}/domain_generator.rb +1 -1
  27. data/src/{remote_generator/services → generators}/domain_manifest_generator.rb +1 -1
  28. data/src/{remote_generator/services → generators}/entity_generator.rb +1 -1
  29. data/src/{remote_generator/services → generators}/entity_manifest_generator.rb +1 -1
  30. data/src/{remote_generator/services → generators}/entity_variants_generator.rb +1 -1
  31. data/src/{remote_generator/services → generators}/error_generator.rb +1 -1
  32. data/src/{remote_generator/services → generators}/loaded_entity_generator.rb +1 -1
  33. data/src/{remote_generator/services → generators}/manifest_generator.rb +1 -1
  34. data/src/{remote_generator/services → generators}/model_generator.rb +1 -1
  35. data/src/{remote_generator/services → generators}/model_manifest_generator.rb +1 -1
  36. data/src/{remote_generator/services → generators}/model_variants_generator.rb +1 -1
  37. data/src/{remote_generator/services → generators}/organization_config_generator.rb +1 -1
  38. data/src/{remote_generator/services → generators}/organization_generator.rb +1 -1
  39. data/src/{remote_generator/services → generators}/organization_manifest_generator.rb +1 -1
  40. data/src/{remote_generator/services → generators}/processor_class_generator.rb +1 -1
  41. data/src/generators/remote_command_generator.rb +41 -0
  42. data/src/{remote_generator/services → generators}/root_manifest_generator.rb +1 -1
  43. data/src/{remote_generator/services → generators}/type_generator.rb +3 -3
  44. data/src/{remote_generator/services → generators}/typescript_from_manifest_base_generator.rb +42 -38
  45. data/src/{remote_generator/services → generators}/unloaded_entity_generator.rb +1 -1
  46. data/src/remote_generator.rb +21 -0
  47. data/src/{remote_generator/write_typescript_to_disk.rb → write_typescript_to_disk.rb} +10 -1
  48. data/templates/Command.ts.erb +39 -1
  49. data/templates/base/QueryCache.ts +48 -0
  50. data/templates/base/{RemoteCommand.ts → RemoteCommand.ts.erb} +22 -0
  51. metadata +46 -45
  52. data/src/remote_generator/services/auth/login_command_generator.rb +0 -17
  53. data/src/remote_generator/services/auth/logout_command_generator.rb +0 -17
  54. data/src/remote_generator/services/auth/requires_auth_command_generator.rb +0 -15
  55. data/src/remote_generator/services/command_generator.rb +0 -87
  56. /data/src/{remote_generator/association_depth.rb → association_depth.rb} +0 -0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foobara-typescript-remote-command-generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.7
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miles Georgi
@@ -55,50 +55,51 @@ files:
55
55
  - LICENSE.txt
56
56
  - README.md
57
57
  - lib/foobara/typescript_remote_command_generator.rb
58
+ - src/association_depth.rb
59
+ - src/generate_typescript.rb
60
+ - src/generators/aggregate_entity_generator.rb
61
+ - src/generators/aggregate_model_generator.rb
62
+ - src/generators/atom_entity_generator.rb
63
+ - src/generators/atom_model_generator.rb
64
+ - src/generators/auth/access_tokens_generator.rb
65
+ - src/generators/auth/login_command_generator.rb
66
+ - src/generators/auth/login_generator.rb
67
+ - src/generators/auth/logout_command_generator.rb
68
+ - src/generators/auth/logout_generator.rb
69
+ - src/generators/auth/refresh_login_generator.rb
70
+ - src/generators/auth/requires_auth_command_generator.rb
71
+ - src/generators/auth/requires_auth_generator.rb
72
+ - src/generators/command_cast_result_generator.rb
73
+ - src/generators/command_errors_generator.rb
74
+ - src/generators/command_errors_index_generator.rb
75
+ - src/generators/command_generator.rb
76
+ - src/generators/command_inputs_generator.rb
77
+ - src/generators/command_manifest_generator.rb
78
+ - src/generators/command_result_generator.rb
79
+ - src/generators/dependency_group.rb
80
+ - src/generators/domain_config_generator.rb
81
+ - src/generators/domain_generator.rb
82
+ - src/generators/domain_manifest_generator.rb
83
+ - src/generators/entity_generator.rb
84
+ - src/generators/entity_manifest_generator.rb
85
+ - src/generators/entity_variants_generator.rb
86
+ - src/generators/error_generator.rb
87
+ - src/generators/loaded_entity_generator.rb
88
+ - src/generators/manifest_generator.rb
89
+ - src/generators/model_generator.rb
90
+ - src/generators/model_manifest_generator.rb
91
+ - src/generators/model_variants_generator.rb
92
+ - src/generators/organization_config_generator.rb
93
+ - src/generators/organization_generator.rb
94
+ - src/generators/organization_manifest_generator.rb
95
+ - src/generators/processor_class_generator.rb
96
+ - src/generators/remote_command_generator.rb
97
+ - src/generators/root_manifest_generator.rb
98
+ - src/generators/type_generator.rb
99
+ - src/generators/typescript_from_manifest_base_generator.rb
100
+ - src/generators/unloaded_entity_generator.rb
58
101
  - src/remote_generator.rb
59
- - src/remote_generator/association_depth.rb
60
- - src/remote_generator/generate_typescript.rb
61
- - src/remote_generator/services/aggregate_entity_generator.rb
62
- - src/remote_generator/services/aggregate_model_generator.rb
63
- - src/remote_generator/services/atom_entity_generator.rb
64
- - src/remote_generator/services/atom_model_generator.rb
65
- - src/remote_generator/services/auth/access_tokens_generator.rb
66
- - src/remote_generator/services/auth/login_command_generator.rb
67
- - src/remote_generator/services/auth/login_generator.rb
68
- - src/remote_generator/services/auth/logout_command_generator.rb
69
- - src/remote_generator/services/auth/logout_generator.rb
70
- - src/remote_generator/services/auth/refresh_login_generator.rb
71
- - src/remote_generator/services/auth/requires_auth_command_generator.rb
72
- - src/remote_generator/services/auth/requires_auth_generator.rb
73
- - src/remote_generator/services/command_cast_result_generator.rb
74
- - src/remote_generator/services/command_errors_generator.rb
75
- - src/remote_generator/services/command_errors_index_generator.rb
76
- - src/remote_generator/services/command_generator.rb
77
- - src/remote_generator/services/command_inputs_generator.rb
78
- - src/remote_generator/services/command_manifest_generator.rb
79
- - src/remote_generator/services/command_result_generator.rb
80
- - src/remote_generator/services/dependency_group.rb
81
- - src/remote_generator/services/domain_config_generator.rb
82
- - src/remote_generator/services/domain_generator.rb
83
- - src/remote_generator/services/domain_manifest_generator.rb
84
- - src/remote_generator/services/entity_generator.rb
85
- - src/remote_generator/services/entity_manifest_generator.rb
86
- - src/remote_generator/services/entity_variants_generator.rb
87
- - src/remote_generator/services/error_generator.rb
88
- - src/remote_generator/services/loaded_entity_generator.rb
89
- - src/remote_generator/services/manifest_generator.rb
90
- - src/remote_generator/services/model_generator.rb
91
- - src/remote_generator/services/model_manifest_generator.rb
92
- - src/remote_generator/services/model_variants_generator.rb
93
- - src/remote_generator/services/organization_config_generator.rb
94
- - src/remote_generator/services/organization_generator.rb
95
- - src/remote_generator/services/organization_manifest_generator.rb
96
- - src/remote_generator/services/processor_class_generator.rb
97
- - src/remote_generator/services/root_manifest_generator.rb
98
- - src/remote_generator/services/type_generator.rb
99
- - src/remote_generator/services/typescript_from_manifest_base_generator.rb
100
- - src/remote_generator/services/unloaded_entity_generator.rb
101
- - src/remote_generator/write_typescript_to_disk.rb
102
+ - src/write_typescript_to_disk.rb
102
103
  - templates/Command.ts.erb
103
104
  - templates/Command/Errors.ts.erb
104
105
  - templates/Command/Inputs.ts.erb
@@ -132,7 +133,7 @@ files:
132
133
  - templates/base/Outcome.ts
133
134
  - templates/base/Query.ts
134
135
  - templates/base/QueryCache.ts
135
- - templates/base/RemoteCommand.ts
136
+ - templates/base/RemoteCommand.ts.erb
136
137
  - templates/base/RemoteCommandTypes.ts
137
138
  - templates/hooks/useQuery.ts
138
139
  homepage: https://github.com/foobara/typescript-remote-command-generator
@@ -1,17 +0,0 @@
1
- module Foobara
2
- module RemoteGenerator
3
- class Services
4
- module Auth
5
- class LoginCommandGenerator < TypescriptFromManifestBaseGenerator
6
- def template_path
7
- "Foobara/Auth/LoginCommand.ts.erb"
8
- end
9
-
10
- def dependencies
11
- super + [AccessTokensGenerator.new(relevant_manifest)]
12
- end
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- module Foobara
2
- module RemoteGenerator
3
- class Services
4
- module Auth
5
- class LogoutCommandGenerator < TypescriptFromManifestBaseGenerator
6
- def template_path
7
- "Foobara/Auth/LogoutCommand.ts.erb"
8
- end
9
-
10
- def dependencies
11
- super + [AccessTokensGenerator.new(relevant_manifest)]
12
- end
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,15 +0,0 @@
1
- require_relative "../typescript_from_manifest_base_generator"
2
-
3
- module Foobara
4
- module RemoteGenerator
5
- class Services
6
- module Auth
7
- class RequiresAuthCommandGenerator < TypescriptFromManifestBaseGenerator
8
- def template_path
9
- "Foobara/Auth/RequiresAuthCommand.ts.erb"
10
- end
11
- end
12
- end
13
- end
14
- end
15
- end
@@ -1,87 +0,0 @@
1
- require_relative "typescript_from_manifest_base_generator"
2
-
3
- module Foobara
4
- module RemoteGenerator
5
- class Services
6
- class CommandGenerator < TypescriptFromManifestBaseGenerator
7
- alias command_manifest relevant_manifest
8
-
9
- def target_path
10
- [*scoped_full_path, "index.ts"]
11
- end
12
-
13
- def template_path
14
- "Command.ts.erb"
15
- end
16
-
17
- def domain_generator
18
- @domain_generator ||= Services::DomainGenerator.new(domain)
19
- end
20
-
21
- def organization_generator = domain_generator.organization_generator
22
- def domain_name = domain_generator.domain_name
23
- def organization_name = domain_generator.organization_name
24
-
25
- def errors_in_this_namespace
26
- @errors_in_this_namespace ||= possible_errors.values.map(&:error).uniq.sort_by(&:error_name).select do |error|
27
- error.parent&.manifest_path&.map(&:to_s) == manifest_path.map(&:to_s)
28
- end.map do |error_manifest|
29
- Services::ErrorGenerator.new(error_manifest)
30
- end
31
- end
32
-
33
- def dependencies
34
- errors_in_this_namespace
35
- end
36
-
37
- def command_errors_index_generator
38
- Services::CommandErrorsIndexGenerator.new(command_manifest)
39
- end
40
-
41
- def base_class_path
42
- "base/RemoteCommand"
43
- end
44
-
45
- def base_class_name
46
- base_class_path.split("/").last
47
- end
48
-
49
- def result_json_requires_cast?
50
- # What types require a cast?
51
- # :date and :datetime, :model, custom type declaration (check #custom?)
52
- result_type && type_requires_cast?(result_type)
53
- end
54
-
55
- private
56
-
57
- def type_requires_cast?(type_declaration)
58
- if type_declaration.is_a?(Manifest::Attributes)
59
- return false unless type_declaration.has_attribute_declarations?
60
- return false if type_declaration.attribute_declarations.empty?
61
-
62
- type_declaration.attribute_declarations.values.any? do |attribute_declaration|
63
- type_requires_cast?(attribute_declaration)
64
- end
65
- elsif type_declaration.is_a?(Manifest::Array)
66
- element_type = type_declaration.element_type
67
- element_type && type_requires_cast?(element_type)
68
- else
69
- return true if type_declaration.model?
70
-
71
- type_symbol = type_declaration.type_symbol
72
-
73
- if type_symbol == :date || type_symbol == :datetime
74
- return true
75
- end
76
-
77
- if type_declaration.custom?
78
- type_declaration = type_declaration.to_type if type_declaration.is_a?(Manifest::TypeDeclaration)
79
- base_type = type_declaration.base_type
80
- type_requires_cast?(base_type)
81
- end
82
- end
83
- end
84
- end
85
- end
86
- end
87
- end