Class: JSRailsRoutes::Language::TypeScript
- Inherits:
-
JavaScript
- Object
- Base
- JavaScript
- JSRailsRoutes::Language::TypeScript
- Defined in:
- lib/js_rails_routes/language/typescript.rb
Constant Summary collapse
- PROCESS_FUNC =
<<~TYPESCRIPT type Value = string | number type Params<Keys extends string> = { [key in Keys]: Value } & Record<string, Value> function process(route: string, params: Record<string, Value> | undefined, keys: string[]): string { if (!params) return route var query: string[] = []; for (var param in params) if (params.hasOwnProperty(param)) { if (keys.indexOf(param) === -1) { query.push(param + "=" + encodeURIComponent(params[param].toString())); } } return query.length ? route + "?" + query.join("&") : route; } TYPESCRIPT
Instance Method Summary collapse
Methods inherited from JavaScript
Methods inherited from Base
Instance Method Details
#ext ⇒ Object
Note:
Implementation for Base#ext
34 35 36 |
# File 'lib/js_rails_routes/language/typescript.rb', line 34 def ext 'ts' end |
#handle_route(route) ⇒ String
26 27 28 29 30 31 |
# File 'lib/js_rails_routes/language/typescript.rb', line 26 def handle_route(route) path, keys = parse(route.path) name = function_name(route.name) params = keys.empty? ? 'params?: Record<string, Value>' : "params: Params<#{keys.join(' | ')}>" "export function #{name}(#{params}) { return process('#{path}', params, [#{keys.join(',')}]); }" end |