functionalscript 0.0.588 → 0.0.591

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.
@@ -15,7 +15,7 @@ jobs:
15
15
 
16
16
  strategy:
17
17
  matrix:
18
- node-version: [16.x, 18.x, 20.x, 22.x, 23.x]
18
+ node-version: [16, 18, 20, 22, 23]
19
19
  # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
20
20
 
21
21
  steps:
@@ -34,7 +34,7 @@ jobs:
34
34
 
35
35
  strategy:
36
36
  matrix:
37
- deno-version: [1.x, 2.x]
37
+ deno-version: [2]
38
38
 
39
39
  steps:
40
40
  - uses: actions/checkout@v2
@@ -55,7 +55,8 @@ jobs:
55
55
  COM:
56
56
  strategy:
57
57
  matrix:
58
- os: ['ubuntu-latest', 'windows-latest', 'macos-14']
58
+ # https://docs.github.com/en/actions/using-jobs/choosing-the-runner-for-a-job#choosing-github-hosted-runners
59
+ os: ['ubuntu-latest', 'windows-latest', 'macos-latest']
59
60
 
60
61
  runs-on: ${{ matrix.os }}
61
62
 
package/dev/module.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { readdir, readFile, writeFile } from 'node:fs/promises'
1
+ import { readdir, writeFile } from 'node:fs/promises'
2
2
 
3
3
  /**
4
4
  * @typedef {{
@@ -22,36 +22,16 @@ import { readdir, readFile, writeFile } from 'node:fs/promises'
22
22
 
23
23
  /**
24
24
  * @typedef {{
25
- * [k in string]?: MutableModule
26
- * }} MutableDependencyMap
27
- */
28
-
29
- /**
30
- * @typedef {{
31
- * dependencyMap: MutableDependencyMap
32
- * exports?: unknown
33
- * }} MutableModule
34
- */
35
-
36
- /**
37
- * @typedef {{
38
- * readonly dependencyMap: DependencyMap
39
- * readonly exports?: unknown
25
+ * readonly default?: unknown
40
26
  * }} Module
41
27
  */
42
28
 
43
- /**
44
- * @typedef {{
45
- * readonly[k in string]?: Module
46
- * }} DependencyMap
47
- */
48
-
49
29
  /** @typedef {(name: string) => unknown} Require */
50
30
 
51
31
  /**
52
32
  * @typedef {{
53
- * readonly[k in string]: Function
54
- * }} FunctionMap
33
+ * readonly[k in string]: unknown
34
+ * }} UnknownMap
55
35
  */
56
36
 
57
37
  /**
@@ -59,12 +39,12 @@ import { readdir, readFile, writeFile } from 'node:fs/promises'
59
39
  * @typedef {readonly[string, T]} Entry
60
40
  */
61
41
 
62
- /** @type {(a: Entry<Function>, b: Entry<Function>) => number} */
42
+ /** @type {(a: Entry<unknown>, b: Entry<unknown>) => number} */
63
43
  const cmp = ([a], [b]) => a < b ? -1 : a > b ? 1 : 0
64
44
 
65
45
  /**
66
46
  * @typedef {{
67
- * [k in string]: MutableModule
47
+ * [k in string]: Module
68
48
  * }} MutableModuleMap
69
49
  */
70
50
 
@@ -94,9 +74,9 @@ export const env =
94
74
  }
95
75
 
96
76
  export const loadModuleMap = async () => {
97
- /** @type {() => Promise<FunctionMap>} */
77
+ /** @type {() => Promise<UnknownMap>} */
98
78
  const load = async () => {
99
- /** @type {(readonly[string, Function])[]} */
79
+ /** @type {(readonly[string, unknown])[]} */
100
80
  const map = []
101
81
  /** @type {(path: string) => Promise<void>} */
102
82
  const f = async p => {
@@ -107,8 +87,8 @@ export const loadModuleMap = async () => {
107
87
  if (i.isDirectory()) {
108
88
  await f(file)
109
89
  } else if (name.endsWith('.f.cjs')) {
110
- const source = await readFile(file, 'utf8')
111
- map.push([file, Function('module', 'require', `"use strict";${source}`)])
90
+ const source = await import(`../${file}`)
91
+ map.push([file, source.default])
112
92
  }
113
93
  }
114
94
  }
@@ -124,7 +104,7 @@ export const loadModuleMap = async () => {
124
104
  const build = () => {
125
105
  /** @type {MutableModuleMap} */
126
106
  const d = {}
127
- /** @type {(base: readonly string[]) => (k: string) => readonly[string, MutableModule]} */
107
+ /** @type {(base: readonly string[]) => (k: string) => readonly[string, Module]} */
128
108
  const getModule = base => k => {
129
109
  const relativePath = k.split('/')
130
110
  const dif = relativePath.filter(v => v === '..').length
@@ -138,18 +118,8 @@ export const loadModuleMap = async () => {
138
118
  }
139
119
  }
140
120
  {
141
- /** @type {MutableDependencyMap} */
142
- const dependencyMap = {}
143
- /** @type {MutableModule} */
144
- const module = { dependencyMap }
145
- const get = getModule(remove_tail(path)(1))
146
- /** @type {(s: string) => unknown} */
147
- const newReq = s => {
148
- const [p, result] = get(s)
149
- dependencyMap[p] = result
150
- return result.exports
151
- }
152
- map[pathStr](module, newReq)
121
+ /** @type {Module} */
122
+ const module = { default: map[pathStr] }
153
123
  d[pathStr] = module
154
124
  return [pathStr, module]
155
125
  }
@@ -11,8 +11,7 @@ const result = require('../../types/result/module.f.cjs')
11
11
 
12
12
  /**
13
13
  * @typedef {{
14
- * readonly dependencyMap: DependencyMap
15
- * readonly exports?: unknown
14
+ * readonly default?: unknown
16
15
  * }} Module
17
16
  */
18
17
 
@@ -121,7 +120,7 @@ const main = input => {
121
120
  return ([ts, state]) => {
122
121
  if (isTest(k)) {
123
122
  state = log(`testing ${k}`)(state);
124
- [ts, state] = test('| ')(v.exports)([ts, state])
123
+ [ts, state] = test('| ')(v.default)([ts, state])
125
124
  }
126
125
  return [ts, state]
127
126
  }
package/dev/test.mjs CHANGED
@@ -24,7 +24,7 @@ const anyLog = f => s => state => {
24
24
 
25
25
  /** @type {<T>(f: () => T) => Result<T, unknown>} */
26
26
  const tryCatch = f => {
27
- // Side effect: `try catch` is not allowed in FunctionalScript.
27
+ // `try catch` is not allowed in FunctionalScript.
28
28
  try {
29
29
  return ['ok', f()]
30
30
  } catch (e) {
@@ -45,7 +45,7 @@ const main = async() => {
45
45
  const moduleMap = await loadModuleMap()
46
46
 
47
47
  /** @type {any} */
48
- const f = moduleMap['./dev/test/module.f.cjs'].exports
48
+ const f = moduleMap['./dev/test/module.f.cjs'].default
49
49
  const r = f({
50
50
  moduleMap,
51
51
  log: anyLog(console.log),
package/index.f.cjs CHANGED
@@ -1,40 +1,40 @@
1
1
  // Generated file.
2
2
  module.exports = {
3
- types: {
4
- nullable: require("./types/nullable/module.f.cjs"),
5
- array: require("./types/array/module.f.cjs"),
6
- function: require("./types/function/module.f.cjs"),
7
- list: require("./types/list/module.f.cjs"),
8
- btree: require("./types/btree/module.f.cjs"),
9
- string: require("./types/string/module.f.cjs"),
10
- map: require("./types/map/module.f.cjs"),
11
- object: require("./types/object/module.f.cjs"),
12
- bigint: require("./types/bigint/module.f.cjs"),
13
- bigfloat: require("./types/bigfloat/module.f.cjs"),
14
- sorted_list: require("./types/sorted_list/module.f.cjs"),
15
- number: require("./types/number/module.f.cjs"),
16
- range: require("./types/range/module.f.cjs"),
17
- range_map: require("./types/range_map/module.f.cjs"),
18
- result: require("./types/result/module.f.cjs"),
19
- string_set: require("./types/string_set/module.f.cjs"),
20
- sorted_set: require("./types/sorted_set/module.f.cjs"),
21
- byte_set: require("./types/byte_set/module.f.cjs"),
22
- nibble_set: require("./types/nibble_set/module.f.cjs"),
23
- },
24
3
  com: require("./com/module.f.cjs"),
25
- text: require("./text/module.f.cjs"),
26
- json: require("./json/module.f.cjs"),
27
- js: {
28
- tokenizer: require("./js/tokenizer/module.f.cjs"),
29
- },
30
4
  commonjs: require("./commonjs/module.f.cjs"),
31
5
  dev: require("./dev/module.f.cjs"),
32
6
  djs: require("./djs/module.f.cjs"),
33
7
  fsc: require("./fsc/module.f.cjs"),
34
8
  fsm: require("./fsm/module.f.cjs"),
35
9
  html: require("./html/module.f.cjs"),
10
+ js: {
11
+ tokenizer: require("./js/tokenizer/module.f.cjs"),
12
+ },
13
+ json: require("./json/module.f.cjs"),
36
14
  nodejs: require("./nodejs/module.f.cjs"),
37
15
  prime_field: require("./prime_field/module.f.cjs"),
38
16
  secp: require("./secp/module.f.cjs"),
39
17
  sha2: require("./sha2/module.f.cjs"),
18
+ text: require("./text/module.f.cjs"),
19
+ types: {
20
+ array: require("./types/array/module.f.cjs"),
21
+ bigfloat: require("./types/bigfloat/module.f.cjs"),
22
+ bigint: require("./types/bigint/module.f.cjs"),
23
+ btree: require("./types/btree/module.f.cjs"),
24
+ byte_set: require("./types/byte_set/module.f.cjs"),
25
+ function: require("./types/function/module.f.cjs"),
26
+ list: require("./types/list/module.f.cjs"),
27
+ map: require("./types/map/module.f.cjs"),
28
+ nibble_set: require("./types/nibble_set/module.f.cjs"),
29
+ nullable: require("./types/nullable/module.f.cjs"),
30
+ number: require("./types/number/module.f.cjs"),
31
+ object: require("./types/object/module.f.cjs"),
32
+ range: require("./types/range/module.f.cjs"),
33
+ range_map: require("./types/range_map/module.f.cjs"),
34
+ result: require("./types/result/module.f.cjs"),
35
+ sorted_list: require("./types/sorted_list/module.f.cjs"),
36
+ sorted_set: require("./types/sorted_set/module.f.cjs"),
37
+ string: require("./types/string/module.f.cjs"),
38
+ string_set: require("./types/string_set/module.f.cjs"),
39
+ },
40
40
  }
package/issues/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # Issues
2
2
 
3
- 1. [test-debug](./test-debug.md).
4
- 2. [esm](./esm.md)
5
- 3. [publish](publish.md)
3
+ 1. [X] [test-debug](./test-debug.md).
4
+ 2. [ ] [esm](./esm.md)
5
+ 3. [ ] [publish](publish.md)
package/jsr.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@functionalscript/functionalscript",
3
- "version": "0.0.588",
3
+ "version": "0.0.591",
4
4
  "exports": "./index.f.cjs"
5
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "functionalscript",
3
- "version": "0.0.588",
3
+ "version": "0.0.591",
4
4
  "description": "FunctionalScript is a functional subset of JavaScript",
5
5
  "main": "index.f.cjs",
6
6
  "scripts": {