版博士V2.0程序
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 
 

284 řádky
7.4 KiB

  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.endsWith = exports.startsWith = exports.includes = exports.split = exports.size = exports.isEmpty = exports.slice = exports.trimRight = exports.trimLeft = exports.trim = exports.replace = exports.toLowerCase = exports.toUpperCase = exports.isString = exports.Show = exports.Ord = exports.Monoid = exports.empty = exports.Semigroup = exports.Eq = void 0;
  4. var ReadonlyNonEmptyArray_1 = require("./ReadonlyNonEmptyArray");
  5. // -------------------------------------------------------------------------------------
  6. // instances
  7. // -------------------------------------------------------------------------------------
  8. /**
  9. * @example
  10. * import * as S from 'fp-ts/string'
  11. *
  12. * assert.deepStrictEqual(S.Eq.equals('a', 'a'), true)
  13. * assert.deepStrictEqual(S.Eq.equals('a', 'b'), false)
  14. *
  15. * @category instances
  16. * @since 2.10.0
  17. */
  18. exports.Eq = {
  19. equals: function (first, second) { return first === second; }
  20. };
  21. /**
  22. * `string` semigroup under concatenation.
  23. *
  24. * @example
  25. * import * as S from 'fp-ts/string'
  26. *
  27. * assert.deepStrictEqual(S.Semigroup.concat('a', 'b'), 'ab')
  28. *
  29. * @category instances
  30. * @since 2.10.0
  31. */
  32. exports.Semigroup = {
  33. concat: function (first, second) { return first + second; }
  34. };
  35. /**
  36. * An empty `string`.
  37. *
  38. * @since 2.10.0
  39. */
  40. exports.empty = '';
  41. /**
  42. * `string` monoid under concatenation.
  43. *
  44. * The `empty` value is `''`.
  45. *
  46. * @example
  47. * import * as S from 'fp-ts/string'
  48. *
  49. * assert.deepStrictEqual(S.Monoid.concat('a', 'b'), 'ab')
  50. * assert.deepStrictEqual(S.Monoid.concat('a', S.Monoid.empty), 'a')
  51. *
  52. * @category instances
  53. * @since 2.10.0
  54. */
  55. exports.Monoid = {
  56. concat: exports.Semigroup.concat,
  57. empty: exports.empty
  58. };
  59. /**
  60. * @example
  61. * import * as S from 'fp-ts/string'
  62. *
  63. * assert.deepStrictEqual(S.Ord.compare('a', 'a'), 0)
  64. * assert.deepStrictEqual(S.Ord.compare('a', 'b'), -1)
  65. * assert.deepStrictEqual(S.Ord.compare('b', 'a'), 1)
  66. *
  67. * @category instances
  68. * @since 2.10.0
  69. */
  70. exports.Ord = {
  71. equals: exports.Eq.equals,
  72. compare: function (first, second) { return (first < second ? -1 : first > second ? 1 : 0); }
  73. };
  74. /**
  75. * @example
  76. * import * as S from 'fp-ts/string'
  77. *
  78. * assert.deepStrictEqual(S.Show.show('a'), '"a"')
  79. *
  80. * @category instances
  81. * @since 2.10.0
  82. */
  83. exports.Show = {
  84. show: function (s) { return JSON.stringify(s); }
  85. };
  86. // -------------------------------------------------------------------------------------
  87. // refinements
  88. // -------------------------------------------------------------------------------------
  89. /**
  90. * @example
  91. * import * as S from 'fp-ts/string'
  92. *
  93. * assert.deepStrictEqual(S.isString('a'), true)
  94. * assert.deepStrictEqual(S.isString(1), false)
  95. *
  96. * @category refinements
  97. * @since 2.11.0
  98. */
  99. var isString = function (u) { return typeof u === 'string'; };
  100. exports.isString = isString;
  101. // -------------------------------------------------------------------------------------
  102. // combinators
  103. // -------------------------------------------------------------------------------------
  104. /**
  105. * @example
  106. * import * as S from 'fp-ts/string'
  107. * import { pipe } from 'fp-ts/function'
  108. *
  109. * assert.deepStrictEqual(pipe('a', S.toUpperCase), 'A')
  110. *
  111. * @since 2.11.0
  112. */
  113. var toUpperCase = function (s) { return s.toUpperCase(); };
  114. exports.toUpperCase = toUpperCase;
  115. /**
  116. * @example
  117. * import * as S from 'fp-ts/string'
  118. * import { pipe } from 'fp-ts/function'
  119. *
  120. * assert.deepStrictEqual(pipe('A', S.toLowerCase), 'a')
  121. *
  122. * @since 2.11.0
  123. */
  124. var toLowerCase = function (s) { return s.toLowerCase(); };
  125. exports.toLowerCase = toLowerCase;
  126. /**
  127. * @example
  128. * import * as S from 'fp-ts/string'
  129. * import { pipe } from 'fp-ts/function'
  130. *
  131. * assert.deepStrictEqual(pipe('abc', S.replace('b', 'd')), 'adc')
  132. *
  133. * @since 2.11.0
  134. */
  135. var replace = function (searchValue, replaceValue) {
  136. return function (s) {
  137. return s.replace(searchValue, replaceValue);
  138. };
  139. };
  140. exports.replace = replace;
  141. /**
  142. * @example
  143. * import * as S from 'fp-ts/string'
  144. * import { pipe } from 'fp-ts/function'
  145. *
  146. * assert.deepStrictEqual(pipe(' a ', S.trim), 'a')
  147. *
  148. * @since 2.11.0
  149. */
  150. var trim = function (s) { return s.trim(); };
  151. exports.trim = trim;
  152. /**
  153. * @example
  154. * import * as S from 'fp-ts/string'
  155. * import { pipe } from 'fp-ts/function'
  156. *
  157. * assert.deepStrictEqual(pipe(' a ', S.trimLeft), 'a ')
  158. *
  159. * @since 2.11.0
  160. */
  161. var trimLeft = function (s) { return s.trimLeft(); };
  162. exports.trimLeft = trimLeft;
  163. /**
  164. * @example
  165. * import * as S from 'fp-ts/string'
  166. * import { pipe } from 'fp-ts/function'
  167. *
  168. * assert.deepStrictEqual(pipe(' a ', S.trimRight), ' a')
  169. *
  170. * @since 2.11.0
  171. */
  172. var trimRight = function (s) { return s.trimRight(); };
  173. exports.trimRight = trimRight;
  174. /**
  175. * @example
  176. * import * as S from 'fp-ts/string'
  177. * import { pipe } from 'fp-ts/function'
  178. *
  179. * assert.deepStrictEqual(pipe('abcd', S.slice(1, 3)), 'bc')
  180. *
  181. * @since 2.11.0
  182. */
  183. var slice = function (start, end) {
  184. return function (s) {
  185. return s.slice(start, end);
  186. };
  187. };
  188. exports.slice = slice;
  189. // -------------------------------------------------------------------------------------
  190. // utils
  191. // -------------------------------------------------------------------------------------
  192. /**
  193. * Test whether a `string` is empty.
  194. *
  195. * @example
  196. * import * as S from 'fp-ts/string'
  197. * import { pipe } from 'fp-ts/function'
  198. *
  199. * assert.deepStrictEqual(pipe('', S.isEmpty), true)
  200. * assert.deepStrictEqual(pipe('a', S.isEmpty), false)
  201. *
  202. * @since 2.10.0
  203. */
  204. var isEmpty = function (s) { return s.length === 0; };
  205. exports.isEmpty = isEmpty;
  206. /**
  207. * Calculate the number of characters in a `string`.
  208. *
  209. * @example
  210. * import * as S from 'fp-ts/string'
  211. * import { pipe } from 'fp-ts/function'
  212. *
  213. * assert.deepStrictEqual(pipe('abc', S.size), 3)
  214. *
  215. * @since 2.10.0
  216. */
  217. var size = function (s) { return s.length; };
  218. exports.size = size;
  219. /**
  220. * @example
  221. * import * as S from 'fp-ts/string'
  222. * import { pipe } from 'fp-ts/function'
  223. *
  224. * assert.deepStrictEqual(pipe('abc', S.split('')), ['a', 'b', 'c'])
  225. * assert.deepStrictEqual(pipe('', S.split('')), [''])
  226. *
  227. * @since 2.11.0
  228. */
  229. var split = function (separator) {
  230. return function (s) {
  231. var out = s.split(separator);
  232. return (0, ReadonlyNonEmptyArray_1.isNonEmpty)(out) ? out : [s];
  233. };
  234. };
  235. exports.split = split;
  236. /**
  237. * @example
  238. * import * as S from 'fp-ts/string'
  239. * import { pipe } from 'fp-ts/function'
  240. *
  241. * assert.deepStrictEqual(pipe('abc', S.includes('b')), true)
  242. * assert.deepStrictEqual(pipe('abc', S.includes('d')), false)
  243. *
  244. * @since 2.11.0
  245. */
  246. var includes = function (searchString, position) {
  247. return function (s) {
  248. return s.includes(searchString, position);
  249. };
  250. };
  251. exports.includes = includes;
  252. /**
  253. * @example
  254. * import * as S from 'fp-ts/string'
  255. * import { pipe } from 'fp-ts/function'
  256. *
  257. * assert.deepStrictEqual(pipe('abc', S.startsWith('a')), true)
  258. * assert.deepStrictEqual(pipe('bc', S.startsWith('a')), false)
  259. *
  260. * @since 2.11.0
  261. */
  262. var startsWith = function (searchString, position) {
  263. return function (s) {
  264. return s.startsWith(searchString, position);
  265. };
  266. };
  267. exports.startsWith = startsWith;
  268. /**
  269. * @example
  270. * import * as S from 'fp-ts/string'
  271. * import { pipe } from 'fp-ts/function'
  272. *
  273. * assert.deepStrictEqual(pipe('abc', S.endsWith('c')), true)
  274. * assert.deepStrictEqual(pipe('ab', S.endsWith('c')), false)
  275. *
  276. * @since 2.11.0
  277. */
  278. var endsWith = function (searchString, position) {
  279. return function (s) {
  280. return s.endsWith(searchString, position);
  281. };
  282. };
  283. exports.endsWith = endsWith;