piral-cli 0.15.0-alpha.4311 → 0.15.0-alpha.4314
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/lib/apps/new-pilet.d.ts +2 -2
- package/lib/apps/new-pilet.js.map +1 -1
- package/lib/apps/new-piral.d.ts +2 -2
- package/lib/apps/new-piral.js +3 -2
- package/lib/apps/new-piral.js.map +1 -1
- package/lib/apps/upgrade-pilet.js +1 -1
- package/lib/apps/upgrade-pilet.js.map +1 -1
- package/lib/commands.js +4 -4
- package/lib/commands.js.map +1 -1
- package/lib/common/config.d.ts +1 -2
- package/lib/common/config.js +1 -2
- package/lib/common/config.js.map +1 -1
- package/lib/common/emulator.js +1 -1
- package/lib/common/emulator.js.map +1 -1
- package/lib/common/enums.d.ts +0 -4
- package/lib/common/enums.js +1 -6
- package/lib/common/enums.js.map +1 -1
- package/lib/common/language.d.ts +3 -13
- package/lib/common/language.js +52 -12
- package/lib/common/language.js.map +1 -1
- package/lib/common/package.d.ts +9 -3
- package/lib/common/package.js +11 -25
- package/lib/common/package.js.map +1 -1
- package/lib/common/scaffold.d.ts +12 -10
- package/lib/common/scaffold.js +6 -12
- package/lib/common/scaffold.js.map +1 -1
- package/lib/common/template.d.ts +1 -3
- package/lib/common/template.js +21 -47
- package/lib/common/template.js.map +1 -1
- package/lib/helpers.d.ts +3 -5
- package/lib/helpers.js +2 -20
- package/lib/helpers.js.map +1 -1
- package/lib/types/common.d.ts +0 -1
- package/lib/types/public.d.ts +1 -0
- package/package.json +2 -4
- package/src/apps/new-pilet.test.ts +1 -2
- package/src/apps/new-pilet.ts +1 -2
- package/src/apps/new-piral.test.ts +1 -2
- package/src/apps/new-piral.ts +5 -9
- package/src/apps/upgrade-pilet.ts +1 -2
- package/src/commands.ts +5 -6
- package/src/common/config.ts +2 -3
- package/src/common/emulator.ts +2 -2
- package/src/common/enums.ts +0 -5
- package/src/common/language.ts +66 -11
- package/src/common/package.test.ts +11 -3
- package/src/common/package.ts +20 -34
- package/src/common/scaffold.ts +8 -16
- package/src/common/template.ts +19 -40
- package/src/helpers.test.ts +2 -22
- package/src/helpers.ts +3 -23
- package/src/types/common.ts +0 -1
- package/src/types/public.ts +2 -0
- package/templates/piral-index.js.ejs +0 -16
package/src/common/language.ts
CHANGED
|
@@ -1,45 +1,100 @@
|
|
|
1
1
|
import { log } from './log';
|
|
2
|
-
import { SourceLanguage } from '
|
|
2
|
+
import { Framework, SourceLanguage } from '../types';
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
const react17Deps = {
|
|
5
5
|
react: '^17',
|
|
6
6
|
'react-dom': '^17',
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const react18Deps = {
|
|
10
|
+
react: '^18',
|
|
11
|
+
'react-dom': '^18',
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const reactRouter5Deps = {
|
|
7
15
|
'react-router': '^5',
|
|
8
16
|
'react-router-dom': '^5',
|
|
9
17
|
};
|
|
10
18
|
|
|
11
|
-
|
|
19
|
+
const reactRouter6Deps = {
|
|
20
|
+
'react-router': '^6',
|
|
21
|
+
'react-router-dom': '^6',
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const react17Typings = {
|
|
12
25
|
'@types/react': '^17',
|
|
13
26
|
'@types/react-dom': '^17',
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const react18Typings = {
|
|
30
|
+
'@types/react': '^18',
|
|
31
|
+
'@types/react-dom': '^18',
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const reactRouter5Typings = {
|
|
14
35
|
'@types/react-router': '^5',
|
|
15
36
|
'@types/react-router-dom': '^5',
|
|
16
37
|
};
|
|
17
38
|
|
|
18
|
-
|
|
39
|
+
const reactRouter6Typings = {
|
|
40
|
+
'@types/react-router': '^6',
|
|
41
|
+
'@types/react-router-dom': '^6',
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const defaultDeps = {};
|
|
45
|
+
|
|
46
|
+
const defaultTypings = {
|
|
47
|
+
'@types/react': '*',
|
|
48
|
+
'@types/react-dom': '*',
|
|
49
|
+
'@types/react-router': '*',
|
|
50
|
+
'@types/react-router-dom': '*',
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export function getDependencyPackages(framework: Framework, reactVersion: number, reactRouterVersion: number) {
|
|
54
|
+
// take default packages only if piral-core
|
|
55
|
+
return framework !== 'piral-core'
|
|
56
|
+
? {}
|
|
57
|
+
: {
|
|
58
|
+
...(reactVersion < 18 ? react17Deps : react18Deps),
|
|
59
|
+
...(reactRouterVersion < 6 ? reactRouter5Deps : reactRouter6Deps),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export function getDevDependencyPackages(framework: Framework, reactVersion: number, reactRouterVersion: number) {
|
|
64
|
+
// take default dev packages only if not piral-base
|
|
65
|
+
return framework === 'piral-base'
|
|
66
|
+
? {}
|
|
67
|
+
: {
|
|
68
|
+
...(reactVersion < 18 ? react17Typings : react18Typings),
|
|
69
|
+
...(reactRouterVersion < 6 ? reactRouter5Typings : reactRouter6Typings),
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function getDependencies(language: SourceLanguage, packages: Record<string, string> = defaultDeps) {
|
|
19
74
|
switch (language) {
|
|
20
|
-
case
|
|
21
|
-
case
|
|
75
|
+
case 'js':
|
|
76
|
+
case 'ts':
|
|
22
77
|
return {
|
|
23
78
|
...packages,
|
|
24
79
|
};
|
|
25
80
|
default:
|
|
26
|
-
log('generalDebug_0003', 'Did not find a valid language.
|
|
81
|
+
log('generalDebug_0003', 'Did not find a valid language. Skipping "dependencies".');
|
|
27
82
|
return {};
|
|
28
83
|
}
|
|
29
84
|
}
|
|
30
85
|
|
|
31
|
-
export function getDevDependencies(language: SourceLanguage, typings: Record<string, string> =
|
|
86
|
+
export function getDevDependencies(language: SourceLanguage, typings: Record<string, string> = defaultTypings) {
|
|
32
87
|
switch (language) {
|
|
33
|
-
case
|
|
88
|
+
case 'ts':
|
|
34
89
|
return {
|
|
35
90
|
...typings,
|
|
36
91
|
'@types/node': 'latest',
|
|
37
92
|
typescript: 'latest',
|
|
38
93
|
};
|
|
39
|
-
case
|
|
94
|
+
case 'js':
|
|
40
95
|
return {};
|
|
41
96
|
default:
|
|
42
|
-
log('generalDebug_0003', 'Did not find a valid language.
|
|
97
|
+
log('generalDebug_0003', 'Did not find a valid language. Skipping "devDependencies".');
|
|
43
98
|
return {};
|
|
44
99
|
}
|
|
45
100
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { findPackageVersion, getPiralPackage, getPiletsInfo, retrievePiletData } from './package';
|
|
2
2
|
import { cliVersion } from './info';
|
|
3
|
-
import { SourceLanguage } from './enums';
|
|
4
3
|
|
|
5
4
|
describe('CLI package module', () => {
|
|
6
5
|
it('findPackageVersion finds the current package version', async () => {
|
|
@@ -48,9 +47,18 @@ describe('CLI package module', () => {
|
|
|
48
47
|
});
|
|
49
48
|
|
|
50
49
|
it('getPiralPackage returns piral package', () => {
|
|
51
|
-
let result = getPiralPackage(
|
|
50
|
+
let result = getPiralPackage(
|
|
51
|
+
'app',
|
|
52
|
+
{ language: 'ts', packageName: 'piral-base', reactRouterVersion: 5, reactVersion: 17 },
|
|
53
|
+
'1.0.0',
|
|
54
|
+
'webpack',
|
|
55
|
+
);
|
|
52
56
|
expect(result.devDependencies['piral-cli-webpack']).toEqual('1.0.0');
|
|
53
|
-
result = getPiralPackage(
|
|
57
|
+
result = getPiralPackage(
|
|
58
|
+
'app',
|
|
59
|
+
{ language: 'ts', packageName: 'piral-base', reactRouterVersion: 5, reactVersion: 17 },
|
|
60
|
+
'1.0.0',
|
|
61
|
+
);
|
|
54
62
|
expect(result.devDependencies).not.toContain('piral-cli-webpack');
|
|
55
63
|
});
|
|
56
64
|
|
package/src/common/package.ts
CHANGED
|
@@ -2,18 +2,17 @@ import { resolve, join, extname, basename, dirname, relative } from 'path';
|
|
|
2
2
|
import { log, fail } from './log';
|
|
3
3
|
import { cliVersion } from './info';
|
|
4
4
|
import { unpackTarball } from './archive';
|
|
5
|
-
import { getDependencies, getDevDependencies } from './language';
|
|
6
|
-
import {
|
|
5
|
+
import { getDependencies, getDependencyPackages, getDevDependencies, getDevDependencyPackages } from './language';
|
|
6
|
+
import { ForceOverwrite } from './enums';
|
|
7
7
|
import { checkAppShellCompatibility } from './compatibility';
|
|
8
8
|
import { deepMerge } from './merge';
|
|
9
|
-
import { applyTemplate } from './template';
|
|
10
9
|
import { readImportmap } from './importmap';
|
|
11
10
|
import { filesTar, filesOnceTar, declarationEntryExtensions, bundlerNames } from './constants';
|
|
12
11
|
import { getHash, checkIsDirectory, matchFiles } from './io';
|
|
13
12
|
import { readJson, copy, updateExistingJson, findFile, checkExists } from './io';
|
|
14
13
|
import { isGitPackage, isLocalPackage, makeGitUrl, makeFilePath } from './npm';
|
|
15
14
|
import { makePiletExternals, makeExternals, findPackageRoot } from './npm';
|
|
16
|
-
import { Framework, FileInfo, PiletsInfo, TemplateFileLocation, PackageData } from '../types';
|
|
15
|
+
import { SourceLanguage, Framework, FileInfo, PiletsInfo, TemplateFileLocation, PackageData } from '../types';
|
|
17
16
|
|
|
18
17
|
function appendBundler(devDependencies: Record<string, string>, bundler: string, version: string) {
|
|
19
18
|
if (bundler && bundler !== 'none') {
|
|
@@ -49,7 +48,6 @@ function getDependencyVersion(
|
|
|
49
48
|
interface FileDescriptor {
|
|
50
49
|
sourcePath: string;
|
|
51
50
|
targetPath: string;
|
|
52
|
-
template: boolean;
|
|
53
51
|
}
|
|
54
52
|
|
|
55
53
|
const globPatternStartIndicators = ['*', '?', '[', '!(', '?(', '+(', '@('];
|
|
@@ -59,12 +57,7 @@ async function getMatchingFiles(
|
|
|
59
57
|
target: string,
|
|
60
58
|
file: string | TemplateFileLocation,
|
|
61
59
|
): Promise<Array<FileDescriptor>> {
|
|
62
|
-
const {
|
|
63
|
-
from,
|
|
64
|
-
to,
|
|
65
|
-
deep = true,
|
|
66
|
-
template = false,
|
|
67
|
-
} = typeof file === 'string' ? { from: file, to: file, deep: true } : file;
|
|
60
|
+
const { from, to, deep = true } = typeof file === 'string' ? { from: file, to: file, deep: true } : file;
|
|
68
61
|
const sourcePath = resolve(source, from);
|
|
69
62
|
const targetPath = resolve(target, to);
|
|
70
63
|
const isDirectory = await checkIsDirectory(sourcePath);
|
|
@@ -76,7 +69,6 @@ async function getMatchingFiles(
|
|
|
76
69
|
return files.map((file) => ({
|
|
77
70
|
sourcePath: file,
|
|
78
71
|
targetPath: resolve(targetPath, relative(sourcePath, file)),
|
|
79
|
-
template,
|
|
80
72
|
}));
|
|
81
73
|
} else if (globPatternStartIndicators.some((m) => from.indexOf(m) !== -1)) {
|
|
82
74
|
log('generalDebug_0003', `Matching using glob "${sourcePath}".`);
|
|
@@ -98,7 +90,6 @@ async function getMatchingFiles(
|
|
|
98
90
|
return files.map((file) => ({
|
|
99
91
|
sourcePath: file,
|
|
100
92
|
targetPath: resolve(tarRoot, relative(relRoot, file)),
|
|
101
|
-
template,
|
|
102
93
|
}));
|
|
103
94
|
}
|
|
104
95
|
|
|
@@ -108,7 +99,6 @@ async function getMatchingFiles(
|
|
|
108
99
|
{
|
|
109
100
|
sourcePath,
|
|
110
101
|
targetPath,
|
|
111
|
-
template,
|
|
112
102
|
},
|
|
113
103
|
];
|
|
114
104
|
}
|
|
@@ -155,23 +145,24 @@ export function readPiralPackage(root: string, name: string): Promise<PackageDat
|
|
|
155
145
|
return readJson(path, 'package.json');
|
|
156
146
|
}
|
|
157
147
|
|
|
158
|
-
export
|
|
159
|
-
|
|
160
|
-
language: SourceLanguage
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
const
|
|
167
|
-
// take default dev packages only if not piral-base
|
|
168
|
-
const typings = framework === 'piral-base' ? {} : undefined;
|
|
148
|
+
export interface PiralPackageData {
|
|
149
|
+
packageName: Framework;
|
|
150
|
+
language: SourceLanguage;
|
|
151
|
+
reactVersion: number;
|
|
152
|
+
reactRouterVersion: number;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export function getPiralPackage(app: string, data: PiralPackageData, version: string, bundler?: string) {
|
|
156
|
+
const framework = data.packageName;
|
|
169
157
|
const devDependencies = {
|
|
170
|
-
...getDevDependencies(
|
|
158
|
+
...getDevDependencies(
|
|
159
|
+
data.language,
|
|
160
|
+
getDevDependencyPackages(framework, data.reactVersion, data.reactRouterVersion),
|
|
161
|
+
),
|
|
171
162
|
'piral-cli': `${version}`,
|
|
172
163
|
};
|
|
173
164
|
const dependencies = {
|
|
174
|
-
...getDependencies(language,
|
|
165
|
+
...getDependencies(data.language, getDependencyPackages(framework, data.reactVersion, data.reactRouterVersion)),
|
|
175
166
|
};
|
|
176
167
|
|
|
177
168
|
appendBundler(devDependencies, bundler, version);
|
|
@@ -219,7 +210,6 @@ async function getAvailableFiles(
|
|
|
219
210
|
return files.map((file) => ({
|
|
220
211
|
sourcePath: file,
|
|
221
212
|
targetPath: resolve(root, relative(base, file)),
|
|
222
|
-
template: fileMap.find((m) => resolve(source, m.from) === file)?.template || false,
|
|
223
213
|
}));
|
|
224
214
|
}
|
|
225
215
|
|
|
@@ -249,17 +239,13 @@ async function copyFiles(
|
|
|
249
239
|
variables?: Record<string, string>,
|
|
250
240
|
) {
|
|
251
241
|
for (const subfile of subfiles) {
|
|
252
|
-
const { sourcePath, targetPath
|
|
242
|
+
const { sourcePath, targetPath } = subfile;
|
|
253
243
|
const exists = await checkExists(sourcePath);
|
|
254
244
|
|
|
255
245
|
if (exists) {
|
|
256
246
|
const overwrite = originalFiles.some((m) => m.path === targetPath && !m.changed);
|
|
257
247
|
const force = overwrite ? ForceOverwrite.yes : forceOverwrite;
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
if (written && template && variables) {
|
|
261
|
-
await applyTemplate(targetPath, variables);
|
|
262
|
-
}
|
|
248
|
+
await copy(sourcePath, targetPath, force);
|
|
263
249
|
} else {
|
|
264
250
|
fail('cannotFindFile_0046', sourcePath);
|
|
265
251
|
}
|
package/src/common/scaffold.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { join, dirname, resolve, basename, isAbsolute } from 'path';
|
|
2
2
|
import { installNpmPackage } from './npm';
|
|
3
|
-
import { ForceOverwrite
|
|
3
|
+
import { ForceOverwrite } from './enums';
|
|
4
4
|
import { createDirectory, createFileIfNotExists, updateExistingJson } from './io';
|
|
5
5
|
import { cliVersion, isWindows } from './info';
|
|
6
6
|
import { log, fail, getLogLevel } from './log';
|
|
7
|
-
import { Framework } from '../types';
|
|
7
|
+
import { Framework, SourceLanguage } from '../types';
|
|
8
8
|
|
|
9
9
|
interface TemplateFile {
|
|
10
10
|
path: string;
|
|
@@ -103,16 +103,6 @@ function getTemplatePackageName(type: 'piral' | 'pilet', template: string) {
|
|
|
103
103
|
return template;
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
function getLanguageName(language: SourceLanguage) {
|
|
107
|
-
switch (language) {
|
|
108
|
-
case SourceLanguage.js:
|
|
109
|
-
return 'js';
|
|
110
|
-
case SourceLanguage.ts:
|
|
111
|
-
default:
|
|
112
|
-
return 'ts';
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
106
|
export function getPiralScaffoldData(
|
|
117
107
|
language: SourceLanguage,
|
|
118
108
|
root: string,
|
|
@@ -125,9 +115,11 @@ export function getPiralScaffoldData(
|
|
|
125
115
|
...variables,
|
|
126
116
|
root,
|
|
127
117
|
src,
|
|
128
|
-
language
|
|
118
|
+
language,
|
|
129
119
|
packageName,
|
|
130
|
-
|
|
120
|
+
reactVersion: parseInt(variables.reactVersion) || 17,
|
|
121
|
+
reactRouterVersion: parseInt(variables.reactRouterVersion) || 17,
|
|
122
|
+
} as const;
|
|
131
123
|
}
|
|
132
124
|
|
|
133
125
|
export async function scaffoldPiralSourceFiles(
|
|
@@ -157,9 +149,9 @@ export function getPiletScaffoldData(
|
|
|
157
149
|
...variables,
|
|
158
150
|
root,
|
|
159
151
|
src,
|
|
160
|
-
language
|
|
152
|
+
language,
|
|
161
153
|
sourceName,
|
|
162
|
-
};
|
|
154
|
+
} as const;
|
|
163
155
|
}
|
|
164
156
|
|
|
165
157
|
export async function scaffoldPiletSourceFiles(
|
package/src/common/template.ts
CHANGED
|
@@ -1,53 +1,32 @@
|
|
|
1
|
-
import { renderFile } from 'ejs';
|
|
2
|
-
import { writeFile } from 'fs';
|
|
3
|
-
import { resolve } from 'path';
|
|
4
|
-
import { log } from './log';
|
|
5
1
|
import { ForceOverwrite } from './enums';
|
|
6
2
|
import { createFileIfNotExists } from './io';
|
|
7
3
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
renderFile(file, data, (err, str) => {
|
|
12
|
-
if (err) {
|
|
13
|
-
reject(err);
|
|
14
|
-
} else {
|
|
15
|
-
resolve(str);
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
await new Promise<void>((resolve, reject) => {
|
|
20
|
-
writeFile(file, content, 'utf8', (err) => {
|
|
21
|
-
if (err) {
|
|
22
|
-
reject(err);
|
|
23
|
-
} else {
|
|
24
|
-
resolve();
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
}
|
|
4
|
+
function fillTemplate(data: any = {}) {
|
|
5
|
+
return `if (process.env.NODE_ENV === 'test') {
|
|
6
|
+
// behavior for the test environment, we'll try to make it work
|
|
29
7
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
8
|
+
if (typeof window !== 'undefined') {
|
|
9
|
+
require('./${data.outFile}');
|
|
10
|
+
const ctx = window['dbg:piral'];
|
|
11
|
+
const dependencies = (ctx && ctx.pilets && ctx.pilets.getDependencies({})) || {};
|
|
12
|
+
module.exports = dependencies['${data.name}'] || {};
|
|
13
|
+
} else {
|
|
14
|
+
console.error('Your test environment does not define "window". Please make sure to provide a proper environment.');
|
|
15
|
+
module.exports = {};
|
|
16
|
+
}
|
|
17
|
+
} else {
|
|
18
|
+
// under "normal" circumstances disallow such an import
|
|
19
|
+
throw new Error("This file should not be included anywhere. Usually, this means you've imported the Piral instance directly.");
|
|
20
|
+
}
|
|
21
|
+
`;
|
|
42
22
|
}
|
|
43
23
|
|
|
44
|
-
export async function
|
|
45
|
-
prefix: string,
|
|
24
|
+
export async function createPiralStubIndexIfNotExists(
|
|
46
25
|
targetDir: string,
|
|
47
26
|
fileName: string,
|
|
48
27
|
forceOverwrite?: ForceOverwrite,
|
|
49
28
|
data?: any,
|
|
50
29
|
) {
|
|
51
|
-
const content =
|
|
30
|
+
const content = fillTemplate(data);
|
|
52
31
|
await createFileIfNotExists(targetDir, fileName, content, forceOverwrite);
|
|
53
32
|
}
|
package/src/helpers.test.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { keyOfForceOverwrite,
|
|
2
|
-
import { ForceOverwrite
|
|
1
|
+
import { keyOfForceOverwrite, valueOfForceOverwrite } from './helpers';
|
|
2
|
+
import { ForceOverwrite } from './common/enums';
|
|
3
3
|
|
|
4
4
|
describe('Piral CLI Command Helpers Module', () => {
|
|
5
5
|
it('correct value of keyOfForceOverwrite results in same key', () => {
|
|
@@ -12,16 +12,6 @@ describe('Piral CLI Command Helpers Module', () => {
|
|
|
12
12
|
expect(result).toBe('no');
|
|
13
13
|
});
|
|
14
14
|
|
|
15
|
-
it('correct value of keyOfPiletLanguage results in same key', () => {
|
|
16
|
-
const result = keyOfSourceLanguage(SourceLanguage.ts);
|
|
17
|
-
expect(result).toBe('ts');
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
it('incorrect value of keyOfPiletLanguage results in key for TS', () => {
|
|
21
|
-
const result = keyOfSourceLanguage(5);
|
|
22
|
-
expect(result).toBe('ts');
|
|
23
|
-
});
|
|
24
|
-
|
|
25
15
|
it('correct key of valueOfForceOverwrite results in same value', () => {
|
|
26
16
|
const result = valueOfForceOverwrite('prompt');
|
|
27
17
|
expect(result).toBe(ForceOverwrite.prompt);
|
|
@@ -31,14 +21,4 @@ describe('Piral CLI Command Helpers Module', () => {
|
|
|
31
21
|
const result = valueOfForceOverwrite('foo');
|
|
32
22
|
expect(result).toBe(ForceOverwrite.no);
|
|
33
23
|
});
|
|
34
|
-
|
|
35
|
-
it('correct key of valueOfPiletLanguage results in same value', () => {
|
|
36
|
-
const result = valueOfSourceLanguage('ts');
|
|
37
|
-
expect(result).toBe(SourceLanguage.ts);
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
it('incorrect key of valueOfPiletLanguage results in value for TS', () => {
|
|
41
|
-
const result = valueOfSourceLanguage('foo');
|
|
42
|
-
expect(result).toBe(SourceLanguage.ts);
|
|
43
|
-
});
|
|
44
24
|
});
|
package/src/helpers.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ForceOverwrite
|
|
1
|
+
import { ForceOverwrite } from './common/enums';
|
|
2
2
|
import { bundlerNames, frameworkLibs } from './common/constants';
|
|
3
3
|
import type {
|
|
4
4
|
Framework,
|
|
@@ -8,6 +8,7 @@ import type {
|
|
|
8
8
|
PiralBuildType,
|
|
9
9
|
PiletBuildType,
|
|
10
10
|
PiletPublishScheme,
|
|
11
|
+
SourceLanguage,
|
|
11
12
|
} from './types';
|
|
12
13
|
|
|
13
14
|
export const schemaKeys: Array<PiletSchemaVersion> = ['v0', 'v1', 'v2', 'none'];
|
|
@@ -16,6 +17,7 @@ export const fromKeys: Array<PiletPublishSource> = ['local', 'remote', 'npm'];
|
|
|
16
17
|
export const piralBuildTypeKeys: Array<PiralBuildType> = ['all', 'release', 'emulator', 'emulator-sources'];
|
|
17
18
|
export const piletBuildTypeKeys: Array<PiletBuildType> = ['default', 'standalone', 'manifest'];
|
|
18
19
|
export const clientTypeKeys: Array<NpmClientType> = ['npm', 'pnpm', 'pnp', 'yarn', 'lerna', 'rush'];
|
|
20
|
+
export const sourceLanguageKeys: Array<SourceLanguage> = ['ts', 'js'];
|
|
19
21
|
export const bundlerKeys: Array<string> = ['none', ...bundlerNames];
|
|
20
22
|
export const availableBundlers: Array<string> = [];
|
|
21
23
|
export const availableReleaseProviders: Array<string> = [];
|
|
@@ -41,25 +43,3 @@ export function keyOfForceOverwrite(value: ForceOverwrite) {
|
|
|
41
43
|
|
|
42
44
|
return forceOverwriteKeys[0];
|
|
43
45
|
}
|
|
44
|
-
|
|
45
|
-
export const sourceLanguageKeys = Object.keys(SourceLanguage).filter((m) => typeof SourceLanguage[m] === 'number');
|
|
46
|
-
|
|
47
|
-
export function valueOfSourceLanguage(key: string): SourceLanguage {
|
|
48
|
-
for (const piletLanguageKey of sourceLanguageKeys) {
|
|
49
|
-
if (piletLanguageKey === key) {
|
|
50
|
-
return SourceLanguage[piletLanguageKey];
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
return SourceLanguage.ts;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export function keyOfSourceLanguage(value: SourceLanguage) {
|
|
58
|
-
for (const piletLanguageKey of sourceLanguageKeys) {
|
|
59
|
-
if (SourceLanguage[piletLanguageKey] === value) {
|
|
60
|
-
return piletLanguageKey;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return sourceLanguageKeys[0];
|
|
65
|
-
}
|
package/src/types/common.ts
CHANGED
package/src/types/public.ts
CHANGED
|
@@ -219,6 +219,8 @@ export interface BundlerDefinition {
|
|
|
219
219
|
|
|
220
220
|
export type PiletSchemaVersion = 'none' | 'v0' | 'v1' | 'v2';
|
|
221
221
|
|
|
222
|
+
export type SourceLanguage = 'js' | 'ts';
|
|
223
|
+
|
|
222
224
|
export type PiletPublishScheme = 'none' | 'digest' | 'bearer' | 'basic';
|
|
223
225
|
|
|
224
226
|
export type PiletPublishSource = 'local' | 'npm' | 'remote';
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
if (process.env.NODE_ENV === 'test') {
|
|
2
|
-
// behavior for the test environment, we'll try to make it work
|
|
3
|
-
|
|
4
|
-
if (typeof window !== 'undefined') {
|
|
5
|
-
require('./<%- outFile %>');
|
|
6
|
-
const ctx = window['dbg:piral'];
|
|
7
|
-
const dependencies = (ctx && ctx.pilets && ctx.pilets.getDependencies({})) || {};
|
|
8
|
-
module.exports = dependencies['<%- name %>'] || {};
|
|
9
|
-
} else {
|
|
10
|
-
console.error('Your test environment does not define "window". Please make sure to provide a proper environment.');
|
|
11
|
-
module.exports = {};
|
|
12
|
-
}
|
|
13
|
-
} else {
|
|
14
|
-
// under "normal" circumstances disallow such an import
|
|
15
|
-
throw new Error("This file should not be included anywhere. Usually, this means you've imported the Piral instance directly.");
|
|
16
|
-
}
|