o
    6d                     @   s   d dl mZmZmZmZ dZerd dlZd dlmZ d dl	Z	e	
edZd dlmZ d dlmZmZmZmZmZmZ d dlmZ ejd	d
Zejddd ejddedd ejdeddd ejdeddd dZG dd deZdS )    )absolute_importdivisionprint_functionunicode_literalsFN)ApiNamespaceargparse)CodeBackend)check_route_name_conflictfmt_error_typefmt_funcfmt_objfmt_typefmt_url)Voidzjs-client-backend)progfilenamez[The name to give the single Javascript file that is created and contains all of the routes.)helpz-cz--class-namezThe name of the class the generated functions will be attached to. The name will be added to each function documentation, which makes it available for tools like JSDoc.)typer   z--wrap-response-in z&Wraps the response in a response class)r   defaultr   z--wrap-error-inz!Wraps the error in an error classz<// Auto-generated by Stone, do not modify.
var routes = {};
c                   @   s4   e Zd ZdZeZdZdZdd Zdd Z	dd	 Z
dS )
JavascriptClientBackendzBGenerates a single Javascript file with all of the routes defined.NTc                 C   s   |  | jj4 | t |j D ]}|| _t| |j	D ]
}| 
|j|| qq|   | d W d    d S 1 s>w   Y  d S )Nzexport { routes };)Zoutput_to_relative_pathargsr   Zemit_raw_header
namespacesvaluescur_namespacer	   Zroutes_generate_routeroute_schemaemit)selfapi	namespaceroute r#   oC:\Users\jesus\OneDrive\Desktop\erpjis_fastapi\backend\jisbackend\Lib\site-packages\stone/backends/js_client.pygenerateG   s   

"z JavascriptClientBackend.generatec           	   	   C   s  t |jd |j |j}|   | d |jr%| j| |j| jdd | jj	r4| d
| jj	| |jr<| d d }| jjrNd| jjt|jf }nt|j}|jjtkrc| dt|j  | d	|t|j| jjf  | d
 |jjtkr| d|  n| d|  | jdd\ t|j|j|j}|jrg }|jD ]}|t|j|j  q|jjtkr| d
|d| n"| d
|d| n|jjtkr| d|  n| d|  W d    n1 sw   Y  | d d S )N_z/**z * )prefixz * @function {}#{}z * @deprecatedz%s<%s>z* * @arg {%s} arg - The request parameters.z * @returns {Promise.<%s, %s>}z */zroutes.%s = function (arg) {zroutes.%s = function () {   )Zdentz#return this.request('{}', arg, {});z, z$return this.request('{}', null, {});zreturn this.request("%s", arg);z return this.request("%s", null);z};)r   nameversionr   docZemit_wrapped_textZprocess_doc_docfr   
class_nameformat
deprecatedZwrap_response_inr   Zresult_data_typeZarg_data_type	__class__r   r
   Zerror_data_typeZwrap_error_inindentr   fieldsappendr   attrsjoin)	r   r   r!   r"   Zfunction_namereturn_typeurlZadditional_argsfieldr#   r#   r$   r   U   sr   






z'JavascriptClientBackend._generate_routec                 C   sZ   |dkr+d|v r| dd\}}t|}nd}t| jj||}|t| jjd d S |S )z
        Callback used as the handler argument to process_docs(). This converts
        Stone doc references to JSDoc-friendly annotations.
        r"   :   N)splitintr   r   r)   len)r   tagvalr*   r7   r#   r#   r$   r,      s   
zJavascriptClientBackend._docf)__name__
__module____qualname____doc___cmdline_parserZcmdline_parserr   Zpreserve_aliasesr%   r   r,   r#   r#   r#   r$   r   =   s    6r   )
__future__r   r   r   r   Z_MYPYtypingZstone.irr   	importlibimport_modulestrr   Zstone.backendr   Zstone.backends.js_helpersr	   r
   r   r   r   r   r   ArgumentParserrD   add_argumentr   r   r#   r#   r#   r$   <module>   sF     