@atlaspack/core 2.13.2-canary.3659 → 2.13.2-canary.3660

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.
@@ -71,10 +71,31 @@ function generateInstanceId(entries) {
71
71
  function compileGlobs(globs) {
72
72
  return globs.map(glob => (0, _utils().globToRegex)(glob));
73
73
  }
74
+ function getDefaultFS() {
75
+ if ((0, _featureFlags().getFeatureFlagValue)('vcsMode') !== 'OLD') {
76
+ return new (_fs().NodeVCSAwareFS)({
77
+ gitRepoPath: null,
78
+ excludePatterns: [],
79
+ logEventDiff: () => {}
80
+ });
81
+ }
82
+ return new (_fs().NodeFS)();
83
+ }
84
+ async function findGitRepositoryRoot(inputFS, projectRoot) {
85
+ let candidate = projectRoot;
86
+ while (candidate !== _path().default.parse(candidate).root) {
87
+ const gitRepoPath = _path().default.join(candidate, '.git');
88
+ if (await inputFS.exists(gitRepoPath)) {
89
+ return candidate;
90
+ }
91
+ candidate = _path().default.dirname(candidate);
92
+ }
93
+ return null;
94
+ }
74
95
  async function resolveOptions(initialOptions) {
75
96
  var _initialOptions$defau, _initialOptions$defau2, _initialOptions$defau3, _initialOptions$defau4, _initialOptions$addit, _initialOptions$defau5, _initialOptions$defau6, _initialOptions$defau7, _initialOptions$defau8, _initialOptions$defau9;
76
- let inputFS = initialOptions.inputFS || new (_fs().NodeFS)();
77
- let outputFS = initialOptions.outputFS || new (_fs().NodeFS)();
97
+ const inputFS = initialOptions.inputFS || getDefaultFS();
98
+ const outputFS = initialOptions.outputFS || getDefaultFS();
78
99
  let inputCwd = inputFS.cwd();
79
100
  let outputCwd = outputFS.cwd();
80
101
  let entries;
@@ -101,6 +122,13 @@ async function resolveOptions(initialOptions) {
101
122
  let projectRootFile = (await (0, _utils().resolveConfig)(inputFS, _path().default.join(entryRoot, 'index'), [...LOCK_FILE_NAMES, '.git', '.hg'], _path().default.parse(entryRoot).root)) || _path().default.join(inputCwd, 'index'); // ? Should this just be rootDir
102
123
 
103
124
  let projectRoot = _path().default.dirname(projectRootFile);
125
+ const gitRoot = await findGitRepositoryRoot(inputFS, projectRoot);
126
+ if (inputFS instanceof _fs().NodeVCSAwareFS) {
127
+ inputFS.setGitRepoPath(gitRoot);
128
+ }
129
+ if (outputFS instanceof _fs().NodeVCSAwareFS) {
130
+ outputFS.setGitRepoPath(gitRoot);
131
+ }
104
132
  let packageManager = initialOptions.packageManager || new (_packageManager().NodePackageManager)(inputFS, projectRoot);
105
133
  let cacheDir =
106
134
  // If a cacheDir is provided, resolve it relative to cwd. Otherwise,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaspack/core",
3
- "version": "2.13.2-canary.3659+f635123f9",
3
+ "version": "2.13.2-canary.3660+1179fc745",
4
4
  "license": "(MIT OR Apache-2.0)",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -20,21 +20,21 @@
20
20
  "check-ts": "tsc --noEmit index.d.ts"
21
21
  },
22
22
  "dependencies": {
23
- "@atlaspack/build-cache": "2.13.2-canary.3659+f635123f9",
24
- "@atlaspack/cache": "2.13.2-canary.3659+f635123f9",
25
- "@atlaspack/diagnostic": "2.13.2-canary.3659+f635123f9",
26
- "@atlaspack/events": "2.13.2-canary.3659+f635123f9",
27
- "@atlaspack/feature-flags": "2.13.2-canary.3659+f635123f9",
28
- "@atlaspack/fs": "2.13.2-canary.3659+f635123f9",
29
- "@atlaspack/graph": "3.3.2-canary.3659+f635123f9",
30
- "@atlaspack/logger": "2.13.2-canary.3659+f635123f9",
31
- "@atlaspack/package-manager": "2.13.2-canary.3659+f635123f9",
32
- "@atlaspack/plugin": "2.13.2-canary.3659+f635123f9",
33
- "@atlaspack/profiler": "2.13.2-canary.3659+f635123f9",
34
- "@atlaspack/rust": "2.13.2-canary.3659+f635123f9",
35
- "@atlaspack/types": "2.13.2-canary.3659+f635123f9",
36
- "@atlaspack/utils": "2.13.2-canary.3659+f635123f9",
37
- "@atlaspack/workers": "2.13.2-canary.3659+f635123f9",
23
+ "@atlaspack/build-cache": "2.13.2-canary.3660+1179fc745",
24
+ "@atlaspack/cache": "2.13.2-canary.3660+1179fc745",
25
+ "@atlaspack/diagnostic": "2.13.2-canary.3660+1179fc745",
26
+ "@atlaspack/events": "2.13.2-canary.3660+1179fc745",
27
+ "@atlaspack/feature-flags": "2.13.2-canary.3660+1179fc745",
28
+ "@atlaspack/fs": "2.13.2-canary.3660+1179fc745",
29
+ "@atlaspack/graph": "3.3.2-canary.3660+1179fc745",
30
+ "@atlaspack/logger": "2.13.2-canary.3660+1179fc745",
31
+ "@atlaspack/package-manager": "2.13.2-canary.3660+1179fc745",
32
+ "@atlaspack/plugin": "2.13.2-canary.3660+1179fc745",
33
+ "@atlaspack/profiler": "2.13.2-canary.3660+1179fc745",
34
+ "@atlaspack/rust": "2.13.2-canary.3660+1179fc745",
35
+ "@atlaspack/types": "2.13.2-canary.3660+1179fc745",
36
+ "@atlaspack/utils": "2.13.2-canary.3660+1179fc745",
37
+ "@atlaspack/workers": "2.13.2-canary.3660+1179fc745",
38
38
  "@mischnic/json-sourcemap": "^0.1.0",
39
39
  "@parcel/source-map": "^2.1.1",
40
40
  "base-x": "^3.0.8",
@@ -66,5 +66,5 @@
66
66
  "browser": {
67
67
  "./src/serializerCore.js": "./src/serializerCore.browser.js"
68
68
  },
69
- "gitHead": "f635123f9a06961bc5e053e237f1023f10800ea3"
69
+ "gitHead": "1179fc745531343d2b5926ed4e78213a2a00229c"
70
70
  }
@@ -11,9 +11,9 @@ import type {AtlaspackOptions} from './types';
11
11
 
12
12
  import path from 'path';
13
13
  import {hashString} from '@atlaspack/rust';
14
- import {NodeFS} from '@atlaspack/fs';
14
+ import {NodeFS, NodeVCSAwareFS} from '@atlaspack/fs';
15
15
  import {LMDBCache, LMDBLiteCache, FSCache} from '@atlaspack/cache';
16
- import {getFeatureFlag} from '@atlaspack/feature-flags';
16
+ import {getFeatureFlag, getFeatureFlagValue} from '@atlaspack/feature-flags';
17
17
  import {NodePackageManager} from '@atlaspack/package-manager';
18
18
  import {
19
19
  getRootDir,
@@ -45,11 +45,39 @@ function compileGlobs(globs: string[]): RegExp[] {
45
45
  return globs.map((glob) => globToRegex(glob));
46
46
  }
47
47
 
48
+ function getDefaultFS(): FileSystem {
49
+ if (getFeatureFlagValue('vcsMode') !== 'OLD') {
50
+ return new NodeVCSAwareFS({
51
+ gitRepoPath: null,
52
+ excludePatterns: [],
53
+ logEventDiff: () => {},
54
+ });
55
+ }
56
+
57
+ return new NodeFS();
58
+ }
59
+
60
+ async function findGitRepositoryRoot(
61
+ inputFS: FileSystem,
62
+ projectRoot: FilePath,
63
+ ): Promise<null | FilePath> {
64
+ let candidate = projectRoot;
65
+ while (candidate !== path.parse(candidate).root) {
66
+ const gitRepoPath = path.join(candidate, '.git');
67
+ if (await inputFS.exists(gitRepoPath)) {
68
+ return candidate;
69
+ }
70
+ candidate = path.dirname(candidate);
71
+ }
72
+
73
+ return null;
74
+ }
75
+
48
76
  export default async function resolveOptions(
49
77
  initialOptions: InitialAtlaspackOptions,
50
78
  ): Promise<AtlaspackOptions> {
51
- let inputFS = initialOptions.inputFS || new NodeFS();
52
- let outputFS = initialOptions.outputFS || new NodeFS();
79
+ const inputFS = initialOptions.inputFS || getDefaultFS();
80
+ const outputFS = initialOptions.outputFS || getDefaultFS();
53
81
 
54
82
  let inputCwd = inputFS.cwd();
55
83
  let outputCwd = outputFS.cwd();
@@ -90,6 +118,15 @@ export default async function resolveOptions(
90
118
 
91
119
  let projectRoot = path.dirname(projectRootFile);
92
120
 
121
+ const gitRoot = await findGitRepositoryRoot(inputFS, projectRoot);
122
+ if (inputFS instanceof NodeVCSAwareFS) {
123
+ inputFS.setGitRepoPath(gitRoot);
124
+ }
125
+
126
+ if (outputFS instanceof NodeVCSAwareFS) {
127
+ outputFS.setGitRepoPath(gitRoot);
128
+ }
129
+
93
130
  let packageManager =
94
131
  initialOptions.packageManager ||
95
132
  new NodePackageManager(inputFS, projectRoot);