Я новичок в Purescript. Я ищу клиента OAuth и нашел этот .
Я не уверен, как это сделать, но это то, что я пытался.
Я скопировал исходный код в соответствии с первым проектом, созданным в соответствии с руководством по началу работы.
Первая ошибка, когда я pulp build
был
Error 1 of 3:
at src\Network\OAuth.purs:138:1 - 138:1 (line 138, column 1 - line 138, column 1)
Unable to parse module:
expecting indentation past column 1
, который я исправил, закомментировав незаконченный токен ByAuthorizationToken , верно?
Но тогда я получаю
Error 1 of 3:
at src\Network\OAuth.purs:228:3 - 228:3 (line 228, column 3 - line 228, column 3)
Unable to parse module:
unexpected {
expecting data constructor name
Как мне исправить следующий код (при условии, что все, что я делал до сих пор, в порядке ... чего я тоже не знаю)?
data TokenEndpointSuccessResponse a =
{ access_token :: a -- See 7.1: Access Token Types
, token_type :: AccessTokenType
, expires_in :: Maybe Seconds -- recommended
, refresh_token :: Maybe RefreshToken
, scope :: Maybe AccessScope
}
Я просматривал документацию для типов и синтаксиса , и я не мог сразу определить ошибку (, за исключением того, что я пишу в следующем ). В частности, кажется правильным определение записи, согласно правилу языка
Записи PureScript соответствуют объектам JavaScript. Они могут иметь
ноль или более именованных полей, каждое со своими собственными типами. Например: {name :: String, greet :: String -> String }
соответствует
JavaScript-объект с точно двумя полями: name
, который является String
,
и greet
, которая является функцией, которая принимает String
и возвращает
String
.
Итак, я выполнил эксперимент, добавив пару строк перед ошибкой, которые являются экстраполяцией документации для ключевого слова data
и другого вопроса о типе записи
data Foo a = Foo | Bar a
type ThreeStringProps = {prop1:: string, prop2:: string, prop3:: string}
и обе вышеуказанные строки компилируются нормально, а также следующие
type Foo a = {foo :: Foo | bar :: Bar a}
так что, думаю, мне нужно заменить data
на type
, но имеет ли это смысл? Кажется, работает следующее исправление (но у меня есть другие ошибки в других файлах кода из github ...)
type TokenEndpointSuccessResponse a = { access_token :: a -- See 7.1: Access Token Types
, token_type :: AccessTokenType
, expires_in :: Maybe Seconds -- recommended
, refresh_token :: Maybe RefreshToken
, scope :: Maybe AccessScope
}
В любом случае, я на правильном пути (для реализации клиента OAuth в Purescript)?