expo-type-information 0.1.1 → 0.1.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.
|
@@ -24,16 +24,30 @@ async function getResolvedWatchedDirectoriesFromAppJson(appJsonPath) {
|
|
|
24
24
|
}
|
|
25
25
|
return null;
|
|
26
26
|
}
|
|
27
|
-
async function generateInlineModuleTSFiles({ filePath, dirPath, typeInference, mapUnicodeCharacters, }) {
|
|
27
|
+
async function generateInlineModuleTSFiles({ filePath, dirPath, typeInference, mapUnicodeCharacters, compileOnlyModules, }) {
|
|
28
28
|
return await (0, commandUtils_1.generateConciseTsFiles)({
|
|
29
|
-
realInputPaths: [filePath],
|
|
29
|
+
realInputPaths: [filePath, ...compileOnlyModules],
|
|
30
30
|
realOutputPath: dirPath,
|
|
31
31
|
typeInference,
|
|
32
32
|
watcher: false,
|
|
33
33
|
mapUnicodeCharacters,
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
|
-
|
|
36
|
+
const swiftModuleDefinitionRegex = /\bfunc\s+definition\s*\(\s*\)\s*->\s*[\w.]*ModuleDefinition\b/;
|
|
37
|
+
async function hasSwiftModuleDefinition(absoluteFilePath) {
|
|
38
|
+
try {
|
|
39
|
+
const contents = await fs_1.default.promises.readFile(absoluteFilePath, 'utf8');
|
|
40
|
+
return swiftModuleDefinitionRegex.test(contents);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
console.warn(`Swift inline module '${absoluteFilePath}' could not be opened.`);
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async function fileHasModuleDeclaration(filePath) {
|
|
48
|
+
return hasSwiftModuleDefinition(filePath);
|
|
49
|
+
}
|
|
50
|
+
async function inlineModulesWatcher({ appJsonPath, typeInference, mapUnicodeCharacters, compileOnlyModules, }) {
|
|
37
51
|
const debouncedInlineModulesTsGeneration = (0, commandUtils_1.debounce)(generateInlineModuleTSFiles);
|
|
38
52
|
const watchedDirectoriesWatchers = new Map();
|
|
39
53
|
const setupWatchedDirectoriesWatchers = async () => {
|
|
@@ -60,13 +74,21 @@ async function inlineModulesWatcher({ appJsonPath, typeInference, mapUnicodeChar
|
|
|
60
74
|
}
|
|
61
75
|
const resolvedFilePath = path_1.default.resolve(dir, fileName);
|
|
62
76
|
if (fs_1.default.existsSync(resolvedFilePath)) {
|
|
77
|
+
if (!(await fileHasModuleDeclaration(resolvedFilePath))) {
|
|
78
|
+
compileOnlyModules.add(resolvedFilePath);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
63
81
|
debouncedInlineModulesTsGeneration({
|
|
64
82
|
filePath: resolvedFilePath,
|
|
65
83
|
dirPath: path_1.default.dirname(resolvedFilePath),
|
|
66
84
|
typeInference,
|
|
67
85
|
mapUnicodeCharacters,
|
|
86
|
+
compileOnlyModules,
|
|
68
87
|
});
|
|
69
88
|
}
|
|
89
|
+
else {
|
|
90
|
+
compileOnlyModules.delete(resolvedFilePath);
|
|
91
|
+
}
|
|
70
92
|
});
|
|
71
93
|
};
|
|
72
94
|
for (const dir of watchedDirectories ?? []) {
|
|
@@ -113,26 +135,36 @@ async function inlineModulesInterfaceCommand(cli) {
|
|
|
113
135
|
if (!watchedDirectories) {
|
|
114
136
|
return;
|
|
115
137
|
}
|
|
116
|
-
const
|
|
138
|
+
const inlineModulesDirents = [];
|
|
139
|
+
const compileOnlyModules = new Set([]);
|
|
117
140
|
for (const dir of watchedDirectories) {
|
|
118
141
|
for await (const dirent of (0, utils_1.scanFilesRecursively)(dir)) {
|
|
119
142
|
if (!dirent.name.endsWith('.swift')) {
|
|
120
143
|
continue;
|
|
121
144
|
}
|
|
122
|
-
|
|
145
|
+
const resolvedFilePath = dirent.path;
|
|
146
|
+
if (fs_1.default.existsSync(resolvedFilePath) &&
|
|
147
|
+
!(await fileHasModuleDeclaration(resolvedFilePath))) {
|
|
148
|
+
compileOnlyModules.add(resolvedFilePath);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
inlineModulesDirents.push(dirent);
|
|
152
|
+
}
|
|
123
153
|
}
|
|
124
154
|
}
|
|
125
|
-
await (0, utils_1.taskAll)(
|
|
155
|
+
await (0, utils_1.taskAll)(inlineModulesDirents, async (dirent) => await generateInlineModuleTSFiles({
|
|
126
156
|
filePath: dirent.path,
|
|
127
157
|
dirPath: dirent.parentPath,
|
|
128
158
|
typeInference: parsedArgs.typeInference,
|
|
129
159
|
mapUnicodeCharacters,
|
|
160
|
+
compileOnlyModules,
|
|
130
161
|
}));
|
|
131
162
|
if (watcher) {
|
|
132
163
|
await inlineModulesWatcher({
|
|
133
164
|
appJsonPath,
|
|
134
165
|
typeInference: parsedArgs.typeInference,
|
|
135
166
|
mapUnicodeCharacters,
|
|
167
|
+
compileOnlyModules,
|
|
136
168
|
});
|
|
137
169
|
}
|
|
138
170
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inlineModulesInterfaceCommand.js","sourceRoot":"","sources":["../../src/commands/inlineModulesInterfaceCommand.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"inlineModulesInterfaceCommand.js","sourceRoot":"","sources":["../../src/commands/inlineModulesInterfaceCommand.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-type-information",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"react-native",
|
|
6
6
|
"expo",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"ts-jest": "^29.1.2",
|
|
37
37
|
"expo-module-scripts": "56.0.3"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "6ffed84381e2d2bb80c2fc713d99724f707d6c06",
|
|
40
40
|
"scripts": {
|
|
41
41
|
"build": "expo-module build",
|
|
42
42
|
"clean": "expo-module clean",
|
|
@@ -35,6 +35,7 @@ async function getResolvedWatchedDirectoriesFromAppJson(
|
|
|
35
35
|
type GenerateInlineModulesTSFilesOptions = {
|
|
36
36
|
filePath: string;
|
|
37
37
|
dirPath: string;
|
|
38
|
+
compileOnlyModules: Set<string>;
|
|
38
39
|
typeInference: TypeInferenceOption;
|
|
39
40
|
mapUnicodeCharacters: boolean;
|
|
40
41
|
};
|
|
@@ -44,9 +45,10 @@ async function generateInlineModuleTSFiles({
|
|
|
44
45
|
dirPath,
|
|
45
46
|
typeInference,
|
|
46
47
|
mapUnicodeCharacters,
|
|
48
|
+
compileOnlyModules,
|
|
47
49
|
}: GenerateInlineModulesTSFilesOptions) {
|
|
48
50
|
return await generateConciseTsFiles({
|
|
49
|
-
realInputPaths: [filePath],
|
|
51
|
+
realInputPaths: [filePath, ...compileOnlyModules],
|
|
50
52
|
realOutputPath: dirPath,
|
|
51
53
|
typeInference,
|
|
52
54
|
watcher: false,
|
|
@@ -58,12 +60,29 @@ type InlineModulesWatcherOptions = {
|
|
|
58
60
|
appJsonPath: string;
|
|
59
61
|
typeInference: TypeInferenceOption;
|
|
60
62
|
mapUnicodeCharacters: boolean;
|
|
63
|
+
compileOnlyModules: Set<string>;
|
|
61
64
|
};
|
|
62
65
|
|
|
66
|
+
const swiftModuleDefinitionRegex = /\bfunc\s+definition\s*\(\s*\)\s*->\s*[\w.]*ModuleDefinition\b/;
|
|
67
|
+
async function hasSwiftModuleDefinition(absoluteFilePath: string): Promise<boolean> {
|
|
68
|
+
try {
|
|
69
|
+
const contents = await fs.promises.readFile(absoluteFilePath, 'utf8');
|
|
70
|
+
return swiftModuleDefinitionRegex.test(contents);
|
|
71
|
+
} catch {
|
|
72
|
+
console.warn(`Swift inline module '${absoluteFilePath}' could not be opened.`);
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
async function fileHasModuleDeclaration(filePath: string): Promise<boolean> {
|
|
78
|
+
return hasSwiftModuleDefinition(filePath);
|
|
79
|
+
}
|
|
80
|
+
|
|
63
81
|
async function inlineModulesWatcher({
|
|
64
82
|
appJsonPath,
|
|
65
83
|
typeInference,
|
|
66
84
|
mapUnicodeCharacters,
|
|
85
|
+
compileOnlyModules,
|
|
67
86
|
}: InlineModulesWatcherOptions) {
|
|
68
87
|
const debouncedInlineModulesTsGeneration = debounce(generateInlineModuleTSFiles);
|
|
69
88
|
const watchedDirectoriesWatchers: Map<string, fs.FSWatcher> = new Map<string, fs.FSWatcher>();
|
|
@@ -93,15 +112,22 @@ async function inlineModulesWatcher({
|
|
|
93
112
|
if (!fileName || !fileName.endsWith('.swift')) {
|
|
94
113
|
return;
|
|
95
114
|
}
|
|
96
|
-
|
|
97
115
|
const resolvedFilePath = path.resolve(dir, fileName);
|
|
98
116
|
if (fs.existsSync(resolvedFilePath)) {
|
|
117
|
+
if (!(await fileHasModuleDeclaration(resolvedFilePath))) {
|
|
118
|
+
compileOnlyModules.add(resolvedFilePath);
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
|
|
99
122
|
debouncedInlineModulesTsGeneration({
|
|
100
123
|
filePath: resolvedFilePath,
|
|
101
124
|
dirPath: path.dirname(resolvedFilePath),
|
|
102
125
|
typeInference,
|
|
103
126
|
mapUnicodeCharacters,
|
|
127
|
+
compileOnlyModules,
|
|
104
128
|
});
|
|
129
|
+
} else {
|
|
130
|
+
compileOnlyModules.delete(resolvedFilePath);
|
|
105
131
|
}
|
|
106
132
|
});
|
|
107
133
|
};
|
|
@@ -165,25 +191,34 @@ export async function inlineModulesInterfaceCommand(cli: commander.Command) {
|
|
|
165
191
|
return;
|
|
166
192
|
}
|
|
167
193
|
|
|
168
|
-
const
|
|
194
|
+
const inlineModulesDirents = [];
|
|
195
|
+
const compileOnlyModules = new Set<string>([]);
|
|
169
196
|
for (const dir of watchedDirectories) {
|
|
170
197
|
for await (const dirent of scanFilesRecursively(dir)) {
|
|
171
198
|
if (!dirent.name.endsWith('.swift')) {
|
|
172
199
|
continue;
|
|
173
200
|
}
|
|
174
|
-
|
|
175
|
-
|
|
201
|
+
const resolvedFilePath = dirent.path;
|
|
202
|
+
if (
|
|
203
|
+
fs.existsSync(resolvedFilePath) &&
|
|
204
|
+
!(await fileHasModuleDeclaration(resolvedFilePath))
|
|
205
|
+
) {
|
|
206
|
+
compileOnlyModules.add(resolvedFilePath);
|
|
207
|
+
} else {
|
|
208
|
+
inlineModulesDirents.push(dirent);
|
|
209
|
+
}
|
|
176
210
|
}
|
|
177
211
|
}
|
|
178
212
|
|
|
179
213
|
await taskAll(
|
|
180
|
-
|
|
214
|
+
inlineModulesDirents,
|
|
181
215
|
async (dirent) =>
|
|
182
216
|
await generateInlineModuleTSFiles({
|
|
183
217
|
filePath: dirent.path,
|
|
184
218
|
dirPath: dirent.parentPath,
|
|
185
219
|
typeInference: parsedArgs.typeInference,
|
|
186
220
|
mapUnicodeCharacters,
|
|
221
|
+
compileOnlyModules,
|
|
187
222
|
})
|
|
188
223
|
);
|
|
189
224
|
|
|
@@ -192,6 +227,7 @@ export async function inlineModulesInterfaceCommand(cli: commander.Command) {
|
|
|
192
227
|
appJsonPath,
|
|
193
228
|
typeInference: parsedArgs.typeInference,
|
|
194
229
|
mapUnicodeCharacters,
|
|
230
|
+
compileOnlyModules,
|
|
195
231
|
});
|
|
196
232
|
}
|
|
197
233
|
});
|