@expo/inline-modules 0.0.11 → 0.0.12

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.
@@ -1,5 +1,11 @@
1
1
  export interface InlineModulesXcodeParams {
2
2
  watchedDirectories: string[];
3
+ /**
4
+ * List of targets to which inline modules files are added. If undefined defaults to the main target only.
5
+ */
6
+ xcodeProjectTargets?: string[];
7
+ /** app config name */
8
+ name: string;
3
9
  }
4
10
  /**
5
11
  * Add watched directories as PBXFileSystemSynchronizedRootGroups to pbxproj file in the project and save the changes.
@@ -7,11 +7,60 @@ exports.updateXcodeProject = updateXcodeProject;
7
7
  const config_plugins_1 = require("@expo/config-plugins");
8
8
  const fs_1 = __importDefault(require("fs"));
9
9
  const path_1 = __importDefault(require("path"));
10
+ function escapeXMLCharacters(original) {
11
+ const noAmps = original.replace('&', '&');
12
+ const noLt = noAmps.replace('<', '&lt;');
13
+ const noGt = noLt.replace('>', '&gt;');
14
+ const noApos = noGt.replace('"', '\\"');
15
+ return noApos.replace("'", "\\'");
16
+ }
17
+ // Note that this main target name is based on how `@expo/cli/src/prebuild/renameTemplateAppNameAsync.ts` preprocesses the ios project template.
18
+ // It is neccesary to match the target name in the path to ExpoModulesProvider.swift for the main target as is used when generating it.
19
+ function getMainTargetName(config) {
20
+ const name = config.name;
21
+ const safeName = escapeXMLCharacters(name);
22
+ return config_plugins_1.IOSConfig.XcodeUtils.sanitizedName(safeName);
23
+ }
24
+ function getNativeTargetSynchronizedGroupsMap(pbxProject) {
25
+ const objects = pbxProject.hash.project.objects;
26
+ const nativeTargetSynchronizedGroups = new Map();
27
+ for (const target of pbxProject.getFirstProject().firstProject.targets) {
28
+ const nativeTargetGroup = objects.PBXNativeTarget[target.value];
29
+ const synchronizedGroups = new Set();
30
+ if (nativeTargetGroup.fileSystemSynchronizedGroups) {
31
+ for (const synchronizedGroup of nativeTargetGroup.fileSystemSynchronizedGroups) {
32
+ synchronizedGroups.add(synchronizedGroup.value);
33
+ }
34
+ }
35
+ nativeTargetSynchronizedGroups.set(target.value, synchronizedGroups);
36
+ }
37
+ return nativeTargetSynchronizedGroups;
38
+ }
39
+ function prepareSynchronizedRootGroups(pbxProject) {
40
+ const objects = pbxProject.hash.project.objects;
41
+ const fsSynchronizedRootGroups = new Map();
42
+ if (objects.PBXFileSystemSynchronizedRootGroup) {
43
+ for (const key of Object.keys(objects.PBXFileSystemSynchronizedRootGroup)) {
44
+ if (key.endsWith('_comment')) {
45
+ continue;
46
+ }
47
+ const groupObject = objects.PBXFileSystemSynchronizedRootGroup[key];
48
+ fsSynchronizedRootGroups.set(groupObject.path, key);
49
+ }
50
+ }
51
+ else {
52
+ objects.PBXFileSystemSynchronizedRootGroup = {};
53
+ }
54
+ return { fsSynchronizedRootGroups };
55
+ }
10
56
  /**
11
57
  * Add watched directories as PBXFileSystemSynchronizedRootGroups to pbxproj file in the project and save the changes.
12
58
  */
13
59
  async function updateXcodeProject(projectRoot, inlineModulesXcodeParams) {
14
60
  const swiftWatchedDirectories = inlineModulesXcodeParams.watchedDirectories;
61
+ const xcodeProjectTargets = inlineModulesXcodeParams.xcodeProjectTargets
62
+ ? new Set(inlineModulesXcodeParams.xcodeProjectTargets)
63
+ : undefined;
15
64
  // Only perform changes to pbxproj if necessary
16
65
  if (swiftWatchedDirectories.length === 0) {
17
66
  return;
@@ -20,25 +69,28 @@ async function updateXcodeProject(projectRoot, inlineModulesXcodeParams) {
20
69
  const mainGroupUUID = pbxProject.getFirstProject().firstProject.mainGroup;
21
70
  const objects = pbxProject.hash.project.objects;
22
71
  const projectRootRelativeToIos = '..';
23
- const fsSynchronizedRootGroups = new Set();
24
- if (objects.PBXFileSystemSynchronizedRootGroup) {
25
- for (const key of Object.keys(objects.PBXFileSystemSynchronizedRootGroup)) {
26
- if (key.endsWith('_comment')) {
27
- continue;
28
- }
29
- fsSynchronizedRootGroups.add(objects.PBXFileSystemSynchronizedRootGroup[key].path);
72
+ const pbxNativeTarget = pbxProject.hash.project.objects.PBXNativeTarget;
73
+ const nativeTargetSynchronizedGroups = getNativeTargetSynchronizedGroupsMap(pbxProject);
74
+ const addWatchedDirectoryToTarget = (targetUUID, nativeTargetGroup, dir, dirUUID) => {
75
+ if (!nativeTargetSynchronizedGroups.has(targetUUID)) {
76
+ nativeTargetSynchronizedGroups.set(targetUUID, new Set());
30
77
  }
31
- }
32
- else {
33
- objects.PBXFileSystemSynchronizedRootGroup = {};
34
- }
35
- let projectHasChanged = false;
36
- for (const dir of swiftWatchedDirectories) {
78
+ const targetSynchronizedGroups = nativeTargetSynchronizedGroups.get(targetUUID);
79
+ if (targetSynchronizedGroups.has(dirUUID)) {
80
+ return;
81
+ }
82
+ if (!nativeTargetGroup.fileSystemSynchronizedGroups) {
83
+ nativeTargetGroup.fileSystemSynchronizedGroups = [];
84
+ }
85
+ nativeTargetGroup.fileSystemSynchronizedGroups.push({ value: dirUUID, comment: dir });
86
+ targetSynchronizedGroups.add(dirUUID);
87
+ };
88
+ const { fsSynchronizedRootGroups } = prepareSynchronizedRootGroups(pbxProject);
89
+ const getOrCreateWatchedDirectoryUUID = (dir) => {
37
90
  const dirRelativeToIos = path_1.default.join(projectRootRelativeToIos, dir);
38
91
  if (fsSynchronizedRootGroups.has(dirRelativeToIos)) {
39
- continue;
92
+ return fsSynchronizedRootGroups.get(dirRelativeToIos);
40
93
  }
41
- projectHasChanged = true;
42
94
  const newUUID = pbxProject.generateUuid();
43
95
  objects.PBXGroup[mainGroupUUID].children.push({
44
96
  value: newUUID,
@@ -52,16 +104,26 @@ async function updateXcodeProject(projectRoot, inlineModulesXcodeParams) {
52
104
  path: dirRelativeToIos,
53
105
  sourceTree: 'SOURCE_ROOT',
54
106
  };
55
- for (const target of pbxProject.getFirstProject().firstProject.targets) {
107
+ return newUUID;
108
+ };
109
+ const targetsToUpdate = pbxProject
110
+ .getFirstProject()
111
+ .firstProject.targets.filter((target) => {
112
+ const targetUuid = target.value;
113
+ const targetName = pbxNativeTarget[targetUuid].name;
114
+ if (!xcodeProjectTargets) {
115
+ // If the xcodeProjectTargets are not provided, default to the main target
116
+ return targetName === getMainTargetName(inlineModulesXcodeParams);
117
+ }
118
+ return xcodeProjectTargets.has(targetName);
119
+ });
120
+ for (const watchedDirectory of swiftWatchedDirectories) {
121
+ const dirUUID = getOrCreateWatchedDirectoryUUID(watchedDirectory);
122
+ for (const target of targetsToUpdate) {
56
123
  const nativeTargetGroup = objects.PBXNativeTarget[target.value];
57
- if (!nativeTargetGroup.fileSystemSynchronizedGroups) {
58
- nativeTargetGroup.fileSystemSynchronizedGroups = [];
59
- }
60
- nativeTargetGroup.fileSystemSynchronizedGroups.push({ value: newUUID, comment: dir });
124
+ addWatchedDirectoryToTarget(target.value, nativeTargetGroup, watchedDirectory, dirUUID);
61
125
  }
62
126
  }
63
- if (projectHasChanged) {
64
- await fs_1.default.promises.writeFile(pbxProject.filepath, pbxProject.writeSync());
65
- }
127
+ await fs_1.default.promises.writeFile(pbxProject.filepath, pbxProject.writeSync());
66
128
  }
67
129
  //# sourceMappingURL=xcodeProjectUpdates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"xcodeProjectUpdates.js","sourceRoot":"","sources":["../src/xcodeProjectUpdates.ts"],"names":[],"mappings":";;;;;AAWA,gDA+DC;AA1ED,yDAAiD;AACjD,4CAAoB;AACpB,gDAAwB;AAMxB;;GAEG;AACI,KAAK,UAAU,kBAAkB,CACtC,WAAmB,EACnB,wBAAkD;IAElD,MAAM,uBAAuB,GAAG,wBAAwB,CAAC,kBAAkB,CAAC;IAC5E,+CAA+C;IAC/C,IAAI,uBAAuB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,0BAAS,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,UAAU,CAAC,eAAe,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC;IAC1E,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAChD,MAAM,wBAAwB,GAAG,IAAI,CAAC;IAEtC,MAAM,wBAAwB,GAAgB,IAAI,GAAG,EAAU,CAAC;IAChE,IAAI,OAAO,CAAC,kCAAkC,EAAE,CAAC;QAC/C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,kCAAkC,CAAC,EAAE,CAAC;YAC1E,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7B,SAAS;YACX,CAAC;YACD,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,kCAAkC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,kCAAkC,GAAG,EAAE,CAAC;IAClD,CAAC;IAED,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAC1C,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;QAClE,IAAI,wBAAwB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACnD,SAAS;QACX,CAAC;QAED,iBAAiB,GAAG,IAAI,CAAC;QAEzB,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;QAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC5C,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,GAAG;SACb,CAAC,CAAC;QAEH,OAAO,CAAC,kCAAkC,CAAC,OAAO,CAAC,GAAG;YACpD,GAAG,EAAE,oCAAoC;YACzC,iBAAiB,EAAE,EAAE;YACrB,eAAe,EAAE,EAAE;YACnB,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,gBAAgB;YACtB,UAAU,EAAE,aAAa;SAC1B,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,eAAe,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YACvE,MAAM,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChE,IAAI,CAAC,iBAAiB,CAAC,4BAA4B,EAAE,CAAC;gBACpD,iBAAiB,CAAC,4BAA4B,GAAG,EAAE,CAAC;YACtD,CAAC;YACD,iBAAiB,CAAC,4BAA4B,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAED,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"xcodeProjectUpdates.js","sourceRoot":"","sources":["../src/xcodeProjectUpdates.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/inline-modules",
3
- "version": "0.0.11",
3
+ "version": "0.0.12",
4
4
  "description": "The Expo inline modules",
5
5
  "main": "build/index.js",
6
6
  "files": [
@@ -22,14 +22,14 @@
22
22
  "url": "https://github.com/expo/expo/issues"
23
23
  },
24
24
  "dependencies": {
25
- "@expo/config-plugins": "~56.0.8"
25
+ "@expo/config-plugins": "~56.0.9"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/jest": "^29.2.1",
29
29
  "@types/node": "^22.14.0",
30
30
  "expo-module-scripts": "56.0.3"
31
31
  },
32
- "gitHead": "175f1e78e3444ca99ddea473faea6777a0656668",
32
+ "gitHead": "812dc007aefed0c432c0439fdfe05ee2f4f21da2",
33
33
  "scripts": {
34
34
  "build": "expo-module build",
35
35
  "clean": "expo-module clean",