@flex-development/mlly 1.0.0-alpha.9 → 1.0.0-beta.2
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/CHANGELOG.md +1120 -376
- package/README.md +1555 -12
- package/dist/index.d.mts +3 -4
- package/dist/index.mjs +5 -5
- package/dist/interfaces/aliases.d.mts +21 -0
- package/dist/interfaces/condition-map.d.mts +24 -0
- package/dist/interfaces/file-system.d.mts +29 -0
- package/dist/interfaces/get-source-context.d.mts +44 -0
- package/dist/interfaces/get-source-options.d.mts +48 -0
- package/dist/interfaces/index.d.mts +18 -21
- package/dist/interfaces/is-directory.d.mts +17 -0
- package/dist/interfaces/is-file.d.mts +17 -0
- package/dist/interfaces/main-field-map.d.mts +22 -0
- package/dist/interfaces/module-format-map.d.mts +26 -0
- package/dist/interfaces/pattern-key-comparison-map.d.mts +31 -0
- package/dist/interfaces/protocol-map.d.mts +44 -0
- package/dist/interfaces/read-file.d.mts +28 -0
- package/dist/interfaces/realpath.d.mts +30 -0
- package/dist/interfaces/resolve-alias-options.d.mts +43 -0
- package/dist/interfaces/resolve-module-options.d.mts +79 -0
- package/dist/interfaces/stat.d.mts +28 -0
- package/dist/interfaces/stats.d.mts +23 -0
- package/dist/internal/chain-or-call.mjs +34 -0
- package/dist/internal/chars.mjs +17 -0
- package/dist/internal/check-invalid-segments.mjs +49 -0
- package/dist/internal/constant.mjs +23 -0
- package/dist/internal/fs.browser.mjs +42 -0
- package/dist/internal/fs.node.mjs +16 -0
- package/dist/internal/identity.mjs +23 -0
- package/dist/internal/invalid-package-target.mjs +36 -0
- package/dist/internal/invalid-subpath.mjs +37 -0
- package/dist/internal/is-promise.mjs +26 -0
- package/dist/internal/process.browser.mjs +8 -0
- package/dist/lib/can-parse-url.d.mts +23 -0
- package/dist/lib/can-parse-url.mjs +31 -0
- package/dist/lib/cwd.d.mts +14 -0
- package/dist/lib/cwd.mjs +17 -0
- package/dist/lib/default-conditions.d.mts +15 -0
- package/dist/lib/default-conditions.mjs +14 -0
- package/dist/lib/default-extensions.d.mts +14 -0
- package/dist/lib/default-extensions.mjs +29 -0
- package/dist/lib/default-main-fields.d.mts +14 -0
- package/dist/lib/default-main-fields.mjs +13 -0
- package/dist/lib/extension-format-map.d.mts +16 -0
- package/dist/lib/extension-format-map.mjs +31 -0
- package/dist/lib/formats.d.mts +21 -0
- package/dist/lib/formats.mjs +22 -0
- package/dist/lib/get-source.d.mts +46 -0
- package/dist/lib/get-source.mjs +156 -0
- package/dist/lib/index.d.mts +41 -0
- package/dist/lib/index.mjs +41 -0
- package/dist/lib/is-absolute-specifier.d.mts +23 -0
- package/dist/lib/is-absolute-specifier.mjs +34 -0
- package/dist/lib/is-array-index.d.mts +19 -0
- package/dist/lib/is-array-index.mjs +28 -0
- package/dist/lib/is-bare-specifier.d.mts +23 -0
- package/dist/lib/is-bare-specifier.mjs +33 -0
- package/dist/lib/is-directory.d.mts +27 -0
- package/dist/lib/is-directory.mjs +54 -0
- package/dist/lib/is-file.d.mts +27 -0
- package/dist/lib/is-file.mjs +54 -0
- package/dist/lib/is-imports-subpath.d.mts +26 -0
- package/dist/lib/is-imports-subpath.mjs +28 -0
- package/dist/lib/is-module-id.d.mts +23 -0
- package/dist/lib/is-module-id.mjs +24 -0
- package/dist/lib/is-relative-specifier.d.mts +23 -0
- package/dist/lib/is-relative-specifier.mjs +36 -0
- package/dist/lib/lookup-package-scope.d.mts +49 -0
- package/dist/lib/lookup-package-scope.mjs +102 -0
- package/dist/lib/pattern-key-compare.d.mts +28 -0
- package/dist/lib/pattern-key-compare.mjs +71 -0
- package/dist/lib/pattern-match.d.mts +22 -0
- package/dist/lib/pattern-match.mjs +85 -0
- package/dist/lib/read-package-json.d.mts +63 -0
- package/dist/lib/read-package-json.mjs +115 -0
- package/dist/lib/resolve-alias.d.mts +21 -0
- package/dist/lib/resolve-alias.mjs +102 -0
- package/dist/lib/resolve-module.d.mts +43 -0
- package/dist/lib/resolve-module.mjs +186 -0
- package/dist/lib/resolver.d.mts +346 -0
- package/dist/lib/resolver.mjs +1015 -0
- package/dist/lib/root.d.mts +11 -0
- package/dist/lib/root.mjs +12 -0
- package/dist/lib/to-relative-specifier.d.mts +27 -0
- package/dist/lib/to-relative-specifier.mjs +63 -0
- package/dist/lib/to-url.d.mts +26 -0
- package/dist/lib/to-url.mjs +34 -0
- package/dist/types/awaitable.d.mts +12 -0
- package/dist/types/change-ext-fn.d.mts +29 -0
- package/dist/types/condition.d.mts +13 -0
- package/dist/types/dot.d.mts +9 -0
- package/dist/types/empty-array.d.mts +9 -0
- package/dist/types/empty-object.d.mts +19 -0
- package/dist/types/empty-string.d.mts +9 -0
- package/dist/types/ext.d.mts +12 -0
- package/dist/types/get-source-handler.d.mts +22 -0
- package/dist/types/get-source-handlers.d.mts +15 -0
- package/dist/types/index.d.mts +19 -10
- package/dist/types/list.d.mts +12 -0
- package/dist/types/main-field.d.mts +13 -0
- package/dist/types/module-format.d.mts +13 -0
- package/dist/types/module-id.d.mts +3 -4
- package/dist/types/numeric.d.mts +9 -0
- package/dist/types/pattern-key-comparison.d.mts +14 -0
- package/dist/types/pattern-match.d.mts +10 -0
- package/dist/types/protocol.d.mts +6 -7
- package/package.json +151 -158
- package/changelog.config.ts +0 -404
- package/dist/enums/assert-type.d.mts +0 -21
- package/dist/enums/assert-type.mjs +0 -10
- package/dist/enums/assert-type.mjs.map +0 -6
- package/dist/enums/format.d.mts +0 -17
- package/dist/enums/format.mjs +0 -13
- package/dist/enums/format.mjs.map +0 -6
- package/dist/enums/index.d.mts +0 -10
- package/dist/enums/index.mjs +0 -15
- package/dist/enums/index.mjs.map +0 -6
- package/dist/enums/kind-specifier-syntax.d.mts +0 -14
- package/dist/enums/kind-specifier-syntax.mjs +0 -10
- package/dist/enums/kind-specifier-syntax.mjs.map +0 -6
- package/dist/enums/kind-specifier.d.mts +0 -17
- package/dist/enums/kind-specifier.mjs +0 -11
- package/dist/enums/kind-specifier.mjs.map +0 -6
- package/dist/enums/kind-statement-syntax.d.mts +0 -22
- package/dist/enums/kind-statement-syntax.mjs +0 -18
- package/dist/enums/kind-statement-syntax.mjs.map +0 -6
- package/dist/enums/kind-statement.d.mts +0 -15
- package/dist/enums/kind-statement.mjs +0 -11
- package/dist/enums/kind-statement.mjs.map +0 -6
- package/dist/index.mjs.map +0 -6
- package/dist/interfaces/import-assertions.d.mts +0 -20
- package/dist/interfaces/import-dynamic.d.mts +0 -43
- package/dist/interfaces/import-static.d.mts +0 -37
- package/dist/interfaces/index.mjs +0 -1
- package/dist/interfaces/index.mjs.map +0 -6
- package/dist/interfaces/options-fill-module.d.mts +0 -23
- package/dist/interfaces/options-find-subpath.d.mts +0 -49
- package/dist/interfaces/options-get-format.d.mts +0 -83
- package/dist/interfaces/options-get-source.d.mts +0 -63
- package/dist/interfaces/options-parse-module-id.d.mts +0 -33
- package/dist/interfaces/options-parse-subpath.d.mts +0 -31
- package/dist/interfaces/options-resolve-alias.d.mts +0 -53
- package/dist/interfaces/options-resolve-module.d.mts +0 -64
- package/dist/interfaces/options-resolve.d.mts +0 -15
- package/dist/interfaces/package-scope.d.mts +0 -25
- package/dist/interfaces/parsed-data-url.d.mts +0 -56
- package/dist/interfaces/parsed-module-id.d.mts +0 -80
- package/dist/interfaces/parsed-subpath.d.mts +0 -40
- package/dist/interfaces/statement-export.d.mts +0 -44
- package/dist/interfaces/statement-import.d.mts +0 -38
- package/dist/interfaces/statement-require.d.mts +0 -38
- package/dist/interfaces/statement.d.mts +0 -49
- package/dist/internal/escape-reg-exp.d.mts +0 -16
- package/dist/internal/escape-reg-exp.mjs +0 -10
- package/dist/internal/escape-reg-exp.mjs.map +0 -6
- package/dist/internal/format-type-map.d.mts +0 -17
- package/dist/internal/format-type-map.mjs +0 -13
- package/dist/internal/format-type-map.mjs.map +0 -6
- package/dist/internal/get-specifier-kind.d.mts +0 -17
- package/dist/internal/get-specifier-kind.mjs +0 -14
- package/dist/internal/get-specifier-kind.mjs.map +0 -6
- package/dist/internal/get-subpaths.d.mts +0 -25
- package/dist/internal/get-subpaths.mjs +0 -10
- package/dist/internal/get-subpaths.mjs.map +0 -6
- package/dist/internal/is-array-index.d.mts +0 -15
- package/dist/internal/is-array-index.mjs +0 -9
- package/dist/internal/is-array-index.mjs.map +0 -6
- package/dist/internal/is-directory.d.mts +0 -13
- package/dist/internal/is-directory.mjs +0 -16
- package/dist/internal/is-directory.mjs.map +0 -6
- package/dist/internal/is-file.d.mts +0 -13
- package/dist/internal/is-file.mjs +0 -16
- package/dist/internal/is-file.mjs.map +0 -6
- package/dist/internal/is-function.d.mts +0 -12
- package/dist/internal/is-function.mjs +0 -8
- package/dist/internal/is-function.mjs.map +0 -6
- package/dist/internal/regex-encoded-sep.d.mts +0 -13
- package/dist/internal/regex-encoded-sep.mjs +0 -6
- package/dist/internal/regex-encoded-sep.mjs.map +0 -6
- package/dist/internal/regex-internal-specifier.d.mts +0 -14
- package/dist/internal/regex-internal-specifier.mjs +0 -6
- package/dist/internal/regex-internal-specifier.mjs.map +0 -6
- package/dist/internal/regex-package-name.d.mts +0 -13
- package/dist/internal/regex-package-name.mjs +0 -6
- package/dist/internal/regex-package-name.mjs.map +0 -6
- package/dist/internal/regex-package-path.d.mts +0 -15
- package/dist/internal/regex-package-path.mjs +0 -6
- package/dist/internal/regex-package-path.mjs.map +0 -6
- package/dist/internal/resolver.d.mts +0 -130
- package/dist/internal/resolver.mjs +0 -500
- package/dist/internal/resolver.mjs.map +0 -6
- package/dist/internal/validate-boolean.d.mts +0 -20
- package/dist/internal/validate-boolean.mjs +0 -11
- package/dist/internal/validate-boolean.mjs.map +0 -6
- package/dist/internal/validate-object.d.mts +0 -23
- package/dist/internal/validate-object.mjs +0 -11
- package/dist/internal/validate-object.mjs.map +0 -6
- package/dist/internal/validate-set.d.mts +0 -23
- package/dist/internal/validate-set.mjs +0 -11
- package/dist/internal/validate-set.mjs.map +0 -6
- package/dist/internal/validate-string.d.mts +0 -20
- package/dist/internal/validate-string.mjs +0 -11
- package/dist/internal/validate-string.mjs.map +0 -6
- package/dist/internal/validate-url-string.d.mts +0 -22
- package/dist/internal/validate-url-string.mjs +0 -12
- package/dist/internal/validate-url-string.mjs.map +0 -6
- package/dist/types/declaration.d.mts +0 -9
- package/dist/types/fn-change-ext.d.mts +0 -28
- package/dist/types/index.mjs +0 -1
- package/dist/types/index.mjs.map +0 -6
- package/dist/types/mime-type.d.mts +0 -13
- package/dist/types/module-specifier-type.d.mts +0 -11
- package/dist/types/syntax-kind-export.d.mts +0 -12
- package/dist/types/syntax-kind-import.d.mts +0 -12
- package/dist/types/syntax-kind-require.d.mts +0 -12
- package/dist/utils/compare-subpaths.d.mts +0 -25
- package/dist/utils/compare-subpaths.mjs +0 -24
- package/dist/utils/compare-subpaths.mjs.map +0 -6
- package/dist/utils/conditions.d.mts +0 -13
- package/dist/utils/conditions.mjs +0 -6
- package/dist/utils/conditions.mjs.map +0 -6
- package/dist/utils/detect-syntax.d.mts +0 -21
- package/dist/utils/detect-syntax.mjs +0 -12
- package/dist/utils/detect-syntax.mjs.map +0 -6
- package/dist/utils/extension-format-map.d.mts +0 -16
- package/dist/utils/extension-format-map.mjs +0 -22
- package/dist/utils/extension-format-map.mjs.map +0 -6
- package/dist/utils/extract-statements.d.mts +0 -21
- package/dist/utils/extract-statements.mjs +0 -21
- package/dist/utils/extract-statements.mjs.map +0 -6
- package/dist/utils/fill-modules.d.mts +0 -23
- package/dist/utils/fill-modules.mjs +0 -62
- package/dist/utils/fill-modules.mjs.map +0 -6
- package/dist/utils/find-dynamic-imports.d.mts +0 -18
- package/dist/utils/find-dynamic-imports.mjs +0 -39
- package/dist/utils/find-dynamic-imports.mjs.map +0 -6
- package/dist/utils/find-exports.d.mts +0 -21
- package/dist/utils/find-exports.mjs +0 -95
- package/dist/utils/find-exports.mjs.map +0 -6
- package/dist/utils/find-requires.d.mts +0 -18
- package/dist/utils/find-requires.mjs +0 -32
- package/dist/utils/find-requires.mjs.map +0 -6
- package/dist/utils/find-static-imports.d.mts +0 -18
- package/dist/utils/find-static-imports.mjs +0 -34
- package/dist/utils/find-static-imports.mjs.map +0 -6
- package/dist/utils/find-subpath.d.mts +0 -30
- package/dist/utils/find-subpath.mjs +0 -106
- package/dist/utils/find-subpath.mjs.map +0 -6
- package/dist/utils/get-format.d.mts +0 -24
- package/dist/utils/get-format.mjs +0 -111
- package/dist/utils/get-format.mjs.map +0 -6
- package/dist/utils/get-source.d.mts +0 -22
- package/dist/utils/get-source.mjs +0 -63
- package/dist/utils/get-source.mjs.map +0 -6
- package/dist/utils/has-cjs-syntax.d.mts +0 -25
- package/dist/utils/has-cjs-syntax.mjs +0 -11
- package/dist/utils/has-cjs-syntax.mjs.map +0 -6
- package/dist/utils/has-esm-syntax.d.mts +0 -21
- package/dist/utils/has-esm-syntax.mjs +0 -11
- package/dist/utils/has-esm-syntax.mjs.map +0 -6
- package/dist/utils/index.d.mts +0 -42
- package/dist/utils/index.mjs +0 -79
- package/dist/utils/index.mjs.map +0 -6
- package/dist/utils/is-absolute-specifier.d.mts +0 -19
- package/dist/utils/is-absolute-specifier.mjs +0 -25
- package/dist/utils/is-absolute-specifier.mjs.map +0 -6
- package/dist/utils/is-bare-specifier.d.mts +0 -19
- package/dist/utils/is-bare-specifier.mjs +0 -10
- package/dist/utils/is-bare-specifier.mjs.map +0 -6
- package/dist/utils/is-exports-sugar.d.mts +0 -25
- package/dist/utils/is-exports-sugar.mjs +0 -26
- package/dist/utils/is-exports-sugar.mjs.map +0 -6
- package/dist/utils/is-relative-specifier.d.mts +0 -20
- package/dist/utils/is-relative-specifier.mjs +0 -11
- package/dist/utils/is-relative-specifier.mjs.map +0 -6
- package/dist/utils/lookup-package-scope.d.mts +0 -26
- package/dist/utils/lookup-package-scope.mjs +0 -38
- package/dist/utils/lookup-package-scope.mjs.map +0 -6
- package/dist/utils/parse-data-url.d.mts +0 -25
- package/dist/utils/parse-data-url.mjs +0 -25
- package/dist/utils/parse-data-url.mjs.map +0 -6
- package/dist/utils/parse-module-id.d.mts +0 -22
- package/dist/utils/parse-module-id.mjs +0 -122
- package/dist/utils/parse-module-id.mjs.map +0 -6
- package/dist/utils/parse-subpath.d.mts +0 -35
- package/dist/utils/parse-subpath.mjs +0 -54
- package/dist/utils/parse-subpath.mjs.map +0 -6
- package/dist/utils/pattern-character.d.mts +0 -11
- package/dist/utils/pattern-character.mjs +0 -6
- package/dist/utils/pattern-character.mjs.map +0 -6
- package/dist/utils/read-package-json.d.mts +0 -26
- package/dist/utils/read-package-json.mjs +0 -43
- package/dist/utils/read-package-json.mjs.map +0 -6
- package/dist/utils/resolve-alias.d.mts +0 -20
- package/dist/utils/resolve-alias.mjs +0 -106
- package/dist/utils/resolve-alias.mjs.map +0 -6
- package/dist/utils/resolve-aliases.d.mts +0 -19
- package/dist/utils/resolve-aliases.mjs +0 -28
- package/dist/utils/resolve-aliases.mjs.map +0 -6
- package/dist/utils/resolve-extensions.d.mts +0 -14
- package/dist/utils/resolve-extensions.mjs +0 -22
- package/dist/utils/resolve-extensions.mjs.map +0 -6
- package/dist/utils/resolve-module.d.mts +0 -39
- package/dist/utils/resolve-module.mjs +0 -64
- package/dist/utils/resolve-module.mjs.map +0 -6
- package/dist/utils/resolve-modules.d.mts +0 -25
- package/dist/utils/resolve-modules.mjs +0 -26
- package/dist/utils/resolve-modules.mjs.map +0 -6
- package/dist/utils/to-absolute-specifier.d.mts +0 -22
- package/dist/utils/to-absolute-specifier.mjs +0 -8
- package/dist/utils/to-absolute-specifier.mjs.map +0 -6
- package/dist/utils/to-bare-specifier.d.mts +0 -42
- package/dist/utils/to-bare-specifier.mjs +0 -90
- package/dist/utils/to-bare-specifier.mjs.map +0 -6
- package/dist/utils/to-data-url.d.mts +0 -30
- package/dist/utils/to-data-url.mjs +0 -11
- package/dist/utils/to-data-url.mjs.map +0 -6
- package/dist/utils/to-node-url.d.mts +0 -19
- package/dist/utils/to-node-url.mjs +0 -10
- package/dist/utils/to-node-url.mjs.map +0 -6
- package/dist/utils/to-relative-specifier.d.mts +0 -22
- package/dist/utils/to-relative-specifier.mjs +0 -21
- package/dist/utils/to-relative-specifier.mjs.map +0 -6
- package/dist/utils/to-url.d.mts +0 -22
- package/dist/utils/to-url.mjs +0 -12
- package/dist/utils/to-url.mjs.map +0 -6
- package/dist/utils/validate-assertions.d.mts +0 -23
- package/dist/utils/validate-assertions.mjs +0 -52
- package/dist/utils/validate-assertions.mjs.map +0 -6
- package/dist/utils/validate-exports.d.mts +0 -24
- package/dist/utils/validate-exports.mjs +0 -72
- package/dist/utils/validate-exports.mjs.map +0 -6
package/dist/index.d.mts
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* @file Package Entry Point
|
|
3
3
|
* @module mlly
|
|
4
4
|
*/
|
|
5
|
-
export * from '
|
|
6
|
-
export * from '
|
|
7
|
-
export * from '
|
|
8
|
-
export * from './utils/index.mjs';
|
|
5
|
+
export type * from '#interfaces/index';
|
|
6
|
+
export * from '#lib/index';
|
|
7
|
+
export type * from '#types/index';
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @file Package Entry Point
|
|
3
|
+
* @module mlly
|
|
4
|
+
*/
|
|
5
|
+
export * from '#lib/index';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Interfaces - Aliases
|
|
3
|
+
* @module mlly/interfaces/Aliases
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Record, where each key is a path alias or pattern and each value
|
|
7
|
+
* is a path mapping configuration.
|
|
8
|
+
*
|
|
9
|
+
* This interface can be augmented to register custom aliases.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* declare module '@flex-development/mlly' {
|
|
13
|
+
* interface Aliases {
|
|
14
|
+
* custom?: string[] | string | null
|
|
15
|
+
* }
|
|
16
|
+
* }
|
|
17
|
+
*/
|
|
18
|
+
interface Aliases {
|
|
19
|
+
[alias: string]: (string | null | undefined)[] | string | null | undefined;
|
|
20
|
+
}
|
|
21
|
+
export type { Aliases as default };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Interfaces - ConditionMap
|
|
3
|
+
* @module mlly/interfaces/ConditionMap
|
|
4
|
+
*/
|
|
5
|
+
import type * as pkgTypes from '@flex-development/pkg-types';
|
|
6
|
+
/**
|
|
7
|
+
* Registry of export/import conditions.
|
|
8
|
+
*
|
|
9
|
+
* This interface can be augmented to register custom conditions.
|
|
10
|
+
*
|
|
11
|
+
* @see {@linkcode pkgTypes.ConditionMap}
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* declare module '@flex-development/mlly' {
|
|
15
|
+
* interface ConditionMap {
|
|
16
|
+
* custom: 'custom'
|
|
17
|
+
* }
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* @extends {pkgTypes.ConditionMap}
|
|
21
|
+
*/
|
|
22
|
+
interface ConditionMap extends pkgTypes.ConditionMap {
|
|
23
|
+
}
|
|
24
|
+
export type { ConditionMap as default };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Interfaces - FileSystem
|
|
3
|
+
* @module mlly/interfaces/FileSystem
|
|
4
|
+
*/
|
|
5
|
+
import type { ReadFile, Realpath, Stat } from '@flex-development/mlly';
|
|
6
|
+
/**
|
|
7
|
+
* The file system API.
|
|
8
|
+
*/
|
|
9
|
+
interface FileSystem {
|
|
10
|
+
/**
|
|
11
|
+
* Read the entire contents of a file.
|
|
12
|
+
*
|
|
13
|
+
* @see {@linkcode ReadFile}
|
|
14
|
+
*/
|
|
15
|
+
readFile: ReadFile;
|
|
16
|
+
/**
|
|
17
|
+
* Compute a canonical pathname by resolving `.`, `..`, and symbolic links.
|
|
18
|
+
*
|
|
19
|
+
* @see {@linkcode Realpath}
|
|
20
|
+
*/
|
|
21
|
+
realpath: Realpath;
|
|
22
|
+
/**
|
|
23
|
+
* Get information about a directory or file.
|
|
24
|
+
*
|
|
25
|
+
* @see {@linkcode Stat}
|
|
26
|
+
*/
|
|
27
|
+
stat: Stat;
|
|
28
|
+
}
|
|
29
|
+
export type { FileSystem as default };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Interfaces - GetSourceContext
|
|
3
|
+
* @module mlly/interfaces/GetSourceContext
|
|
4
|
+
*/
|
|
5
|
+
import type { FileSystem, GetSourceHandlers, GetSourceOptions } from '@flex-development/mlly';
|
|
6
|
+
/**
|
|
7
|
+
* Source code retrieval context.
|
|
8
|
+
*
|
|
9
|
+
* @see {@linkcode GetSourceOptions}
|
|
10
|
+
*
|
|
11
|
+
* @extends {GetSourceOptions}
|
|
12
|
+
*/
|
|
13
|
+
interface GetSourceContext extends GetSourceOptions {
|
|
14
|
+
/**
|
|
15
|
+
* The file system API.
|
|
16
|
+
*
|
|
17
|
+
* @see {@linkcode FileSystem}
|
|
18
|
+
*
|
|
19
|
+
* @override
|
|
20
|
+
*/
|
|
21
|
+
fs: FileSystem;
|
|
22
|
+
/**
|
|
23
|
+
* Record, where each key is a URL protocol
|
|
24
|
+
* and each value is a source code handler.
|
|
25
|
+
*
|
|
26
|
+
* @see {@linkcode GetSourceHandlers}
|
|
27
|
+
*
|
|
28
|
+
* @override
|
|
29
|
+
*/
|
|
30
|
+
handlers: GetSourceHandlers;
|
|
31
|
+
/**
|
|
32
|
+
* Request options for network based modules.
|
|
33
|
+
*
|
|
34
|
+
* @override
|
|
35
|
+
*/
|
|
36
|
+
req: RequestInit;
|
|
37
|
+
/**
|
|
38
|
+
* The list of supported URL schemes.
|
|
39
|
+
*
|
|
40
|
+
* @override
|
|
41
|
+
*/
|
|
42
|
+
schemes: Set<string>;
|
|
43
|
+
}
|
|
44
|
+
export type { GetSourceContext as default };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Interfaces - GetSourceOptions
|
|
3
|
+
* @module mlly/interfaces/GetSourceOptions
|
|
4
|
+
*/
|
|
5
|
+
import type { FileSystem, GetSourceHandlers, List, ModuleFormat } from '@flex-development/mlly';
|
|
6
|
+
/**
|
|
7
|
+
* Options for retrieving source code.
|
|
8
|
+
*/
|
|
9
|
+
interface GetSourceOptions {
|
|
10
|
+
/**
|
|
11
|
+
* The module format hint.
|
|
12
|
+
*
|
|
13
|
+
* @see {@linkcode ModuleFormat}
|
|
14
|
+
*/
|
|
15
|
+
format?: ModuleFormat | null | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* The file system API.
|
|
18
|
+
*
|
|
19
|
+
* @see {@linkcode FileSystem}
|
|
20
|
+
*/
|
|
21
|
+
fs?: FileSystem | null | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Record, where each key is a URL protocol
|
|
24
|
+
* and each value is a source code handler.
|
|
25
|
+
*
|
|
26
|
+
* @see {@linkcode GetSourceHandlers}
|
|
27
|
+
*/
|
|
28
|
+
handlers?: GetSourceHandlers | null | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Whether to ignore [`ERR_UNSUPPORTED_ESM_URL_SCHEME`][err] if thrown.
|
|
31
|
+
*
|
|
32
|
+
* [err]: https://nodejs.org/api/errors.html#err_unsupported_esm_url_scheme
|
|
33
|
+
*/
|
|
34
|
+
ignoreErrors?: boolean | null | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Request options for network based modules.
|
|
37
|
+
*/
|
|
38
|
+
req?: RequestInit | null | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* The list of supported URL schemes.
|
|
41
|
+
*
|
|
42
|
+
* @see {@linkcode List}
|
|
43
|
+
*
|
|
44
|
+
* @default ['data','file','http','https','node']
|
|
45
|
+
*/
|
|
46
|
+
schemes?: List<string> | null | undefined;
|
|
47
|
+
}
|
|
48
|
+
export type { GetSourceOptions as default };
|
|
@@ -1,24 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @file Interfaces
|
|
2
|
+
* @file Entry Point - Interfaces
|
|
3
3
|
* @module mlly/interfaces
|
|
4
4
|
*/
|
|
5
|
-
export type { default as
|
|
6
|
-
export type { default as
|
|
7
|
-
export type { default as
|
|
8
|
-
export type { default as
|
|
9
|
-
export type { default as
|
|
10
|
-
export type { default as
|
|
11
|
-
export type { default as
|
|
12
|
-
export type { default as
|
|
13
|
-
export type { default as
|
|
14
|
-
export type { default as
|
|
15
|
-
export type { default as
|
|
16
|
-
export type { default as
|
|
17
|
-
export type { default as
|
|
18
|
-
export type { default as
|
|
19
|
-
export type { default as
|
|
20
|
-
export type { default as
|
|
21
|
-
export type { default as
|
|
22
|
-
export type { default as ExportStatement } from './statement-export.mjs';
|
|
23
|
-
export type { default as ImportStatement } from './statement-import.mjs';
|
|
24
|
-
export type { default as RequireStatement } from './statement-require.mjs';
|
|
5
|
+
export type { default as Aliases } from '#interfaces/aliases';
|
|
6
|
+
export type { default as ConditionMap } from '#interfaces/condition-map';
|
|
7
|
+
export type { default as FileSystem } from '#interfaces/file-system';
|
|
8
|
+
export type { default as GetSourceContext } from '#interfaces/get-source-context';
|
|
9
|
+
export type { default as GetSourceOptions } from '#interfaces/get-source-options';
|
|
10
|
+
export type { default as IsDirectory } from '#interfaces/is-directory';
|
|
11
|
+
export type { default as IsFile } from '#interfaces/is-file';
|
|
12
|
+
export type { default as MainFieldMap } from '#interfaces/main-field-map';
|
|
13
|
+
export type { default as ModuleFormatMap } from '#interfaces/module-format-map';
|
|
14
|
+
export type { default as PatternKeyComparisonMap } from '#interfaces/pattern-key-comparison-map';
|
|
15
|
+
export type { default as ProtocolMap } from '#interfaces/protocol-map';
|
|
16
|
+
export type { default as ReadFile } from '#interfaces/read-file';
|
|
17
|
+
export type { default as Realpath } from '#interfaces/realpath';
|
|
18
|
+
export type { default as ResolveAliasOptions } from '#interfaces/resolve-alias-options';
|
|
19
|
+
export type { default as ResolveModuleOptions } from '#interfaces/resolve-module-options';
|
|
20
|
+
export type { default as Stat } from '#interfaces/stat';
|
|
21
|
+
export type { default as Stats } from '#interfaces/stats';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Interfaces - IsDirectory
|
|
3
|
+
* @module mlly/interfaces/IsDirectory
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Check if a stats object describes a directory.
|
|
7
|
+
*/
|
|
8
|
+
interface IsDirectory {
|
|
9
|
+
/**
|
|
10
|
+
* @this {void}
|
|
11
|
+
*
|
|
12
|
+
* @return {boolean}
|
|
13
|
+
* `true` if stats describes directory, `false` otherwise
|
|
14
|
+
*/
|
|
15
|
+
(this: void): boolean;
|
|
16
|
+
}
|
|
17
|
+
export type { IsDirectory as default };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Interfaces - IsFile
|
|
3
|
+
* @module mlly/interfaces/IsFile
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Check if a stats object describes a file.
|
|
7
|
+
*/
|
|
8
|
+
interface IsFile {
|
|
9
|
+
/**
|
|
10
|
+
* @this {void}
|
|
11
|
+
*
|
|
12
|
+
* @return {boolean}
|
|
13
|
+
* `true` if stats object describes regular file, `false` otherwise
|
|
14
|
+
*/
|
|
15
|
+
(this: void): boolean;
|
|
16
|
+
}
|
|
17
|
+
export type { IsFile as default };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Interfaces - MainFieldMap
|
|
3
|
+
* @module mlly/interfaces/MainFieldMap
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Registry of main fields.
|
|
7
|
+
*
|
|
8
|
+
* This interface can be augmented to register custom main fields.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* declare module '@flex-development/mlly' {
|
|
12
|
+
* interface MainFieldMap {
|
|
13
|
+
* unpkg: 'unpkg'
|
|
14
|
+
* }
|
|
15
|
+
* }
|
|
16
|
+
*/
|
|
17
|
+
interface MainFieldMap {
|
|
18
|
+
main: 'main';
|
|
19
|
+
module: 'module';
|
|
20
|
+
types: 'types';
|
|
21
|
+
}
|
|
22
|
+
export type { MainFieldMap as default };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Interfaces - ModuleFormatMap
|
|
3
|
+
* @module mlly/interfaces/ModuleFormatMap
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Registry of module formats.
|
|
7
|
+
*
|
|
8
|
+
* This interface can be augmented to register custom module formats.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* declare module '@flex-development/mlly' {
|
|
12
|
+
* interface ModuleFormatMap {
|
|
13
|
+
* custom: 'custom'
|
|
14
|
+
* }
|
|
15
|
+
* }
|
|
16
|
+
*/
|
|
17
|
+
interface ModuleFormatMap {
|
|
18
|
+
builtin: 'builtin';
|
|
19
|
+
commonjs: 'commonjs';
|
|
20
|
+
cts: 'commonjs-typescript';
|
|
21
|
+
json: 'json';
|
|
22
|
+
module: 'module';
|
|
23
|
+
mts: 'module-typescript';
|
|
24
|
+
wasm: 'wasm';
|
|
25
|
+
}
|
|
26
|
+
export type { ModuleFormatMap as default };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Interfaces - PatternKeyComparisonMap
|
|
3
|
+
* @module mlly/interfaces/PatternKeyComparisonMap
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Registry of `PATTERN_KEY_COMPARE` algorithm results.
|
|
7
|
+
*
|
|
8
|
+
* This interface can be augmented to register custom results.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* declare module '@flex-development/mlly' {
|
|
12
|
+
* interface PatternKeyComparisonMap {
|
|
13
|
+
* afterThree: 3
|
|
14
|
+
* }
|
|
15
|
+
* }
|
|
16
|
+
*/
|
|
17
|
+
interface PatternKeyComparisonMap {
|
|
18
|
+
/**
|
|
19
|
+
* `a` should come after `b`.
|
|
20
|
+
*/
|
|
21
|
+
after: 1;
|
|
22
|
+
/**
|
|
23
|
+
* `a` should come before `b`.
|
|
24
|
+
*/
|
|
25
|
+
before: -1;
|
|
26
|
+
/**
|
|
27
|
+
* `a` and `b` are equal.
|
|
28
|
+
*/
|
|
29
|
+
equal: 0;
|
|
30
|
+
}
|
|
31
|
+
export type { PatternKeyComparisonMap as default };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Interfaces - ProtocolMap
|
|
3
|
+
* @module mlly/interfaces/ProtocolMap
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Registry of URL protocols.
|
|
7
|
+
*
|
|
8
|
+
* This interface can be augmented to register custom protocols.
|
|
9
|
+
*
|
|
10
|
+
* @see https://nodejs.org/api/url.html#urlprotocol
|
|
11
|
+
* @see https://iana.org/assignments/uri-schemes/uri-schemes.xhtml
|
|
12
|
+
* @see https://url.spec.whatwg.org/#special-scheme
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* declare module '@flex-development/mlly' {
|
|
16
|
+
* interface ProtocolMap {
|
|
17
|
+
* custom: 'custom:'
|
|
18
|
+
* }
|
|
19
|
+
* }
|
|
20
|
+
*/
|
|
21
|
+
interface ProtocolMap {
|
|
22
|
+
blob: 'blob:';
|
|
23
|
+
content: 'content:';
|
|
24
|
+
cvs: 'cvs:';
|
|
25
|
+
data: 'data:';
|
|
26
|
+
dns: 'dns:';
|
|
27
|
+
file: 'file:';
|
|
28
|
+
fish: 'fish:';
|
|
29
|
+
ftp: 'ftp:';
|
|
30
|
+
git: 'git:';
|
|
31
|
+
http: 'http:';
|
|
32
|
+
https: 'https:';
|
|
33
|
+
mvn: 'mvn:';
|
|
34
|
+
node: 'node:';
|
|
35
|
+
redis: 'redis:';
|
|
36
|
+
sftp: 'sftp:';
|
|
37
|
+
ssh: 'ssh:';
|
|
38
|
+
svn: 'svn:';
|
|
39
|
+
urn: 'urn:';
|
|
40
|
+
viewSource: 'view-source:';
|
|
41
|
+
ws: 'ws:';
|
|
42
|
+
wss: 'wss:';
|
|
43
|
+
}
|
|
44
|
+
export type { ProtocolMap as default };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Interfaces - ReadFile
|
|
3
|
+
* @module mlly/interfaces/ReadFile
|
|
4
|
+
*/
|
|
5
|
+
import type { Awaitable, ModuleId } from '@flex-development/mlly';
|
|
6
|
+
/**
|
|
7
|
+
* Read the entire contents of a file.
|
|
8
|
+
*
|
|
9
|
+
* @see {@linkcode Awaitable}
|
|
10
|
+
* @see {@linkcode Buffer}
|
|
11
|
+
*
|
|
12
|
+
* @template {Awaitable<Buffer | string>} [T]
|
|
13
|
+
* The file contents
|
|
14
|
+
*/
|
|
15
|
+
interface ReadFile<T extends Awaitable<Buffer | string> = Awaitable<Buffer | string>> {
|
|
16
|
+
/**
|
|
17
|
+
* @see {@linkcode ModuleId}
|
|
18
|
+
*
|
|
19
|
+
* @this {void}
|
|
20
|
+
*
|
|
21
|
+
* @param {ModuleId} id
|
|
22
|
+
* The module id
|
|
23
|
+
* @return {T}
|
|
24
|
+
* The file contents
|
|
25
|
+
*/
|
|
26
|
+
(this: void, id: ModuleId): T;
|
|
27
|
+
}
|
|
28
|
+
export type { ReadFile as default };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Interfaces - Realpath
|
|
3
|
+
* @module mlly/interfaces/Realpath
|
|
4
|
+
*/
|
|
5
|
+
import type { Awaitable, ModuleId } from '@flex-development/mlly';
|
|
6
|
+
/**
|
|
7
|
+
* Compute a canonical pathname by resolving `.`, `..`, and symbolic links.
|
|
8
|
+
*
|
|
9
|
+
* > 👉 **Note**: A canonical pathname is not necessarily unique.
|
|
10
|
+
* > Hard links and bind mounts can expose an entity through many pathnames.
|
|
11
|
+
*
|
|
12
|
+
* @see {@linkcode Awaitable}
|
|
13
|
+
*
|
|
14
|
+
* @template {Awaitable<string>} [T]
|
|
15
|
+
* The canonical pathname
|
|
16
|
+
*/
|
|
17
|
+
interface Realpath<T extends Awaitable<string> = Awaitable<string>> {
|
|
18
|
+
/**
|
|
19
|
+
* @see {@linkcode ModuleId}
|
|
20
|
+
*
|
|
21
|
+
* @this {void}
|
|
22
|
+
*
|
|
23
|
+
* @param {ModuleId} id
|
|
24
|
+
* The module id
|
|
25
|
+
* @return {T}
|
|
26
|
+
* The canonical pathname
|
|
27
|
+
*/
|
|
28
|
+
(this: void, id: ModuleId): T;
|
|
29
|
+
}
|
|
30
|
+
export type { Realpath as default };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Interfaces - ResolveAliasOptions
|
|
3
|
+
* @module mlly/interfaces/ResolveAliasOptions
|
|
4
|
+
*/
|
|
5
|
+
import type { Aliases, ModuleId } from '@flex-development/mlly';
|
|
6
|
+
/**
|
|
7
|
+
* Options for path alias resolution.
|
|
8
|
+
*/
|
|
9
|
+
interface ResolveAliasOptions {
|
|
10
|
+
/**
|
|
11
|
+
* Whether the resolved specifier should be absolute.
|
|
12
|
+
*
|
|
13
|
+
* If `true`, the resolved specifier will be a [`file:` URL][file-url].
|
|
14
|
+
*
|
|
15
|
+
* [file-url]: https://nodejs.org/api/esm.html#file-urls
|
|
16
|
+
*
|
|
17
|
+
* @see https://nodejs.org/api/esm.html#terminology
|
|
18
|
+
*/
|
|
19
|
+
absolute?: boolean | null | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* The path mappings dictionary.
|
|
22
|
+
*
|
|
23
|
+
* > 👉 **Note**: Paths should be relative to {@linkcode cwd}.
|
|
24
|
+
*
|
|
25
|
+
* @see {@linkcode Aliases}
|
|
26
|
+
*/
|
|
27
|
+
aliases?: Aliases | null | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* The URL of the directory to resolve non-absolute modules from.
|
|
30
|
+
*
|
|
31
|
+
* @see {@linkcode ModuleId}
|
|
32
|
+
*
|
|
33
|
+
* @default cwd()
|
|
34
|
+
*/
|
|
35
|
+
cwd?: ModuleId | null | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* The URL of the parent module.
|
|
38
|
+
*
|
|
39
|
+
* @see {@linkcode ModuleId}
|
|
40
|
+
*/
|
|
41
|
+
parent?: ModuleId | null | undefined;
|
|
42
|
+
}
|
|
43
|
+
export type { ResolveAliasOptions as default };
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Interfaces - ResolveModuleOptions
|
|
3
|
+
* @module mlly/interfaces/ResolveModuleOptions
|
|
4
|
+
*/
|
|
5
|
+
import type { Aliases, ChangeExtFn, Condition, FileSystem, List, MainField, ModuleId } from '@flex-development/mlly';
|
|
6
|
+
/**
|
|
7
|
+
* Module resolution options.
|
|
8
|
+
*/
|
|
9
|
+
interface ResolveModuleOptions {
|
|
10
|
+
/**
|
|
11
|
+
* The path mappings dictionary.
|
|
12
|
+
*
|
|
13
|
+
* > 👉 **Note**: Paths should be relative to {@linkcode cwd}.
|
|
14
|
+
*
|
|
15
|
+
* @see {@linkcode Aliases}
|
|
16
|
+
*/
|
|
17
|
+
aliases?: Aliases | null | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* The list of export/import conditions.
|
|
20
|
+
*
|
|
21
|
+
* > 👉 **Note**: Should be sorted by priority.
|
|
22
|
+
*
|
|
23
|
+
* @see {@linkcode Condition}
|
|
24
|
+
* @see {@linkcode List}
|
|
25
|
+
* @see https://nodejs.org/api/packages.html#conditional-exports
|
|
26
|
+
*
|
|
27
|
+
* @default defaultConditions
|
|
28
|
+
*/
|
|
29
|
+
conditions?: List<Condition> | null | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* The URL of the directory to resolve path {@linkcode aliases} from.
|
|
32
|
+
*
|
|
33
|
+
* @see {@linkcode ModuleId}
|
|
34
|
+
*
|
|
35
|
+
* @default cwd()
|
|
36
|
+
*/
|
|
37
|
+
cwd?: ModuleId | null | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* A replacement file extension or a function that returns a file extension.
|
|
40
|
+
*
|
|
41
|
+
* > 👉 **Note**: An empty string (`''`) or `null` will
|
|
42
|
+
* > remove a file extension.
|
|
43
|
+
*
|
|
44
|
+
* @see {@linkcode ChangeExtFn}
|
|
45
|
+
*/
|
|
46
|
+
ext?: ChangeExtFn | string | null | undefined;
|
|
47
|
+
/**
|
|
48
|
+
* The module extensions to probe for.
|
|
49
|
+
*
|
|
50
|
+
* > 👉 **Note**: Should be sorted by priority.
|
|
51
|
+
*
|
|
52
|
+
* @see {@linkcode List}
|
|
53
|
+
*
|
|
54
|
+
* @default defaultExtensions
|
|
55
|
+
*/
|
|
56
|
+
extensions?: List<string> | null | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* The file system API.
|
|
59
|
+
*
|
|
60
|
+
* @see {@linkcode FileSystem}
|
|
61
|
+
*/
|
|
62
|
+
fs?: FileSystem | null | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* The list of legacy `main` fields.
|
|
65
|
+
*
|
|
66
|
+
* > 👉 **Note**: Should be sorted by priority.
|
|
67
|
+
*
|
|
68
|
+
* @see {@linkcode List}
|
|
69
|
+
* @see {@linkcode MainField}
|
|
70
|
+
*
|
|
71
|
+
* @default defaultMainFields
|
|
72
|
+
*/
|
|
73
|
+
mainFields?: List<MainField> | null | undefined;
|
|
74
|
+
/**
|
|
75
|
+
* Whether to keep symlinks instead of resolving them.
|
|
76
|
+
*/
|
|
77
|
+
preserveSymlinks?: boolean | null | undefined;
|
|
78
|
+
}
|
|
79
|
+
export type { ResolveModuleOptions as default };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Interfaces - Stat
|
|
3
|
+
* @module mlly/interfaces/Stat
|
|
4
|
+
*/
|
|
5
|
+
import type { Awaitable, ModuleId, Stats } from '@flex-development/mlly';
|
|
6
|
+
/**
|
|
7
|
+
* Get information about a directory or file.
|
|
8
|
+
*
|
|
9
|
+
* @see {@linkcode Awaitable}
|
|
10
|
+
* @see {@linkcode Stats}
|
|
11
|
+
*
|
|
12
|
+
* @template {Awaitable<Stats>} [T]
|
|
13
|
+
* The info
|
|
14
|
+
*/
|
|
15
|
+
interface Stat<T extends Awaitable<Stats> = Awaitable<Stats>> {
|
|
16
|
+
/**
|
|
17
|
+
* @see {@linkcode ModuleId}
|
|
18
|
+
*
|
|
19
|
+
* @this {void}
|
|
20
|
+
*
|
|
21
|
+
* @param {ModuleId} id
|
|
22
|
+
* The module id
|
|
23
|
+
* @return {T}
|
|
24
|
+
* The info
|
|
25
|
+
*/
|
|
26
|
+
(this: void, id: ModuleId): T;
|
|
27
|
+
}
|
|
28
|
+
export type { Stat as default };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Interfaces - Stats
|
|
3
|
+
* @module mlly/interfaces/Stats
|
|
4
|
+
*/
|
|
5
|
+
import type { IsDirectory, IsFile } from '@flex-development/mlly';
|
|
6
|
+
/**
|
|
7
|
+
* An object describing a directory or file.
|
|
8
|
+
*/
|
|
9
|
+
interface Stats {
|
|
10
|
+
/**
|
|
11
|
+
* Check if the stats object describes a directory.
|
|
12
|
+
*
|
|
13
|
+
* @see {@linkcode IsDirectory}
|
|
14
|
+
*/
|
|
15
|
+
isDirectory: IsDirectory;
|
|
16
|
+
/**
|
|
17
|
+
* Check if the stats object describes a file.
|
|
18
|
+
*
|
|
19
|
+
* @see {@linkcode IsFile}
|
|
20
|
+
*/
|
|
21
|
+
isFile: IsFile;
|
|
22
|
+
}
|
|
23
|
+
export type { Stats as default };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Internal - chainOrCall
|
|
3
|
+
* @module mlly/internal/chainOrCall
|
|
4
|
+
*/
|
|
5
|
+
import isPromise from '#internal/is-promise';
|
|
6
|
+
export default chainOrCall;
|
|
7
|
+
/**
|
|
8
|
+
* Chain a callback, calling the function after `promise` is resolved,
|
|
9
|
+
* otherwise synchronously call `fn`.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*
|
|
13
|
+
* @see {@linkcode Awaitable}
|
|
14
|
+
*
|
|
15
|
+
* @this {void}
|
|
16
|
+
*
|
|
17
|
+
* @param {unknown} promise
|
|
18
|
+
* The promise to chain or the resolved value
|
|
19
|
+
* @param {(...params: any[]) => unknown} fn
|
|
20
|
+
* The function to call
|
|
21
|
+
* @param {(e: unknown) => unknown} [reject]
|
|
22
|
+
* The callback to fire when a promise is rejected
|
|
23
|
+
* @param {unknown} [self]
|
|
24
|
+
* The `this` context of `fn`
|
|
25
|
+
* @param {unknown[]} params
|
|
26
|
+
* The arguments to pass to `fn`
|
|
27
|
+
* @return {unknown}
|
|
28
|
+
* A new promise to resolve or the result of `fn`
|
|
29
|
+
*/
|
|
30
|
+
function chainOrCall(promise, fn, reject, self, ...params) {
|
|
31
|
+
return isPromise(promise) // already have a promise, chain callback.
|
|
32
|
+
? promise.then(resolved => fn.call(self, ...params, resolved), reject)
|
|
33
|
+
: fn.call(self, ...params);
|
|
34
|
+
}
|