goscript 0.0.29 → 0.0.31
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/compiler/compiler.go +8 -1
- package/compiler/index.ts +1 -1
- package/compiler/stmt-assign.go +14 -0
- package/dist/compiler/index.js +1 -1
- package/dist/compiler/index.js.map +1 -1
- package/dist/gs/builtin/channel.d.ts +6 -6
- package/dist/gs/builtin/channel.js +3 -3
- package/dist/gs/builtin/channel.js.map +1 -1
- package/dist/gs/builtin/slice.js +3 -9
- package/dist/gs/builtin/slice.js.map +1 -1
- package/dist/gs/context/context.js +2 -2
- package/dist/gs/context/context.js.map +1 -1
- package/dist/gs/internal/oserror/errors.d.ts +1 -1
- package/dist/gs/internal/oserror/errors.js +6 -6
- package/dist/gs/internal/oserror/index.d.ts +1 -1
- package/dist/gs/internal/oserror/index.js +1 -1
- package/dist/gs/internal/oserror/index.js.map +1 -1
- package/dist/gs/io/fs/format.d.ts +1 -1
- package/dist/gs/io/fs/format.js +12 -12
- package/dist/gs/io/fs/format.js.map +1 -1
- package/dist/gs/io/fs/fs.d.ts +2 -2
- package/dist/gs/io/fs/fs.js +258 -36
- package/dist/gs/io/fs/fs.js.map +1 -1
- package/dist/gs/io/fs/glob.d.ts +2 -2
- package/dist/gs/io/fs/glob.js +40 -14
- package/dist/gs/io/fs/glob.js.map +1 -1
- package/dist/gs/io/fs/index.d.ts +8 -8
- package/dist/gs/io/fs/index.js +8 -8
- package/dist/gs/io/fs/readdir.d.ts +2 -2
- package/dist/gs/io/fs/readdir.js +78 -9
- package/dist/gs/io/fs/readdir.js.map +1 -1
- package/dist/gs/io/fs/readfile.d.ts +2 -2
- package/dist/gs/io/fs/readfile.js +31 -13
- package/dist/gs/io/fs/readfile.js.map +1 -1
- package/dist/gs/io/fs/stat.d.ts +2 -2
- package/dist/gs/io/fs/stat.js +25 -2
- package/dist/gs/io/fs/stat.js.map +1 -1
- package/dist/gs/io/fs/sub.d.ts +2 -2
- package/dist/gs/io/fs/sub.js +264 -28
- package/dist/gs/io/fs/sub.js.map +1 -1
- package/dist/gs/io/fs/walk.d.ts +2 -2
- package/dist/gs/io/fs/walk.js +7 -7
- package/dist/gs/io/fs/walk.js.map +1 -1
- package/dist/gs/iter/iter.js +1 -1
- package/dist/gs/iter/iter.js.map +1 -1
- package/dist/gs/path/index.d.ts +2 -2
- package/dist/gs/path/index.js +2 -2
- package/dist/gs/path/match.d.ts +1 -1
- package/dist/gs/path/match.js +39 -33
- package/dist/gs/path/match.js.map +1 -1
- package/dist/gs/path/path.js +53 -24
- package/dist/gs/path/path.js.map +1 -1
- package/dist/gs/runtime/runtime.d.ts +3 -3
- package/dist/gs/runtime/runtime.js +3 -3
- package/dist/gs/runtime/runtime.js.map +1 -1
- package/dist/gs/strings/builder.d.ts +1 -1
- package/dist/gs/strings/builder.js +1 -1
- package/dist/gs/strings/builder.js.map +1 -1
- package/dist/gs/strings/clone.js.map +1 -1
- package/dist/gs/strings/compare.js.map +1 -1
- package/dist/gs/strings/replace.js +4 -2
- package/dist/gs/strings/replace.js.map +1 -1
- package/dist/gs/strings/strings.js +0 -12
- package/dist/gs/strings/strings.js.map +1 -1
- package/dist/gs/sync/sync.d.ts +5 -5
- package/dist/gs/sync/sync.js +5 -5
- package/dist/gs/sync/sync.js.map +1 -1
- package/dist/gs/time/time.d.ts +2 -2
- package/dist/gs/time/time.js +62 -16
- package/dist/gs/time/time.js.map +1 -1
- package/dist/gs/unsafe/unsafe.d.ts +8 -8
- package/dist/gs/unsafe/unsafe.js +8 -8
- package/dist/gs/unsafe/unsafe.js.map +1 -1
- package/gs/builtin/builtin.ts +1 -1
- package/gs/builtin/channel.ts +6 -6
- package/gs/builtin/slice.ts +3 -9
- package/gs/context/context.ts +2 -2
- package/gs/internal/oserror/errors.ts +7 -8
- package/gs/internal/oserror/index.ts +7 -1
- package/gs/io/fs/format.ts +39 -40
- package/gs/io/fs/fs.ts +446 -222
- package/gs/io/fs/glob.ts +164 -131
- package/gs/io/fs/index.ts +8 -8
- package/gs/io/fs/readdir.ts +188 -106
- package/gs/io/fs/readfile.ts +79 -58
- package/gs/io/fs/stat.ts +49 -25
- package/gs/io/fs/sub.ts +422 -181
- package/gs/io/fs/walk.ts +67 -63
- package/gs/iter/iter.ts +1 -1
- package/gs/path/index.ts +2 -2
- package/gs/path/match.ts +263 -250
- package/gs/path/path.ts +259 -232
- package/gs/runtime/runtime.ts +4 -4
- package/gs/strings/builder.test.ts +0 -1
- package/gs/strings/builder.ts +1 -1
- package/gs/strings/clone.ts +0 -2
- package/gs/strings/compare.ts +0 -2
- package/gs/strings/iter.test.ts +0 -1
- package/gs/strings/replace.test.ts +3 -4
- package/gs/strings/replace.ts +4 -7
- package/gs/strings/strings.test.ts +6 -6
- package/gs/strings/strings.ts +0 -14
- package/gs/sync/sync.ts +5 -5
- package/gs/time/time.ts +86 -29
- package/gs/unsafe/unsafe.ts +8 -8
- package/package.json +1 -1
package/gs/io/fs/walk.ts
CHANGED
|
@@ -1,65 +1,70 @@
|
|
|
1
|
-
import * as $ from
|
|
2
|
-
import { FileInfoToDirEntry, ReadDir } from
|
|
3
|
-
import { Stat } from
|
|
4
|
-
import { FS, DirEntry } from
|
|
1
|
+
import * as $ from '@goscript/builtin/builtin.js'
|
|
2
|
+
import { FileInfoToDirEntry, ReadDir } from './readdir.js'
|
|
3
|
+
import { Stat } from './stat.js'
|
|
4
|
+
import { FS, DirEntry } from './fs.js'
|
|
5
5
|
|
|
6
|
-
import * as errors from
|
|
6
|
+
import * as errors from '@goscript/errors/index.js'
|
|
7
7
|
|
|
8
|
-
import * as path from
|
|
8
|
+
import * as path from '@goscript/path/index.js'
|
|
9
9
|
|
|
10
|
-
export let SkipDir: $.GoError = errors.New(
|
|
10
|
+
export let SkipDir: $.GoError = errors.New('skip this directory')
|
|
11
11
|
|
|
12
|
-
export let SkipAll: $.GoError = errors.New(
|
|
12
|
+
export let SkipAll: $.GoError = errors.New('skip everything and stop the walk')
|
|
13
13
|
|
|
14
|
-
export type WalkDirFunc =
|
|
14
|
+
export type WalkDirFunc =
|
|
15
|
+
| ((path: string, d: DirEntry, err: $.GoError) => $.GoError)
|
|
16
|
+
| null
|
|
15
17
|
|
|
16
18
|
// walkDir recursively descends path, calling walkDirFn.
|
|
17
|
-
export function walkDir(
|
|
19
|
+
export function walkDir(
|
|
20
|
+
fsys: FS,
|
|
21
|
+
name: string,
|
|
22
|
+
d: DirEntry,
|
|
23
|
+
walkDirFn: WalkDirFunc,
|
|
24
|
+
): $.GoError {
|
|
25
|
+
// Successfully skipped directory.
|
|
26
|
+
{
|
|
27
|
+
let err = walkDirFn!(name, d, null)
|
|
28
|
+
if (err != null || !d!.IsDir()) {
|
|
29
|
+
// Successfully skipped directory.
|
|
30
|
+
if (err == SkipDir && d!.IsDir()) {
|
|
31
|
+
// Successfully skipped directory.
|
|
32
|
+
err = null
|
|
33
|
+
}
|
|
34
|
+
return err
|
|
35
|
+
}
|
|
36
|
+
}
|
|
18
37
|
|
|
19
|
-
|
|
20
|
-
{
|
|
21
|
-
let err = walkDirFn!(name, d, null)
|
|
22
|
-
if (err != null || !d!.IsDir()) {
|
|
38
|
+
let [dirs, err] = ReadDir(fsys, name)
|
|
23
39
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
40
|
+
// Second call, to report ReadDir error.
|
|
41
|
+
if (err != null) {
|
|
42
|
+
// Second call, to report ReadDir error.
|
|
43
|
+
err = walkDirFn!(name, d, err)
|
|
44
|
+
if (err != null) {
|
|
45
|
+
if (err == SkipDir && d!.IsDir()) {
|
|
46
|
+
err = null
|
|
47
|
+
}
|
|
48
|
+
return err
|
|
49
|
+
}
|
|
50
|
+
}
|
|
32
51
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
{
|
|
50
|
-
let name1 = path.Join(name, d1!.Name())
|
|
51
|
-
{
|
|
52
|
-
let err = walkDir(fsys, name1, d1, walkDirFn)
|
|
53
|
-
if (err != null) {
|
|
54
|
-
if (err == SkipDir) {
|
|
55
|
-
break
|
|
56
|
-
}
|
|
57
|
-
return err
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return null
|
|
52
|
+
for (let _i = 0; _i < $.len(dirs); _i++) {
|
|
53
|
+
const d1 = dirs![_i]
|
|
54
|
+
{
|
|
55
|
+
let name1 = path.Join(name, d1!.Name())
|
|
56
|
+
{
|
|
57
|
+
let err = walkDir(fsys, name1, d1, walkDirFn)
|
|
58
|
+
if (err != null) {
|
|
59
|
+
if (err == SkipDir) {
|
|
60
|
+
break
|
|
61
|
+
}
|
|
62
|
+
return err
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return null
|
|
63
68
|
}
|
|
64
69
|
|
|
65
70
|
// WalkDir walks the file tree rooted at root, calling fn for each file or
|
|
@@ -75,15 +80,14 @@ export function walkDir(fsys: FS, name: string, d: DirEntry, walkDirFn: WalkDirF
|
|
|
75
80
|
// WalkDir does not follow symbolic links found in directories,
|
|
76
81
|
// but if root itself is a symbolic link, its target will be walked.
|
|
77
82
|
export function WalkDir(fsys: FS, root: string, fn: WalkDirFunc): $.GoError {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
83
|
+
let [info, err] = Stat(fsys, root)
|
|
84
|
+
if (err != null) {
|
|
85
|
+
err = fn!(root, null, err)
|
|
86
|
+
} else {
|
|
87
|
+
err = walkDir(fsys, root, FileInfoToDirEntry(info), fn)
|
|
88
|
+
}
|
|
89
|
+
if (err == SkipDir || err == SkipAll) {
|
|
90
|
+
return null
|
|
91
|
+
}
|
|
92
|
+
return err
|
|
88
93
|
}
|
|
89
|
-
|
package/gs/iter/iter.ts
CHANGED
|
@@ -16,7 +16,7 @@ export function Pull<V>(
|
|
|
16
16
|
let nextValue: V | undefined
|
|
17
17
|
let hasNext = false
|
|
18
18
|
|
|
19
|
-
const
|
|
19
|
+
const _iterator = seq(function (value: V): boolean {
|
|
20
20
|
nextValue = value
|
|
21
21
|
hasNext = true
|
|
22
22
|
return false // Stop iteration after getting one value
|
package/gs/path/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { ErrBadPattern, Match } from
|
|
2
|
-
export { Base, Clean, Dir, Ext, IsAbs, Join, Split } from
|
|
1
|
+
export { ErrBadPattern, Match } from './match.js'
|
|
2
|
+
export { Base, Clean, Dir, Ext, IsAbs, Join, Split } from './path.js'
|