functionalscript 0.0.329 → 0.0.332
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/commonjs/build/index.js +8 -8
- package/commonjs/build/test.js +6 -6
- package/commonjs/module/function/index.js +1 -1
- package/commonjs/module/index.js +1 -1
- package/commonjs/package/dependencies/index.js +2 -2
- package/commonjs/package/dependencies/test.js +1 -1
- package/commonjs/package/index.js +2 -2
- package/commonjs/package/test.js +2 -2
- package/commonjs/path/index.js +3 -6
- package/commonjs/path/test.js +7 -7
- package/io/commonjs/index.js +3 -3
- package/io/commonjs/test.js +2 -2
- package/io/result/index.js +1 -1
- package/json/index.js +4 -4
- package/json/test.js +3 -3
- package/json/tokenizer/index.js +46 -52
- package/json/tokenizer/test.js +8 -8
- package/package.json +1 -1
- package/sha2/index.js +1 -1
- package/sha2/test.js +4 -4
- package/test.js +15 -15
- package/types/array/index.js +2 -2
- package/types/array/test.js +3 -3
- package/types/btree/find/index.js +4 -4
- package/types/btree/find/test.js +7 -7
- package/types/btree/index.js +2 -2
- package/types/btree/remove/index.js +6 -6
- package/types/btree/remove/test.js +6 -6
- package/types/btree/set/index.js +4 -4
- package/types/btree/set/test.js +5 -5
- package/types/btree/test.js +10 -10
- package/types/function/compare/index.js +5 -3
- package/types/function/compare/test.js +1 -1
- package/types/list/index.js +3 -3
- package/types/list/test.js +4 -4
- package/types/map/index.js +8 -8
- package/types/map/test.js +2 -2
- package/types/object/index.js +2 -2
- package/types/object/test.js +1 -1
- package/types/stringSet/index.js +7 -7
- package/types/stringSet/test.js +1 -1
package/README.md
CHANGED
|
@@ -11,6 +11,8 @@ FunctionalScript is a purely functional programming language and a strict subset
|
|
|
11
11
|
|
|
12
12
|
Create a new FunctionalScript repository on GitHub [here](https://github.com/functionalscript/template/generate).
|
|
13
13
|
|
|
14
|
+
Learn more about [FunctionalScript](https://medium.com/@sergeyshandar/purely-functional-programming-in-javascript-91114b1b2dff).
|
|
15
|
+
|
|
14
16
|
## Design Principles
|
|
15
17
|
|
|
16
18
|
In FunctionalScript:
|
package/commonjs/build/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
const package_ = require('../package')
|
|
2
|
-
const module_ = require('../module')
|
|
3
|
-
const function_ = require('../module/function')
|
|
4
|
-
const { todo } = require('../../dev')
|
|
5
|
-
const map = require('../../types/map')
|
|
6
|
-
const object = require('../../types/object')
|
|
7
|
-
const path = require('../path')
|
|
8
|
-
const stringSet = require('../../types/stringSet')
|
|
1
|
+
const package_ = require('../package/index.js')
|
|
2
|
+
const module_ = require('../module/index.js')
|
|
3
|
+
const function_ = require('../module/function/index.js')
|
|
4
|
+
const { todo } = require('../../dev/index.js')
|
|
5
|
+
const map = require('../../types/map/index.js')
|
|
6
|
+
const object = require('../../types/object/index.js')
|
|
7
|
+
const path = require('../path/index.js')
|
|
8
|
+
const stringSet = require('../../types/stringSet/index.js')
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* @template M
|
package/commonjs/build/test.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const _ = require('.')
|
|
2
|
-
const map = require('../../types/map')
|
|
3
|
-
const module_ = require('../module')
|
|
4
|
-
const function_ = require('../module/function')
|
|
5
|
-
const result = require('../../types/result')
|
|
6
|
-
const package_ = require('../package')
|
|
1
|
+
const _ = require('./index.js')
|
|
2
|
+
const map = require('../../types/map/index.js')
|
|
3
|
+
const module_ = require('../module/index.js')
|
|
4
|
+
const function_ = require('../module/function/index.js')
|
|
5
|
+
const result = require('../../types/result/index.js')
|
|
6
|
+
const package_ = require('../package/index.js')
|
|
7
7
|
|
|
8
8
|
/** @type {{ readonly [k in string]?: result.Result<function_.Function_, unknown> }} */
|
|
9
9
|
const compileMap = {
|
package/commonjs/module/index.js
CHANGED
package/commonjs/package/test.js
CHANGED
package/commonjs/path/index.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
const list = require("../../types/list")
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
const { todo } = require("../../dev")
|
|
5
|
-
const package_ = require("../package")
|
|
6
|
-
const module_ = require("../module")
|
|
1
|
+
const list = require("../../types/list/index.js")
|
|
2
|
+
const package_ = require("../package/index.js")
|
|
3
|
+
const module_ = require("../module/index.js")
|
|
7
4
|
|
|
8
5
|
/** @typedef {readonly string[]} Items */
|
|
9
6
|
|
package/commonjs/path/test.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
const _ = require('.')
|
|
2
|
-
const { todo } = require('../../dev')
|
|
3
|
-
const json = require('../../json')
|
|
4
|
-
const { identity } = require('../../types/function')
|
|
5
|
-
const object = require('../../types/object')
|
|
6
|
-
const { at } = require('../../types/object')
|
|
7
|
-
const package_ = require('../package')
|
|
1
|
+
const _ = require('./index.js')
|
|
2
|
+
const { todo } = require('../../dev/index.js')
|
|
3
|
+
const json = require('../../json/index.js')
|
|
4
|
+
const { identity } = require('../../types/function/index.js')
|
|
5
|
+
const object = require('../../types/object/index.js')
|
|
6
|
+
const { at } = require('../../types/object/index.js')
|
|
7
|
+
const package_ = require('../package/index.js')
|
|
8
8
|
|
|
9
9
|
/** @type {(g: json.Unknown|undefined) => string} */
|
|
10
10
|
const stringify = g => {
|
package/io/commonjs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const { tryCatch } = require('../result')
|
|
2
|
-
const { unwrap } = require('../../types/result')
|
|
3
|
-
const moduleFunction = require('../../commonjs/module/function')
|
|
1
|
+
const { tryCatch } = require('../result/index.js')
|
|
2
|
+
const { unwrap } = require('../../types/result/index.js')
|
|
3
|
+
const moduleFunction = require('../../commonjs/module/function/index.js')
|
|
4
4
|
|
|
5
5
|
/** @type {(f: Function) => moduleFunction.Function_} */
|
|
6
6
|
const build = f => immutableRequire => mutableData => {
|
package/io/commonjs/test.js
CHANGED
package/io/result/index.js
CHANGED
package/json/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const seq = require('../types/list')
|
|
2
|
-
const object = require('../types/object')
|
|
3
|
-
const op = require('../types/function/operator')
|
|
4
|
-
const { compose } = require('../types/function')
|
|
1
|
+
const seq = require('../types/list/index.js')
|
|
2
|
+
const object = require('../types/object/index.js')
|
|
3
|
+
const op = require('../types/function/operator/index.js')
|
|
4
|
+
const { compose } = require('../types/function/index.js')
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @typedef {{
|
package/json/test.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const json = require('.')
|
|
2
|
-
const { sort } = require('../types/object')
|
|
3
|
-
const { identity } = require('../types/function')
|
|
1
|
+
const json = require('./index.js')
|
|
2
|
+
const { sort } = require('../types/object/index.js')
|
|
3
|
+
const { identity } = require('../types/function/index.js')
|
|
4
4
|
|
|
5
5
|
if (json.setProperty("Hello")([])({}) !== "Hello") { throw 'error' }
|
|
6
6
|
|
package/json/tokenizer/index.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
const
|
|
2
|
-
const
|
|
3
|
-
const { concat } = require('../../types/list')
|
|
4
|
-
const list = require('../../types/list')
|
|
1
|
+
const operator = require('../../types/function/operator/index.js')
|
|
2
|
+
const list = require('../../types/list/index.js')
|
|
5
3
|
|
|
6
4
|
/**
|
|
7
5
|
* @typedef {{
|
|
@@ -50,7 +48,7 @@ const newLine = 0x0a
|
|
|
50
48
|
const carriageReturn = 0x0d
|
|
51
49
|
const space = 0x20
|
|
52
50
|
|
|
53
|
-
const
|
|
51
|
+
const backslash = 0x5c
|
|
54
52
|
const slash = 0x2f
|
|
55
53
|
const backspace = 0x08
|
|
56
54
|
const formfeed = 0x0c
|
|
@@ -116,21 +114,17 @@ const letterZ = 0x7a
|
|
|
116
114
|
|
|
117
115
|
/** @typedef {{ readonly kind: 'eof'}} EofState */
|
|
118
116
|
|
|
119
|
-
/** @typedef {number|undefined}
|
|
117
|
+
/** @typedef {number|undefined} CharCodeOrEof */
|
|
120
118
|
|
|
121
|
-
/** @type {(old: string) => (input:
|
|
119
|
+
/** @type {(old: string) => (input: CharCodeOrEof) => string} */
|
|
122
120
|
const appendChar = old => input => input === undefined ? old : operator.concat(charToString(input))(old)
|
|
123
121
|
|
|
124
|
-
/** @type {(input:
|
|
122
|
+
/** @type {(input: CharCodeOrEof) => string} */
|
|
125
123
|
const charToString = input => input === undefined ? '' : String.fromCharCode(input)
|
|
126
124
|
|
|
127
|
-
/** @type {(state: InitialState) => (input:
|
|
125
|
+
/** @type {(state: InitialState) => (input: number) => readonly[list.List<JsonToken>, TokenizerState]} */
|
|
128
126
|
const initialStateOp = initialState => input =>
|
|
129
127
|
{
|
|
130
|
-
if (input === undefined)
|
|
131
|
-
{
|
|
132
|
-
return[undefined, {kind: 'eof'}]
|
|
133
|
-
}
|
|
134
128
|
if (input >= digit1 && input <= digit9)
|
|
135
129
|
{
|
|
136
130
|
return [undefined, { kind: 'number', value: charToString(input), numberKind: 'int'}]
|
|
@@ -158,21 +152,9 @@ const initialStateOp = initialState => input =>
|
|
|
158
152
|
}
|
|
159
153
|
}
|
|
160
154
|
|
|
161
|
-
/** @type {(state: ParseNumberState) => (input:
|
|
155
|
+
/** @type {(state: ParseNumberState) => (input: number) => readonly[list.List<JsonToken>, TokenizerState]} */
|
|
162
156
|
const parseNumberStateOp = state => input =>
|
|
163
157
|
{
|
|
164
|
-
if (input === undefined)
|
|
165
|
-
{
|
|
166
|
-
switch (state.numberKind)
|
|
167
|
-
{
|
|
168
|
-
case '-':
|
|
169
|
-
case '.':
|
|
170
|
-
case 'e':
|
|
171
|
-
case 'e+':
|
|
172
|
-
case 'e-': return [[{kind: 'error', message: 'invalid number'}], {kind: 'invalidNumber', }]
|
|
173
|
-
default: return [[{kind: 'number', value: state.value}], {kind: 'eof'}]
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
158
|
if (input === decimalPoint)
|
|
177
159
|
{
|
|
178
160
|
switch (state.numberKind)
|
|
@@ -273,13 +255,9 @@ const isTerminalForNumber = char =>
|
|
|
273
255
|
}
|
|
274
256
|
}
|
|
275
257
|
|
|
276
|
-
/** @type {(state: InvalidNumberState) => (input:
|
|
258
|
+
/** @type {(state: InvalidNumberState) => (input: number) => readonly[list.List<JsonToken>, TokenizerState]} */
|
|
277
259
|
const invalidNumberStateOp = state => input =>
|
|
278
260
|
{
|
|
279
|
-
if (input === undefined)
|
|
280
|
-
{
|
|
281
|
-
return [[{kind: 'error', message: 'invalid number'}], {kind: 'eof'}]
|
|
282
|
-
}
|
|
283
261
|
if (isTerminalForNumber(input))
|
|
284
262
|
{
|
|
285
263
|
const next = tokenizeOp({kind: 'initial'})(input)
|
|
@@ -288,25 +266,24 @@ const invalidNumberStateOp = state => input =>
|
|
|
288
266
|
return [undefined, {kind: 'invalidNumber'}]
|
|
289
267
|
}
|
|
290
268
|
|
|
291
|
-
/** @type {(state: ParseStringState) => (input:
|
|
269
|
+
/** @type {(state: ParseStringState) => (input: number) => readonly[list.List<JsonToken>, TokenizerState]} */
|
|
292
270
|
const parseStringStateOp = state => input =>
|
|
293
271
|
{
|
|
294
272
|
switch(input)
|
|
295
273
|
{
|
|
296
274
|
case quotationMark: return[[{kind: 'string', value: state.value}], {kind: 'initial'}]
|
|
297
|
-
case
|
|
298
|
-
case undefined: return [[{kind: 'error', message: '" are missing'}], {kind: 'eof'}]
|
|
275
|
+
case backslash: return [undefined, {kind:'escapeChar', value: state.value}]
|
|
299
276
|
default: return [undefined, {kind:'string', value: appendChar(state.value)(input)}]
|
|
300
277
|
}
|
|
301
278
|
}
|
|
302
279
|
|
|
303
|
-
/** @type {(state: ParseEscapeCharState) => (input:
|
|
280
|
+
/** @type {(state: ParseEscapeCharState) => (input: number) => readonly[list.List<JsonToken>, TokenizerState]} */
|
|
304
281
|
const parseEscapeCharStateOp = state => input =>
|
|
305
282
|
{
|
|
306
283
|
switch(input)
|
|
307
284
|
{
|
|
308
285
|
case quotationMark:
|
|
309
|
-
case
|
|
286
|
+
case backslash:
|
|
310
287
|
case slash: return [undefined, {kind: 'string', value: appendChar(state.value)(input)}]
|
|
311
288
|
case letterB: return [undefined, {kind: 'string', value: appendChar(state.value)(backspace)}]
|
|
312
289
|
case letterF: return [undefined, {kind: 'string', value: appendChar(state.value)(formfeed)}]
|
|
@@ -314,7 +291,6 @@ const parseEscapeCharStateOp = state => input =>
|
|
|
314
291
|
case letterR: return [undefined, {kind: 'string', value: appendChar(state.value)(carriageReturn)}]
|
|
315
292
|
case letterT: return [undefined, {kind: 'string', value: appendChar(state.value)(horizontalTab)}]
|
|
316
293
|
case letterU: return [undefined, {kind: 'unicodeChar', value: state.value, unicode: 0, hexIndex: 0}]
|
|
317
|
-
case undefined: return [[{kind: 'error', message: '" are missing'}], {kind: 'eof'}]
|
|
318
294
|
default: {
|
|
319
295
|
const next = tokenizeOp({kind: 'string', value: state.value})(input)
|
|
320
296
|
return [{first: {kind: 'error', message: 'unescaped character'}, tail: next[0]}, next[1]]
|
|
@@ -330,13 +306,9 @@ const hexDigitToNumber = hex =>
|
|
|
330
306
|
if (hex >= letterA && hex <= letterF) { return hex - letterA + 10 }
|
|
331
307
|
}
|
|
332
308
|
|
|
333
|
-
/** @type {(state: ParseUnicodeCharState) => (input:
|
|
309
|
+
/** @type {(state: ParseUnicodeCharState) => (input: number) => readonly[list.List<JsonToken>, TokenizerState]} */
|
|
334
310
|
const parseUnicodeCharStateOp = state => input =>
|
|
335
311
|
{
|
|
336
|
-
if (input === undefined)
|
|
337
|
-
{
|
|
338
|
-
return [[{kind: 'error', message: '" are missing'}], {kind: 'eof'}]
|
|
339
|
-
}
|
|
340
312
|
const hexValue = hexDigitToNumber(input)
|
|
341
313
|
if (hexValue === undefined)
|
|
342
314
|
{
|
|
@@ -361,14 +333,9 @@ const stringToKeywordToken = s =>
|
|
|
361
333
|
}
|
|
362
334
|
}
|
|
363
335
|
|
|
364
|
-
/** @type {(state: ParseKeywordState) => (input:
|
|
336
|
+
/** @type {(state: ParseKeywordState) => (input: number) => readonly[list.List<JsonToken>, TokenizerState]} */
|
|
365
337
|
const parseKeyWordStateOp = state => input =>
|
|
366
338
|
{
|
|
367
|
-
if (input === undefined)
|
|
368
|
-
{
|
|
369
|
-
const keyWordToken = stringToKeywordToken(state.value)
|
|
370
|
-
return [[keyWordToken], {kind: 'eof'}]
|
|
371
|
-
}
|
|
372
339
|
if (input >= letterA && input <= letterZ)
|
|
373
340
|
{
|
|
374
341
|
return [undefined, {kind: 'keyword', value: appendChar(state.value)(input)}]
|
|
@@ -378,11 +345,11 @@ const parseKeyWordStateOp = state => input =>
|
|
|
378
345
|
return [{first: keyWordToken, tail: next[0]}, next[1]]
|
|
379
346
|
}
|
|
380
347
|
|
|
381
|
-
/** @type {(state: EofState) => (input:
|
|
348
|
+
/** @type {(state: EofState) => (input: number) => readonly[list.List<JsonToken>, TokenizerState]} */
|
|
382
349
|
const eofStateOp = state => input => [[{kind: 'error', message: 'eof'}], state]
|
|
383
350
|
|
|
384
|
-
/** @type {operator.StateScan<
|
|
385
|
-
const
|
|
351
|
+
/** @type {operator.StateScan<number, TokenizerState, list.List<JsonToken>>} */
|
|
352
|
+
const tokenizeCharCodeOp = state => {
|
|
386
353
|
switch(state.kind)
|
|
387
354
|
{
|
|
388
355
|
case 'initial': return initialStateOp(state)
|
|
@@ -396,7 +363,34 @@ const tokenizeOp = state => {
|
|
|
396
363
|
}
|
|
397
364
|
}
|
|
398
365
|
|
|
399
|
-
/** @type {(
|
|
366
|
+
/** @type {(state: TokenizerState) => readonly[list.List<JsonToken>, TokenizerState]} */
|
|
367
|
+
const tokenizeEofOp = state => {
|
|
368
|
+
switch(state.kind)
|
|
369
|
+
{
|
|
370
|
+
case 'initial': return[undefined, {kind: 'eof'}]
|
|
371
|
+
case 'keyword': return [[stringToKeywordToken(state.value)], {kind: 'eof'}]
|
|
372
|
+
case 'string':
|
|
373
|
+
case 'escapeChar':
|
|
374
|
+
case 'unicodeChar': return [[{kind: 'error', message: '" are missing'}], {kind: 'eof'}]
|
|
375
|
+
case 'invalidNumber': return [[{kind: 'error', message: 'invalid number'}], {kind: 'eof'}]
|
|
376
|
+
case 'number':
|
|
377
|
+
switch (state.numberKind)
|
|
378
|
+
{
|
|
379
|
+
case '-':
|
|
380
|
+
case '.':
|
|
381
|
+
case 'e':
|
|
382
|
+
case 'e+':
|
|
383
|
+
case 'e-': return [[{kind: 'error', message: 'invalid number'}], {kind: 'invalidNumber', }]
|
|
384
|
+
default: return [[{kind: 'number', value: state.value}], {kind: 'eof'}]
|
|
385
|
+
}
|
|
386
|
+
case 'eof': return [[{kind: 'error', message: 'eof'}], state]
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
/** @type {operator.StateScan<CharCodeOrEof, TokenizerState, list.List<JsonToken>>} */
|
|
391
|
+
const tokenizeOp = state => input => input === undefined ? tokenizeEofOp(state) : tokenizeCharCodeOp(state)(input)
|
|
392
|
+
|
|
393
|
+
/** @type {(input: list.List<CharCodeOrEof>) => list.List<JsonToken>} */
|
|
400
394
|
const tokenize = input => list.flat(list.stateScan(tokenizeOp)({kind: 'initial'})(input))
|
|
401
395
|
|
|
402
396
|
module.exports = {
|
package/json/tokenizer/test.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
const tokenizer = require('.')
|
|
2
|
-
const list = require('../../types/list')
|
|
3
|
-
const json = require('
|
|
4
|
-
const { sort } = require('../../types/object')
|
|
1
|
+
const tokenizer = require('./index.js')
|
|
2
|
+
const list = require('../../types/list/index.js')
|
|
3
|
+
const json = require('../index.js')
|
|
4
|
+
const { sort } = require('../../types/object/index.js')
|
|
5
5
|
|
|
6
|
-
/** @type {(s: string) => list.List<tokenizer.
|
|
6
|
+
/** @type {(s: string) => list.List<tokenizer.CharCodeOrEof>} */
|
|
7
7
|
const toCharacters = s =>
|
|
8
8
|
{
|
|
9
|
-
/** @type {list.List<tokenizer.
|
|
9
|
+
/** @type {list.List<tokenizer.CharCodeOrEof>} */
|
|
10
10
|
const charCodes = list.toCharCodes(s)
|
|
11
11
|
return list.concat(charCodes)([undefined])
|
|
12
|
-
}
|
|
12
|
+
}
|
|
13
13
|
|
|
14
14
|
/** @type {(s: string) => readonly tokenizer.JsonToken[]} */
|
|
15
15
|
const tokenizeString = s =>
|
|
16
|
-
{
|
|
16
|
+
{
|
|
17
17
|
const characters = toCharacters(s)
|
|
18
18
|
return list.toArray(tokenizer.tokenize(characters))
|
|
19
19
|
}
|
package/package.json
CHANGED
package/sha2/index.js
CHANGED
package/sha2/test.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const _ = require('.')
|
|
2
|
-
const json = require('../json')
|
|
3
|
-
const { sort } = require('../types/object')
|
|
4
|
-
const list = require('../types/list')
|
|
1
|
+
const _ = require('./index.js')
|
|
2
|
+
const json = require('../json/index.js')
|
|
3
|
+
const { sort } = require('../types/object/index.js')
|
|
4
|
+
const list = require('../types/list/index.js')
|
|
5
5
|
|
|
6
6
|
/** @type {(a: number) => number} */
|
|
7
7
|
const toU32 = x => (x + 0x1_0000_0000) % 0x1_0000_0000
|
package/test.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
const i = require('./')
|
|
1
|
+
const i = require('./index.js')
|
|
2
2
|
|
|
3
|
-
require('./types/list/test')
|
|
4
|
-
require('./types/array/test')
|
|
5
|
-
require('./types/btree/test')
|
|
6
|
-
require('./sha2/test')
|
|
7
|
-
require('./json/test')
|
|
8
|
-
require('./json/tokenizer/test')
|
|
9
|
-
require('./types/object/test')
|
|
10
|
-
require('./io/commonjs/test')
|
|
11
|
-
require('./commonjs/package/dependencies/test')
|
|
12
|
-
require('./commonjs/package/test')
|
|
13
|
-
require('./commonjs/path/test')
|
|
14
|
-
require('./types/function/compare/test')
|
|
15
|
-
require('./types/stringSet/test')
|
|
16
|
-
require('./commonjs/build/test')
|
|
3
|
+
require('./types/list/test.js')
|
|
4
|
+
require('./types/array/test.js')
|
|
5
|
+
require('./types/btree/test.js')
|
|
6
|
+
require('./sha2/test.js')
|
|
7
|
+
require('./json/test.js')
|
|
8
|
+
require('./json/tokenizer/test.js')
|
|
9
|
+
require('./types/object/test.js')
|
|
10
|
+
require('./io/commonjs/test.js')
|
|
11
|
+
require('./commonjs/package/dependencies/test.js')
|
|
12
|
+
require('./commonjs/package/test.js')
|
|
13
|
+
require('./commonjs/path/test.js')
|
|
14
|
+
require('./types/function/compare/test.js')
|
|
15
|
+
require('./types/stringSet/test.js')
|
|
16
|
+
require('./commonjs/build/test.js')
|
|
17
17
|
|
|
18
18
|
/** @type {() => never} */
|
|
19
19
|
const assert = () => { throw 'assert' }
|
package/types/array/index.js
CHANGED
package/types/array/test.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const _ = require('.')
|
|
2
|
-
const json = require('../../json')
|
|
3
|
-
const { sort } = require('../object')
|
|
1
|
+
const _ = require('./index.js')
|
|
2
|
+
const json = require('../../json/index.js')
|
|
3
|
+
const { sort } = require('../object/index.js')
|
|
4
4
|
|
|
5
5
|
/** @type {(a: readonly json.Unknown[]) => string} */
|
|
6
6
|
const stringify = a => json.stringify(sort)(a)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const _ = require('
|
|
2
|
-
const list = require('../../list')
|
|
3
|
-
const cmp = require('../../function/compare')
|
|
4
|
-
const array = require('../../array')
|
|
1
|
+
const _ = require('../index.js')
|
|
2
|
+
const list = require('../../list/index.js')
|
|
3
|
+
const cmp = require('../../function/compare/index.js')
|
|
4
|
+
const array = require('../../array/index.js')
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @template T
|
package/types/btree/find/test.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
const _ = require('.')
|
|
2
|
-
const list = require('../../list')
|
|
3
|
-
const json = require('../../../json')
|
|
4
|
-
const { sort } = require('../../object')
|
|
5
|
-
const btree = require('
|
|
6
|
-
const { stringCmp } = require('../../function/compare')
|
|
7
|
-
const s = require('../set')
|
|
1
|
+
const _ = require('./index.js')
|
|
2
|
+
const list = require('../../list/index.js')
|
|
3
|
+
const json = require('../../../json/index.js')
|
|
4
|
+
const { sort } = require('../../object/index.js')
|
|
5
|
+
const btree = require('../index.js')
|
|
6
|
+
const { stringCmp } = require('../../function/compare/index.js')
|
|
7
|
+
const s = require('../set/index.js')
|
|
8
8
|
|
|
9
9
|
const jsonStr = json.stringify(sort)
|
|
10
10
|
|
package/types/btree/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const _ = require('
|
|
2
|
-
const cmp = require('../../function/compare')
|
|
3
|
-
const find = require('../find')
|
|
4
|
-
const list = require('../../list')
|
|
5
|
-
const array = require('../../array')
|
|
6
|
-
const option = require('../../option')
|
|
1
|
+
const _ = require('../index.js')
|
|
2
|
+
const cmp = require('../../function/compare/index.js')
|
|
3
|
+
const find = require('../find/index.js')
|
|
4
|
+
const list = require('../../list/index.js')
|
|
5
|
+
const array = require('../../array/index.js')
|
|
6
|
+
const option = require('../../option/index.js')
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* @template T
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const _ = require('.')
|
|
2
|
-
const btree = require('
|
|
3
|
-
const s = require('../set')
|
|
4
|
-
const { stringCmp } = require('../../function/compare')
|
|
5
|
-
const json = require('../../../json')
|
|
6
|
-
const { sort } = require('../../object')
|
|
1
|
+
const _ = require('./index.js')
|
|
2
|
+
const btree = require('../index.js')
|
|
3
|
+
const s = require('../set/index.js')
|
|
4
|
+
const { stringCmp } = require('../../function/compare/index.js')
|
|
5
|
+
const json = require('../../../json/index.js')
|
|
6
|
+
const { sort } = require('../../object/index.js')
|
|
7
7
|
|
|
8
8
|
/** @type {(node: btree.Node<string>) => (value: string) => btree.Node<string>} */
|
|
9
9
|
const set = node => value => s.set(stringCmp(value))(value)(node)
|
package/types/btree/set/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const _ = require('
|
|
2
|
-
const find = require('../find')
|
|
3
|
-
const cmp = require('../../function/compare')
|
|
4
|
-
const list = require('../../list')
|
|
1
|
+
const _ = require('../index.js')
|
|
2
|
+
const find = require('../find/index.js')
|
|
3
|
+
const cmp = require('../../function/compare/index.js')
|
|
4
|
+
const list = require('../../list/index.js')
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @template T
|
package/types/btree/set/test.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const _ = require('.')
|
|
2
|
-
const btree = require('
|
|
3
|
-
const { stringCmp } = require('../../function/compare')
|
|
4
|
-
const json = require('../../../json')
|
|
5
|
-
const { sort } = require('../../object')
|
|
1
|
+
const _ = require('./index.js')
|
|
2
|
+
const btree = require('../index.js')
|
|
3
|
+
const { stringCmp } = require('../../function/compare/index.js')
|
|
4
|
+
const json = require('../../../json/index.js')
|
|
5
|
+
const { sort } = require('../../object/index.js')
|
|
6
6
|
|
|
7
7
|
/** @type {(node: btree.Node<string>) => (value: string) => btree.Node<string>} */
|
|
8
8
|
const set = node => value => _.set(stringCmp(value))(value)(node)
|
package/types/btree/test.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
const btree = require('.')
|
|
1
|
+
const btree = require('./index.js')
|
|
2
2
|
const { values } = btree
|
|
3
|
-
const json = require('../../json')
|
|
4
|
-
const { sort } = require('../object')
|
|
5
|
-
const { stringCmp } = require('../function/compare')
|
|
6
|
-
const list = require('../list')
|
|
7
|
-
const s = require('./set')
|
|
8
|
-
const f = require('./find')
|
|
3
|
+
const json = require('../../json/index.js')
|
|
4
|
+
const { sort } = require('../object/index.js')
|
|
5
|
+
const { stringCmp } = require('../function/compare/index.js')
|
|
6
|
+
const list = require('../list/index.js')
|
|
7
|
+
const s = require('./set/index.js')
|
|
8
|
+
const f = require('./find/index.js')
|
|
9
9
|
|
|
10
|
-
require('./find/test')
|
|
11
|
-
require('./set/test')
|
|
12
|
-
require('./remove/test')
|
|
10
|
+
require('./find/test.js')
|
|
11
|
+
require('./set/test.js')
|
|
12
|
+
require('./remove/test.js')
|
|
13
13
|
|
|
14
14
|
const jsonStr = json.stringify(sort)
|
|
15
15
|
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const array = require('../../array/index.js')
|
|
2
|
+
|
|
3
|
+
/** @typedef {array.Index3} Index3 */
|
|
4
|
+
/** @typedef {array.Index5} Index5 */
|
|
3
5
|
|
|
4
6
|
/**
|
|
5
7
|
* @template T
|
|
6
|
-
* @typedef {
|
|
8
|
+
* @typedef {array.Array2<T>} Array2
|
|
7
9
|
*/
|
|
8
10
|
|
|
9
11
|
/** @typedef {-1|0|1} Sign */
|
package/types/list/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const { compose, identity } = require('../function')
|
|
2
|
-
const operator = require('../function/operator')
|
|
3
|
-
const { logicalNot, strictEqual, stateScanToScan, reduceToScan, foldToScan } = require('../function/operator')
|
|
1
|
+
const { compose, identity } = require('../function/index.js')
|
|
2
|
+
const operator = require('../function/operator/index.js')
|
|
3
|
+
const { logicalNot, strictEqual, stateScanToScan, reduceToScan, foldToScan } = require('../function/operator/index.js')
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* @template T
|
package/types/list/test.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const _ = require('.')
|
|
2
|
-
const json = require('../../json')
|
|
3
|
-
const { sort } = require('../object')
|
|
4
|
-
const { addition, strictEqual, foldToScan } = require('../function/operator')
|
|
1
|
+
const _ = require('./index.js')
|
|
2
|
+
const json = require('../../json/index.js')
|
|
3
|
+
const { sort } = require('../object/index.js')
|
|
4
|
+
const { addition, strictEqual, foldToScan } = require('../function/operator/index.js')
|
|
5
5
|
|
|
6
6
|
/** @type {(sequence: _.List<json.Unknown>) => string} */
|
|
7
7
|
const stringify = sequence => json.stringify(sort)(_.toArray(sequence))
|
package/types/map/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
const btree = require('../btree')
|
|
2
|
-
const { values } = require("../btree")
|
|
3
|
-
const find = require('../btree/find')
|
|
4
|
-
const s = require('../btree/set')
|
|
5
|
-
const compare = require('../function/compare')
|
|
6
|
-
const { stringCmp } = require('../function/compare')
|
|
7
|
-
const list = require('../list')
|
|
8
|
-
const btRemove = require('../btree/remove')
|
|
1
|
+
const btree = require('../btree/index.js')
|
|
2
|
+
const { values } = require("../btree/index.js")
|
|
3
|
+
const find = require('../btree/find/index.js')
|
|
4
|
+
const s = require('../btree/set/index.js')
|
|
5
|
+
const compare = require('../function/compare/index.js')
|
|
6
|
+
const { stringCmp } = require('../function/compare/index.js')
|
|
7
|
+
const list = require('../list/index.js')
|
|
8
|
+
const btRemove = require('../btree/remove/index.js')
|
|
9
9
|
|
|
10
10
|
/** @typedef {compare.Sign} Sign */
|
|
11
11
|
|
package/types/map/test.js
CHANGED
package/types/object/index.js
CHANGED
package/types/object/test.js
CHANGED
package/types/stringSet/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
const btree = require('../btree')
|
|
2
|
-
const find = require('../btree/find')
|
|
3
|
-
const btSet = require('../btree/set')
|
|
4
|
-
const btRemove = require('../btree/remove')
|
|
5
|
-
const { stringCmp } = require("../function/compare")
|
|
6
|
-
const list = require('../list')
|
|
7
|
-
const { compose } = require('../function')
|
|
1
|
+
const btree = require('../btree/index.js')
|
|
2
|
+
const find = require('../btree/find/index.js')
|
|
3
|
+
const btSet = require('../btree/set/index.js')
|
|
4
|
+
const btRemove = require('../btree/remove/index.js')
|
|
5
|
+
const { stringCmp } = require("../function/compare/index.js")
|
|
6
|
+
const list = require('../list/index.js')
|
|
7
|
+
const { compose } = require('../function/index.js')
|
|
8
8
|
|
|
9
9
|
/** @typedef {btree.Tree<string>} StringSet */
|
|
10
10
|
|
package/types/stringSet/test.js
CHANGED