forked from codesandbox/codesandbox-client
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgenerate-package-json.ts
More file actions
44 lines (38 loc) · 915 Bytes
/
generate-package-json.ts
File metadata and controls
44 lines (38 loc) · 915 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import { IFiles, IFile, IDependencies } from '../manager';
export function getPackageJSON(
dependencies: IDependencies = {},
entry: string = '/index.js'
) {
return JSON.stringify(
{
name: 'sandpack-project',
main: entry,
dependencies,
},
null,
2
);
}
export default function createMissingPackageJSON(
files: IFiles,
dependencies?: IDependencies,
entry?: string
) {
const newFiles = { ...files };
if (!newFiles['/package.json']) {
if (!dependencies) {
throw new Error(
'No dependencies specified, please specify either a package.json or dependencies.'
);
}
if (!entry) {
throw new Error(
"No entry specified, please specify either a package.json with 'main' field or dependencies."
);
}
newFiles['/package.json'] = {
code: getPackageJSON(dependencies, entry),
};
}
return newFiles;
}