@ryanatkn/gro 0.155.0 → 0.157.0
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/dist/constants.d.ts +5 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +5 -0
- package/dist/esbuild_plugin_svelte.d.ts.map +1 -1
- package/dist/esbuild_plugin_svelte.js +1 -2
- package/dist/gro_plugin_sveltekit_app.js +1 -1
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +33 -27
- package/dist/package.d.ts +44 -13
- package/dist/package.d.ts.map +1 -1
- package/dist/package.gen.js +1 -1
- package/dist/package.js +42 -21
- package/dist/parse_exports.d.ts +20 -0
- package/dist/parse_exports.d.ts.map +1 -0
- package/dist/parse_exports.js +65 -0
- package/dist/parse_exports_context.d.ts +21 -0
- package/dist/parse_exports_context.d.ts.map +1 -0
- package/dist/parse_exports_context.js +332 -0
- package/dist/parse_imports.d.ts.map +1 -1
- package/dist/parse_imports.js +1 -2
- package/dist/paths.d.ts +8 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +6 -3
- package/dist/src_json.d.ts +68 -66
- package/dist/src_json.d.ts.map +1 -1
- package/dist/src_json.js +58 -55
- package/dist/test_helpers.d.ts +21 -0
- package/dist/test_helpers.d.ts.map +1 -0
- package/dist/test_helpers.js +122 -0
- package/package.json +20 -12
- package/src/lib/constants.ts +5 -0
- package/src/lib/esbuild_plugin_svelte.ts +1 -2
- package/src/lib/gro_plugin_sveltekit_app.ts +1 -1
- package/src/lib/loader.ts +38 -23
- package/src/lib/package.gen.ts +1 -1
- package/src/lib/package.ts +42 -21
- package/src/lib/parse_exports.ts +108 -0
- package/src/lib/parse_exports_context.ts +394 -0
- package/src/lib/parse_imports.ts +1 -2
- package/src/lib/paths.ts +13 -3
- package/src/lib/src_json.ts +80 -68
- package/src/lib/test_helpers.ts +159 -0
- package/dist/svelte_helpers.d.ts +0 -3
- package/dist/svelte_helpers.d.ts.map +0 -1
- package/dist/svelte_helpers.js +0 -2
- package/src/lib/svelte_helpers.ts +0 -2
package/dist/constants.d.ts
CHANGED
|
@@ -3,8 +3,11 @@ export declare const GRO_DIRNAME = ".gro";
|
|
|
3
3
|
export declare const GRO_DIST_PREFIX = "dist_";
|
|
4
4
|
export declare const SERVER_DIST_PATH = "dist_server";
|
|
5
5
|
export declare const GRO_DEV_DIRNAME: string;
|
|
6
|
+
/** @trailing_slash */
|
|
6
7
|
export declare const SOURCE_DIR: string;
|
|
8
|
+
/** @trailing_slash */
|
|
7
9
|
export declare const GRO_DIR: string;
|
|
10
|
+
/** @trailing_slash */
|
|
8
11
|
export declare const GRO_DEV_DIR: string;
|
|
9
12
|
export declare const GRO_CONFIG_PATH = "gro.config.ts";
|
|
10
13
|
export declare const README_FILENAME = "README.md";
|
|
@@ -22,6 +25,8 @@ export declare const TSCONFIG_FILENAME = "tsconfig.json";
|
|
|
22
25
|
export declare const TS_MATCHER: RegExp;
|
|
23
26
|
export declare const JS_MATCHER: RegExp;
|
|
24
27
|
export declare const JSON_MATCHER: RegExp;
|
|
28
|
+
export declare const SVELTE_MATCHER: RegExp;
|
|
29
|
+
export declare const SVELTE_RUNES_MATCHER: RegExp;
|
|
25
30
|
/** Extracts the script content from Svelte files. */
|
|
26
31
|
export declare const SVELTE_SCRIPT_MATCHER: RegExp;
|
|
27
32
|
export declare const EVERYTHING_MATCHER: RegExp;
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/constants.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,WAAW,SAAS,CAAC;AAClC,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,eAAe,QAAuB,CAAC;AACpD,eAAO,MAAM,UAAU,QAAuB,CAAC;AAC/C,eAAO,MAAM,OAAO,QAAoB,CAAC;AACzC,eAAO,MAAM,WAAW,QAAwB,CAAC;AACjD,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAC/C,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AACnD,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AACnD,eAAO,MAAM,uBAAuB,UAAU,CAAC;AAC/C,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAC7C,eAAO,MAAM,yBAAyB,QAAkC,CAAC;AACzE,eAAO,MAAM,cAAc,YAAY,CAAC;AACxC,eAAO,MAAM,WAAW,SAAS,CAAC;AAClC,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,eAAO,MAAM,UAAU,QAAwB,CAAC;AAChD,eAAO,MAAM,UAAU,QAAwB,CAAC;AAChD,eAAO,MAAM,YAAY,QAAY,CAAC;AACtC,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,QAAiD,CAAC;AACpF,eAAO,MAAM,kBAAkB,QAAO,CAAC;AAEvC,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,oBAAoB,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/constants.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,WAAW,SAAS,CAAC;AAClC,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,eAAe,QAAuB,CAAC;AACpD,sBAAsB;AACtB,eAAO,MAAM,UAAU,QAAuB,CAAC;AAC/C,sBAAsB;AACtB,eAAO,MAAM,OAAO,QAAoB,CAAC;AACzC,sBAAsB;AACtB,eAAO,MAAM,WAAW,QAAwB,CAAC;AACjD,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAC/C,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AACnD,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AACnD,eAAO,MAAM,uBAAuB,UAAU,CAAC;AAC/C,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAC7C,eAAO,MAAM,yBAAyB,QAAkC,CAAC;AACzE,eAAO,MAAM,cAAc,YAAY,CAAC;AACxC,eAAO,MAAM,WAAW,SAAS,CAAC;AAClC,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,eAAO,MAAM,UAAU,QAAwB,CAAC;AAChD,eAAO,MAAM,UAAU,QAAwB,CAAC;AAChD,eAAO,MAAM,YAAY,QAAY,CAAC;AACtC,eAAO,MAAM,cAAc,QAAc,CAAC;AAC1C,eAAO,MAAM,oBAAoB,QAAuB,CAAC;AACzD,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,QAAiD,CAAC;AACpF,eAAO,MAAM,kBAAkB,QAAO,CAAC;AAEvC,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,oBAAoB,aAAa,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -10,8 +10,11 @@ export const GRO_DIRNAME = '.gro';
|
|
|
10
10
|
export const GRO_DIST_PREFIX = 'dist_'; //
|
|
11
11
|
export const SERVER_DIST_PATH = 'dist_server'; // TODO should all of these be `_PATH` or should this be `DIRNAME`? also, add `_PLUGIN` to this name?
|
|
12
12
|
export const GRO_DEV_DIRNAME = GRO_DIRNAME + '/dev';
|
|
13
|
+
/** @trailing_slash */
|
|
13
14
|
export const SOURCE_DIR = SOURCE_DIRNAME + '/';
|
|
15
|
+
/** @trailing_slash */
|
|
14
16
|
export const GRO_DIR = GRO_DIRNAME + '/';
|
|
17
|
+
/** @trailing_slash */
|
|
15
18
|
export const GRO_DEV_DIR = GRO_DEV_DIRNAME + '/';
|
|
16
19
|
export const GRO_CONFIG_PATH = 'gro.config.ts';
|
|
17
20
|
export const README_FILENAME = 'README.md';
|
|
@@ -29,6 +32,8 @@ export const TSCONFIG_FILENAME = 'tsconfig.json';
|
|
|
29
32
|
export const TS_MATCHER = /\.(ts|tsx|mts|cts)$/;
|
|
30
33
|
export const JS_MATCHER = /\.(js|jsx|mjs|cjs)$/;
|
|
31
34
|
export const JSON_MATCHER = /\.json$/;
|
|
35
|
+
export const SVELTE_MATCHER = /\.svelte$/;
|
|
36
|
+
export const SVELTE_RUNES_MATCHER = /\.svelte\.(js|ts)$/; // TODO probably let `.svelte.` appear anywhere - https://github.com/sveltejs/svelte/issues/11536
|
|
32
37
|
/** Extracts the script content from Svelte files. */
|
|
33
38
|
export const SVELTE_SCRIPT_MATCHER = /<script(?:\s+[^>]*)?>([\s\S]*?)<\/script>/gim; // TODO maybe this shouldnt be global? or make a getter?
|
|
34
39
|
export const EVERYTHING_MATCHER = /.*/;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esbuild_plugin_svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/esbuild_plugin_svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAIN,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"esbuild_plugin_svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/esbuild_plugin_svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAIN,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EAGN,KAAK,oBAAoB,EACzB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,6BAA6B;IAC7C,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sBAAsB,CAAC,EAAE,cAAc,CAAC;IACxC,6BAA6B,CAAC,EAAE,oBAAoB,CAAC;IACrD,oBAAoB,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpE,oBAAoB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAChD,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CACtC;AAED,eAAO,MAAM,qBAAqB,GAAI,SAAS,6BAA6B,KAAG,OAAO,CAAC,MAmEtF,CAAC"}
|
|
@@ -2,10 +2,9 @@ import * as esbuild from 'esbuild';
|
|
|
2
2
|
import { compile, compileModule, preprocess, } from 'svelte/compiler';
|
|
3
3
|
import { readFile } from 'node:fs/promises';
|
|
4
4
|
import { relative } from 'node:path';
|
|
5
|
-
import { SVELTE_MATCHER, SVELTE_RUNES_MATCHER } from "./svelte_helpers.js";
|
|
6
5
|
import { to_define_import_meta_env, default_ts_transform_options } from "./esbuild_helpers.js";
|
|
7
6
|
import { default_svelte_config, to_default_compile_module_options, } from "./svelte_config.js";
|
|
8
|
-
import { TS_MATCHER } from "./constants.js";
|
|
7
|
+
import { TS_MATCHER, SVELTE_MATCHER, SVELTE_RUNES_MATCHER } from "./constants.js";
|
|
9
8
|
export const esbuild_plugin_svelte = (options) => {
|
|
10
9
|
const { dev, base_url, dir = process.cwd(), svelte_compile_options = default_svelte_config.svelte_compile_options, svelte_compile_module_options = to_default_compile_module_options(svelte_compile_options), svelte_preprocessors, ts_transform_options = default_ts_transform_options, is_ts = (f) => TS_MATCHER.test(f), } = options;
|
|
11
10
|
const final_ts_transform_options = {
|
|
@@ -43,7 +43,7 @@ export const gro_plugin_sveltekit_app = ({ host_target = 'github_pages', well_kn
|
|
|
43
43
|
const serialized_package_json = mapped_package_json && serialize_package_json(mapped_package_json);
|
|
44
44
|
// `.well-known/src.json` and `.well-known/src/`
|
|
45
45
|
const final_package_json = mapped_package_json ?? package_json;
|
|
46
|
-
const src_json = create_src_json(final_package_json);
|
|
46
|
+
const src_json = create_src_json(final_package_json, undefined);
|
|
47
47
|
if (well_known_src_json === undefined) {
|
|
48
48
|
well_known_src_json = final_package_json.public; // eslint-disable-line no-param-reassign
|
|
49
49
|
}
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,QAAQ,EAAE,WAAW,EAAC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,QAAQ,EAAE,WAAW,EAAC,MAAM,aAAa,CAAC;AA2EvD,eAAO,MAAM,IAAI,EAAE,QA0GlB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAqDrB,CAAC"}
|
package/dist/loader.js
CHANGED
|
@@ -7,9 +7,8 @@ import ts_blank_space from 'ts-blank-space';
|
|
|
7
7
|
import { render_env_shim_module } from "./sveltekit_shim_env.js";
|
|
8
8
|
import { render_sveltekit_shim_app_environment, render_sveltekit_shim_app_paths, SVELTEKIT_SHIM_APP_ENVIRONMENT_MATCHER, SVELTEKIT_SHIM_APP_PATHS_MATCHER, sveltekit_shim_app_specifiers, } from "./sveltekit_shim_app.js";
|
|
9
9
|
import { default_svelte_config } from "./svelte_config.js";
|
|
10
|
-
import { SVELTE_MATCHER, SVELTE_RUNES_MATCHER } from "./svelte_helpers.js";
|
|
11
10
|
import { IS_THIS_GRO, paths } from "./paths.js";
|
|
12
|
-
import {
|
|
11
|
+
import { NODE_MODULES_DIRNAME, TS_MATCHER, SVELTE_MATCHER, SVELTE_RUNES_MATCHER, } from "./constants.js";
|
|
13
12
|
import { resolve_specifier } from "./resolve_specifier.js";
|
|
14
13
|
import { map_sveltekit_aliases } from "./sveltekit_helpers.js";
|
|
15
14
|
// TODO get out of the loader business, starting with https://nodejs.org/api/typescript.html#type-stripping
|
|
@@ -69,7 +68,7 @@ export const load = async (url, context, nextLoad) => {
|
|
|
69
68
|
const loaded = await nextLoad(url, { ...context, format: 'module-typescript' });
|
|
70
69
|
const raw_source = loaded.source?.toString(); // eslint-disable-line @typescript-eslint/no-base-to-string
|
|
71
70
|
if (raw_source == null)
|
|
72
|
-
throw
|
|
71
|
+
throw Error(`Failed to load ${url}`);
|
|
73
72
|
// TODO should be nice if we could use Node's builtin amaro transform, but I couldn't find a way after digging into the source, AFAICT it's internal and not exposed
|
|
74
73
|
const source = ts_blank_space(raw_source); // TODO was using oxc-transform and probably should, but this doesn't require sourcemaps, and it's still alpha as of May 2025
|
|
75
74
|
const transformed = compileModule(source, {
|
|
@@ -95,14 +94,15 @@ export const load = async (url, context, nextLoad) => {
|
|
|
95
94
|
const transformed = compile(source, { ...svelte_compile_options, dev, filename });
|
|
96
95
|
return { format: 'module', shortCircuit: true, source: transformed.js.code };
|
|
97
96
|
}
|
|
98
|
-
else if (
|
|
99
|
-
//
|
|
100
|
-
// json
|
|
97
|
+
else if (context.importAttributes.type === 'json') {
|
|
98
|
+
// json - any file extension
|
|
101
99
|
// TODO probably follow esbuild and also export every top-level property for objects from the module for good treeshaking - https://esbuild.github.io/content-types/#json (type generation?)
|
|
102
|
-
|
|
100
|
+
// TODO why is removing the importAttributes needed? can't pass no context either -
|
|
101
|
+
// error: `Module "file:///home/user/dev/repo/foo.json" is not of type "json"`
|
|
102
|
+
const loaded = await nextLoad(url, { ...context, importAttributes: undefined });
|
|
103
103
|
const raw_source = loaded.source?.toString(); // eslint-disable-line @typescript-eslint/no-base-to-string
|
|
104
104
|
if (raw_source == null)
|
|
105
|
-
throw
|
|
105
|
+
throw Error(`Failed to load ${url}`);
|
|
106
106
|
const source = `export default ` + raw_source;
|
|
107
107
|
return { format: 'module', shortCircuit: true, source };
|
|
108
108
|
}
|
|
@@ -119,28 +119,34 @@ export const load = async (url, context, nextLoad) => {
|
|
|
119
119
|
if (context.format === 'sveltekit-env') {
|
|
120
120
|
let mode;
|
|
121
121
|
let visibility;
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
122
|
+
switch (context.importAttributes.virtual) {
|
|
123
|
+
case '$env/static/public': {
|
|
124
|
+
mode = 'static';
|
|
125
|
+
visibility = 'public';
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
case '$env/static/private': {
|
|
129
|
+
mode = 'static';
|
|
130
|
+
visibility = 'private';
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
case '$env/dynamic/public': {
|
|
134
|
+
mode = 'dynamic';
|
|
135
|
+
visibility = 'public';
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
case '$env/dynamic/private': {
|
|
139
|
+
mode = 'dynamic';
|
|
140
|
+
visibility = 'private';
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
default: {
|
|
144
|
+
throw Error(`Unknown $env import: ${context.importAttributes.virtual}`);
|
|
145
|
+
}
|
|
140
146
|
}
|
|
141
147
|
const source = render_env_shim_module(dev, mode, visibility, public_prefix, private_prefix, env_dir);
|
|
142
148
|
return { format: 'module', shortCircuit: true, source };
|
|
143
|
-
}
|
|
149
|
+
}
|
|
144
150
|
}
|
|
145
151
|
// fallback to default behavior
|
|
146
152
|
return nextLoad(url, context);
|
package/dist/package.d.ts
CHANGED
|
@@ -48,13 +48,13 @@ export declare const package_json: {
|
|
|
48
48
|
prettier: string;
|
|
49
49
|
'prettier-plugin-svelte': string;
|
|
50
50
|
'ts-blank-space': string;
|
|
51
|
-
'ts-morph': string;
|
|
52
51
|
tslib: string;
|
|
53
52
|
zod: string;
|
|
54
53
|
};
|
|
55
54
|
peerDependencies: {
|
|
56
55
|
esbuild: string;
|
|
57
56
|
svelte: string;
|
|
57
|
+
typescript: string;
|
|
58
58
|
};
|
|
59
59
|
devDependencies: {
|
|
60
60
|
'@changesets/changelog-git': string;
|
|
@@ -304,6 +304,14 @@ export declare const package_json: {
|
|
|
304
304
|
types: string;
|
|
305
305
|
default: string;
|
|
306
306
|
};
|
|
307
|
+
'./parse_exports_context.js': {
|
|
308
|
+
types: string;
|
|
309
|
+
default: string;
|
|
310
|
+
};
|
|
311
|
+
'./parse_exports.js': {
|
|
312
|
+
types: string;
|
|
313
|
+
default: string;
|
|
314
|
+
};
|
|
307
315
|
'./parse_imports.js': {
|
|
308
316
|
types: string;
|
|
309
317
|
default: string;
|
|
@@ -368,10 +376,6 @@ export declare const package_json: {
|
|
|
368
376
|
types: string;
|
|
369
377
|
default: string;
|
|
370
378
|
};
|
|
371
|
-
'./svelte_helpers.js': {
|
|
372
|
-
types: string;
|
|
373
|
-
default: string;
|
|
374
|
-
};
|
|
375
379
|
'./sveltekit_helpers.js': {
|
|
376
380
|
types: string;
|
|
377
381
|
default: string;
|
|
@@ -416,6 +420,10 @@ export declare const package_json: {
|
|
|
416
420
|
types: string;
|
|
417
421
|
default: string;
|
|
418
422
|
};
|
|
423
|
+
'./test_helpers.js': {
|
|
424
|
+
types: string;
|
|
425
|
+
default: string;
|
|
426
|
+
};
|
|
419
427
|
'./test.task.js': {
|
|
420
428
|
types: string;
|
|
421
429
|
default: string;
|
|
@@ -453,7 +461,10 @@ export declare const src_json: {
|
|
|
453
461
|
};
|
|
454
462
|
'./package.json': {
|
|
455
463
|
path: string;
|
|
456
|
-
declarations:
|
|
464
|
+
declarations: {
|
|
465
|
+
name: string;
|
|
466
|
+
kind: "json";
|
|
467
|
+
}[];
|
|
457
468
|
};
|
|
458
469
|
'./args.js': {
|
|
459
470
|
path: string;
|
|
@@ -893,6 +904,23 @@ export declare const src_json: {
|
|
|
893
904
|
kind: "variable";
|
|
894
905
|
}[];
|
|
895
906
|
};
|
|
907
|
+
'./parse_exports_context.js': {
|
|
908
|
+
path: string;
|
|
909
|
+
declarations: {
|
|
910
|
+
name: string;
|
|
911
|
+
kind: "class";
|
|
912
|
+
}[];
|
|
913
|
+
};
|
|
914
|
+
'./parse_exports.js': {
|
|
915
|
+
path: string;
|
|
916
|
+
declarations: ({
|
|
917
|
+
name: string;
|
|
918
|
+
kind: "type";
|
|
919
|
+
} | {
|
|
920
|
+
name: string;
|
|
921
|
+
kind: "function";
|
|
922
|
+
})[];
|
|
923
|
+
};
|
|
896
924
|
'./parse_imports.js': {
|
|
897
925
|
path: string;
|
|
898
926
|
declarations: ({
|
|
@@ -1044,13 +1072,6 @@ export declare const src_json: {
|
|
|
1044
1072
|
kind: "variable";
|
|
1045
1073
|
})[];
|
|
1046
1074
|
};
|
|
1047
|
-
'./svelte_helpers.js': {
|
|
1048
|
-
path: string;
|
|
1049
|
-
declarations: {
|
|
1050
|
-
name: string;
|
|
1051
|
-
kind: "variable";
|
|
1052
|
-
}[];
|
|
1053
|
-
};
|
|
1054
1075
|
'./sveltekit_helpers.js': {
|
|
1055
1076
|
path: string;
|
|
1056
1077
|
declarations: ({
|
|
@@ -1149,6 +1170,16 @@ export declare const src_json: {
|
|
|
1149
1170
|
kind: "class";
|
|
1150
1171
|
})[];
|
|
1151
1172
|
};
|
|
1173
|
+
'./test_helpers.js': {
|
|
1174
|
+
path: string;
|
|
1175
|
+
declarations: ({
|
|
1176
|
+
name: string;
|
|
1177
|
+
kind: "variable";
|
|
1178
|
+
} | {
|
|
1179
|
+
name: string;
|
|
1180
|
+
kind: "function";
|
|
1181
|
+
})[];
|
|
1182
|
+
};
|
|
1152
1183
|
'./test.task.js': {
|
|
1153
1184
|
path: string;
|
|
1154
1185
|
declarations: {
|
package/dist/package.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/package.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"package.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/package.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkQD,CAAC;AAEzB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2xBD,CAAC"}
|
package/dist/package.gen.js
CHANGED
|
@@ -10,7 +10,7 @@ import { create_src_json } from "./src_json.js";
|
|
|
10
10
|
*/
|
|
11
11
|
export const gen = ({ origin_path }) => {
|
|
12
12
|
const package_json = load_package_json();
|
|
13
|
-
const src_json = create_src_json(package_json);
|
|
13
|
+
const src_json = create_src_json(package_json, undefined);
|
|
14
14
|
return `
|
|
15
15
|
// generated by ${origin_path}
|
|
16
16
|
|
package/dist/package.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// generated by src/lib/package.gen.ts
|
|
2
2
|
export const package_json = {
|
|
3
3
|
name: '@ryanatkn/gro',
|
|
4
|
-
version: '0.
|
|
4
|
+
version: '0.157.0',
|
|
5
5
|
description: 'task runner and toolkit extending SvelteKit',
|
|
6
6
|
motto: 'generate, run, optimize',
|
|
7
7
|
glyph: '🌰',
|
|
@@ -44,15 +44,14 @@ export const package_json = {
|
|
|
44
44
|
dotenv: '^16.5.0',
|
|
45
45
|
'esm-env': '^1.2.2',
|
|
46
46
|
mri: '^1.2.0',
|
|
47
|
-
'oxc-parser': '^0.
|
|
47
|
+
'oxc-parser': '^0.68.1',
|
|
48
48
|
prettier: '^3.5.3',
|
|
49
49
|
'prettier-plugin-svelte': '^3.3.3',
|
|
50
50
|
'ts-blank-space': '^0.6.1',
|
|
51
|
-
'ts-morph': '^25.0.1',
|
|
52
51
|
tslib: '^2.8.1',
|
|
53
|
-
zod: '^3.24.
|
|
52
|
+
zod: '^3.24.4',
|
|
54
53
|
},
|
|
55
|
-
peerDependencies: { esbuild: '^0.25', svelte: '^5' },
|
|
54
|
+
peerDependencies: { esbuild: '^0.25', svelte: '^5', typescript: '^5' },
|
|
56
55
|
devDependencies: {
|
|
57
56
|
'@changesets/changelog-git': '^0.2.1',
|
|
58
57
|
'@changesets/types': '^6.1.0',
|
|
@@ -65,12 +64,12 @@ export const package_json = {
|
|
|
65
64
|
'@sveltejs/vite-plugin-svelte': '^5.0.3',
|
|
66
65
|
'@types/node': '^22.15.3',
|
|
67
66
|
esbuild: '^0.25.3',
|
|
68
|
-
eslint: '
|
|
67
|
+
eslint: '9.25.1',
|
|
69
68
|
'eslint-plugin-svelte': '^3.5.1',
|
|
70
69
|
svelte: '^5.28.2',
|
|
71
|
-
'svelte-check': '^4.1.
|
|
70
|
+
'svelte-check': '^4.1.7',
|
|
72
71
|
typescript: '^5.8.3',
|
|
73
|
-
'typescript-eslint': '^8.
|
|
72
|
+
'typescript-eslint': '^8.32.0',
|
|
74
73
|
uvu: '^0.5.6',
|
|
75
74
|
},
|
|
76
75
|
optionalDependencies: { '@ryanatkn/moss': '>=0.27.0 <0.29.0' },
|
|
@@ -186,6 +185,11 @@ export const package_json = {
|
|
|
186
185
|
'./package_meta.js': { types: './dist/package_meta.d.ts', default: './dist/package_meta.js' },
|
|
187
186
|
'./package.gen.js': { types: './dist/package.gen.d.ts', default: './dist/package.gen.js' },
|
|
188
187
|
'./package.js': { types: './dist/package.d.ts', default: './dist/package.js' },
|
|
188
|
+
'./parse_exports_context.js': {
|
|
189
|
+
types: './dist/parse_exports_context.d.ts',
|
|
190
|
+
default: './dist/parse_exports_context.js',
|
|
191
|
+
},
|
|
192
|
+
'./parse_exports.js': { types: './dist/parse_exports.d.ts', default: './dist/parse_exports.js' },
|
|
189
193
|
'./parse_imports.js': { types: './dist/parse_imports.d.ts', default: './dist/parse_imports.js' },
|
|
190
194
|
'./path.js': { types: './dist/path.d.ts', default: './dist/path.js' },
|
|
191
195
|
'./paths.js': { types: './dist/paths.d.ts', default: './dist/paths.js' },
|
|
@@ -208,10 +212,6 @@ export const package_json = {
|
|
|
208
212
|
'./search_fs.js': { types: './dist/search_fs.d.ts', default: './dist/search_fs.js' },
|
|
209
213
|
'./src_json.js': { types: './dist/src_json.d.ts', default: './dist/src_json.js' },
|
|
210
214
|
'./svelte_config.js': { types: './dist/svelte_config.d.ts', default: './dist/svelte_config.js' },
|
|
211
|
-
'./svelte_helpers.js': {
|
|
212
|
-
types: './dist/svelte_helpers.d.ts',
|
|
213
|
-
default: './dist/svelte_helpers.js',
|
|
214
|
-
},
|
|
215
215
|
'./sveltekit_helpers.js': {
|
|
216
216
|
types: './dist/sveltekit_helpers.d.ts',
|
|
217
217
|
default: './dist/sveltekit_helpers.js',
|
|
@@ -247,6 +247,7 @@ export const package_json = {
|
|
|
247
247
|
'./sync.task.js': { types: './dist/sync.task.d.ts', default: './dist/sync.task.js' },
|
|
248
248
|
'./task_logging.js': { types: './dist/task_logging.d.ts', default: './dist/task_logging.js' },
|
|
249
249
|
'./task.js': { types: './dist/task.d.ts', default: './dist/task.js' },
|
|
250
|
+
'./test_helpers.js': { types: './dist/test_helpers.d.ts', default: './dist/test_helpers.js' },
|
|
250
251
|
'./test.task.js': { types: './dist/test.task.d.ts', default: './dist/test.task.js' },
|
|
251
252
|
'./typecheck.task.js': {
|
|
252
253
|
types: './dist/typecheck.task.d.ts',
|
|
@@ -258,7 +259,7 @@ export const package_json = {
|
|
|
258
259
|
};
|
|
259
260
|
export const src_json = {
|
|
260
261
|
name: '@ryanatkn/gro',
|
|
261
|
-
version: '0.
|
|
262
|
+
version: '0.157.0',
|
|
262
263
|
modules: {
|
|
263
264
|
'.': {
|
|
264
265
|
path: 'index.ts',
|
|
@@ -275,7 +276,7 @@ export const src_json = {
|
|
|
275
276
|
{ name: 'Task_Error', kind: 'class' },
|
|
276
277
|
],
|
|
277
278
|
},
|
|
278
|
-
'./package.json': { path: 'package.json', declarations: [] },
|
|
279
|
+
'./package.json': { path: 'package.json', declarations: [{ name: 'default', kind: 'json' }] },
|
|
279
280
|
'./args.js': {
|
|
280
281
|
path: 'args.ts',
|
|
281
282
|
declarations: [
|
|
@@ -387,6 +388,8 @@ export const src_json = {
|
|
|
387
388
|
{ name: 'TS_MATCHER', kind: 'variable' },
|
|
388
389
|
{ name: 'JS_MATCHER', kind: 'variable' },
|
|
389
390
|
{ name: 'JSON_MATCHER', kind: 'variable' },
|
|
391
|
+
{ name: 'SVELTE_MATCHER', kind: 'variable' },
|
|
392
|
+
{ name: 'SVELTE_RUNES_MATCHER', kind: 'variable' },
|
|
390
393
|
{ name: 'SVELTE_SCRIPT_MATCHER', kind: 'variable' },
|
|
391
394
|
{ name: 'EVERYTHING_MATCHER', kind: 'variable' },
|
|
392
395
|
{ name: 'JS_CLI_DEFAULT', kind: 'variable' },
|
|
@@ -731,6 +734,21 @@ export const src_json = {
|
|
|
731
734
|
{ name: 'src_json', kind: 'variable' },
|
|
732
735
|
],
|
|
733
736
|
},
|
|
737
|
+
'./parse_exports_context.js': {
|
|
738
|
+
path: 'parse_exports_context.ts',
|
|
739
|
+
declarations: [{ name: 'Parse_Exports_Context', kind: 'class' }],
|
|
740
|
+
},
|
|
741
|
+
'./parse_exports.js': {
|
|
742
|
+
path: 'parse_exports.ts',
|
|
743
|
+
declarations: [
|
|
744
|
+
{ name: 'Declaration_Kind', kind: 'type' },
|
|
745
|
+
{ name: 'Declaration', kind: 'type' },
|
|
746
|
+
{ name: 'Export_Declaration', kind: 'type' },
|
|
747
|
+
{ name: 'parse_exports', kind: 'function' },
|
|
748
|
+
{ name: 'infer_declarations_from_file_type', kind: 'function' },
|
|
749
|
+
{ name: 'process_ts_exports', kind: 'function' },
|
|
750
|
+
],
|
|
751
|
+
},
|
|
734
752
|
'./parse_imports.js': {
|
|
735
753
|
path: 'parse_imports.ts',
|
|
736
754
|
declarations: [
|
|
@@ -850,6 +868,7 @@ export const src_json = {
|
|
|
850
868
|
'./src_json.js': {
|
|
851
869
|
path: 'src_json.ts',
|
|
852
870
|
declarations: [
|
|
871
|
+
{ name: 'Src_Module_Declaration_Kind', kind: 'variable' },
|
|
853
872
|
{ name: 'Src_Module_Declaration', kind: 'variable' },
|
|
854
873
|
{ name: 'Src_Module', kind: 'variable' },
|
|
855
874
|
{ name: 'Src_Modules', kind: 'variable' },
|
|
@@ -870,13 +889,6 @@ export const src_json = {
|
|
|
870
889
|
{ name: 'default_svelte_config', kind: 'variable' },
|
|
871
890
|
],
|
|
872
891
|
},
|
|
873
|
-
'./svelte_helpers.js': {
|
|
874
|
-
path: 'svelte_helpers.ts',
|
|
875
|
-
declarations: [
|
|
876
|
-
{ name: 'SVELTE_MATCHER', kind: 'variable' },
|
|
877
|
-
{ name: 'SVELTE_RUNES_MATCHER', kind: 'variable' },
|
|
878
|
-
],
|
|
879
|
-
},
|
|
880
892
|
'./sveltekit_helpers.js': {
|
|
881
893
|
path: 'sveltekit_helpers.ts',
|
|
882
894
|
declarations: [
|
|
@@ -998,6 +1010,15 @@ export const src_json = {
|
|
|
998
1010
|
{ name: 'validate_task_module', kind: 'function' },
|
|
999
1011
|
],
|
|
1000
1012
|
},
|
|
1013
|
+
'./test_helpers.js': {
|
|
1014
|
+
path: 'test_helpers.ts',
|
|
1015
|
+
declarations: [
|
|
1016
|
+
{ name: 'SOME_PUBLIC_ENV_VAR_NAME', kind: 'variable' },
|
|
1017
|
+
{ name: 'SOME_PUBLIC_ENV_VAR_VALUE', kind: 'variable' },
|
|
1018
|
+
{ name: 'init_test_env', kind: 'function' },
|
|
1019
|
+
{ name: 'create_ts_test_env', kind: 'function' },
|
|
1020
|
+
],
|
|
1021
|
+
},
|
|
1001
1022
|
'./test.task.js': {
|
|
1002
1023
|
path: 'test.task.ts',
|
|
1003
1024
|
declarations: [
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
import type { Flavored } from '@ryanatkn/belt/types.js';
|
|
3
|
+
import type { Path_Id } from './path.ts';
|
|
4
|
+
import type { Logger } from '@ryanatkn/belt/log.js';
|
|
5
|
+
export type Declaration_Kind = 'type' | 'function' | 'variable' | 'class' | 'component' | 'json' | 'css';
|
|
6
|
+
export interface Declaration {
|
|
7
|
+
name: string;
|
|
8
|
+
kind: Declaration_Kind | null;
|
|
9
|
+
}
|
|
10
|
+
export type Export_Declaration = Flavored<Declaration, 'Export_Declaration'>;
|
|
11
|
+
/**
|
|
12
|
+
* Parse exports from a file based on its file type and content.
|
|
13
|
+
*/
|
|
14
|
+
export declare const parse_exports: (id: Path_Id, program?: ts.Program, declarations?: Array<Export_Declaration>, log?: Logger) => Array<Export_Declaration>;
|
|
15
|
+
export declare const infer_declarations_from_file_type: (file_path: Path_Id, declarations?: Array<Export_Declaration>) => Array<Export_Declaration>;
|
|
16
|
+
/**
|
|
17
|
+
* Process TypeScript exports, identifying their kinds.
|
|
18
|
+
*/
|
|
19
|
+
export declare const process_ts_exports: (source_file: ts.SourceFile, program: ts.Program, exports: Array<ts.Symbol>, declarations?: Array<Export_Declaration>, log?: Logger) => Array<Export_Declaration>;
|
|
20
|
+
//# sourceMappingURL=parse_exports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse_exports.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/parse_exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAGvC,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAElD,MAAM,MAAM,gBAAgB,GACzB,MAAM,GACN,UAAU,GACV,UAAU,GACV,OAAO,GACP,WAAW,GACX,MAAM,GACN,KAAK,CAAC;AAET,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,aAAa,GACzB,IAAI,OAAO,EACX,UAAU,EAAE,CAAC,OAAO,EACpB,eAAc,KAAK,CAAC,kBAAkB,CAAM,EAC5C,MAAM,MAAM,KACV,KAAK,CAAC,kBAAkB,CAyB1B,CAAC;AAGF,eAAO,MAAM,iCAAiC,GAC7C,WAAW,OAAO,EAClB,eAAc,KAAK,CAAC,kBAAkB,CAAM,KAC1C,KAAK,CAAC,kBAAkB,CA4B1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC9B,aAAa,EAAE,CAAC,UAAU,EAC1B,SAAS,EAAE,CAAC,OAAO,EACnB,SAAS,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EACzB,eAAc,KAAK,CAAC,kBAAkB,CAAM,EAC5C,MAAM,MAAM,KACV,KAAK,CAAC,kBAAkB,CAI1B,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
import { extname } from 'node:path';
|
|
3
|
+
import { TS_MATCHER } from "./constants.js";
|
|
4
|
+
import { Parse_Exports_Context } from "./parse_exports_context.js";
|
|
5
|
+
/**
|
|
6
|
+
* Parse exports from a file based on its file type and content.
|
|
7
|
+
*/
|
|
8
|
+
export const parse_exports = (id, program, declarations = [], log) => {
|
|
9
|
+
// First, infer declarations based on file extension
|
|
10
|
+
infer_declarations_from_file_type(id, declarations);
|
|
11
|
+
// For TypeScript files with program, perform detailed export analysis
|
|
12
|
+
if (TS_MATCHER.test(id) && program) {
|
|
13
|
+
const source_file = program.getSourceFile(id);
|
|
14
|
+
if (!source_file)
|
|
15
|
+
return declarations;
|
|
16
|
+
const checker = program.getTypeChecker();
|
|
17
|
+
// Get the exports of the source file (module)
|
|
18
|
+
const symbol = checker.getSymbolAtLocation(source_file);
|
|
19
|
+
if (!symbol)
|
|
20
|
+
return declarations;
|
|
21
|
+
// Get the module exports
|
|
22
|
+
const exports = checker.getExportsOfModule(symbol);
|
|
23
|
+
// Process TypeScript declarations
|
|
24
|
+
const export_context = new Parse_Exports_Context(program, log);
|
|
25
|
+
export_context.analyze_source_file(source_file);
|
|
26
|
+
export_context.process_exports(source_file, exports, declarations);
|
|
27
|
+
}
|
|
28
|
+
return declarations;
|
|
29
|
+
};
|
|
30
|
+
// TODO temporary until proper type inference
|
|
31
|
+
export const infer_declarations_from_file_type = (file_path, declarations = []) => {
|
|
32
|
+
const extension = extname(file_path).toLowerCase();
|
|
33
|
+
switch (extension) {
|
|
34
|
+
case '.svelte': {
|
|
35
|
+
declarations.push({
|
|
36
|
+
name: 'default',
|
|
37
|
+
kind: 'component',
|
|
38
|
+
});
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
case '.css': {
|
|
42
|
+
declarations.push({
|
|
43
|
+
name: 'default',
|
|
44
|
+
kind: 'css',
|
|
45
|
+
});
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
case '.json': {
|
|
49
|
+
declarations.push({
|
|
50
|
+
name: 'default',
|
|
51
|
+
kind: 'json',
|
|
52
|
+
});
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return declarations;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Process TypeScript exports, identifying their kinds.
|
|
60
|
+
*/
|
|
61
|
+
export const process_ts_exports = (source_file, program, exports, declarations = [], log) => {
|
|
62
|
+
const export_context = new Parse_Exports_Context(program, log);
|
|
63
|
+
export_context.analyze_source_file(source_file);
|
|
64
|
+
return export_context.process_exports(source_file, exports, declarations);
|
|
65
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
import type { Logger } from '@ryanatkn/belt/log.js';
|
|
3
|
+
import type { Export_Declaration } from './parse_exports.ts';
|
|
4
|
+
/**
|
|
5
|
+
* A class to track export context and determine export kinds.
|
|
6
|
+
*/
|
|
7
|
+
export declare class Parse_Exports_Context {
|
|
8
|
+
#private;
|
|
9
|
+
readonly log: Logger | undefined;
|
|
10
|
+
debug: boolean;
|
|
11
|
+
constructor(program: ts.Program, log?: Logger);
|
|
12
|
+
/**
|
|
13
|
+
* Analyze a source file to prepare for export processing.
|
|
14
|
+
*/
|
|
15
|
+
analyze_source_file(source_file: ts.SourceFile): void;
|
|
16
|
+
/**
|
|
17
|
+
* Process a list of exported symbols and identify their kinds.
|
|
18
|
+
*/
|
|
19
|
+
process_exports(source_file: ts.SourceFile, exports: Array<ts.Symbol>, declarations?: Array<Export_Declaration>): Array<Export_Declaration>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=parse_exports_context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse_exports_context.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/parse_exports_context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAElD,OAAO,KAAK,EAAmB,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAE7E;;GAEG;AACH,qBAAa,qBAAqB;;IAQjC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,KAAK,UAAwC;gBAEjC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM;IAc7C;;OAEG;IACH,mBAAmB,CAAC,WAAW,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI;IAerD;;OAEG;IACH,eAAe,CACd,WAAW,EAAE,EAAE,CAAC,UAAU,EAC1B,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EACzB,YAAY,GAAE,KAAK,CAAC,kBAAkB,CAAM,GAC1C,KAAK,CAAC,kBAAkB,CAAC;CA+U5B"}
|