Я хочу сгенерировать функцию javascript с именем Publisher
из ReasonML, чтобы я мог использовать ее в других файлах, например:
const publisher = new Publisher("Prasad", "[email protected]", "[email protected]", "rill")
const req = Publisher.toAPI(publisher) // returns {name: "Prasad", email: "[email protected]", team: "[email protected]", service: "rill"}
Для достижения вышеуказанной функциональности я написал код ReasonML в файле с именем Util.re
, который:
type publisher = {
name: string,
emailID: string,
teamEmailID: string,
serviceName: string,
};
type publisherReqBody = {
name: string,
email: string,
team: string,
publisher: string,
};
module Publisher = {
let toAPI = (p: publisher) => {
name: p.name,
email: p.emailID,
team: p.teamEmailID,
publisher: p.serviceName,
};
[@bs.new] external create: unit => publisher = "Publisher";
};
После компиляции из ReasonML в JavaScript с использованием BuckleScript я получил
// Generated by BUCKLESCRIPT, PLEASE EDIT WITH CARE
function toAPI(p) {
return {
name: p.name,
email: p.emailID,
team: p.teamEmailID,
publisher: p.serviceName
};
}
var Publisher = {
toAPI: toAPI
};
export {
Publisher ,
}
Я не уверен, почему строка [@bs.new] external create: unit => publisher = "Publisher";
не работает. Я пытался час, но без толку.
Мой вопрос:
как достичь функциональности, о которой я упоминал в первом фрагменте кода в JavaScript, который скомпилирован из ReasonML
Большое спасибо!