@eik/common 4.0.0-next.6 → 4.0.0
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/CHANGELOG.md +108 -3
- package/README.md +9 -5
- package/eikjson.d.ts +1 -1
- package/{packages/config-loader/src/errors → lib/classes}/custom-error.js +1 -3
- package/{packages/config-loader/src → lib/classes}/eik-config.js +19 -17
- package/{packages/config-loader/src → lib}/classes/file-mapping.js +4 -6
- package/{packages/config-loader/src/errors → lib/classes}/invalid-config-error.js +2 -4
- package/{packages/config-loader/src → lib}/classes/local-file-location.js +5 -4
- package/{packages/config-loader/src/errors → lib/classes}/missing-config-error.js +2 -4
- package/{packages/config-loader/src/errors → lib/classes}/multiple-config-sources-error.js +2 -4
- package/{packages/config-loader/src/errors → lib/classes}/no-files-matched-error.js +2 -4
- package/{packages/config-loader/src → lib}/classes/read-file.js +4 -3
- package/{packages/config-loader/src → lib}/classes/remote-file-location.js +3 -3
- package/{packages/config-loader/src → lib}/classes/resolved-files.js +5 -6
- package/{packages/config-loader/src/errors → lib/classes}/single-dest-multiple-source-error.js +2 -4
- package/{packages/config-loader/src → lib/helpers}/config-store.js +39 -8
- package/lib/helpers/get-defaults.js +38 -0
- package/lib/helpers/index.js +25 -0
- package/{packages/config-loader/src → lib/helpers}/local-assets.js +9 -7
- package/{packages/utils/src → lib/helpers}/path-slashes.js +1 -1
- package/{packages/config-loader/src/utils → lib/helpers}/resolve-files.js +7 -11
- package/{packages/utils/src → lib/helpers}/type-slug.js +4 -1
- package/{packages/utils/src → lib/helpers}/type-title.js +4 -1
- package/lib/index.js +16 -0
- package/{packages/schemas/src → lib/schemas}/assert.js +6 -6
- package/lib/schemas/index.js +15 -0
- package/{packages/schemas/src → lib/schemas}/validate.js +18 -17
- package/{packages/schemas/src → lib/schemas}/validation-error.js +2 -2
- package/lib/stream.js +12 -0
- package/lib/validators/index.js +65 -0
- package/package.json +63 -6
- package/types/classes/custom-error.d.ts +6 -0
- package/types/classes/eik-config.d.ts +63 -0
- package/types/classes/file-mapping.d.ts +21 -0
- package/types/classes/invalid-config-error.d.ts +3 -0
- package/types/classes/local-file-location.d.ts +36 -0
- package/types/classes/missing-config-error.d.ts +3 -0
- package/types/classes/multiple-config-sources-error.d.ts +4 -0
- package/types/classes/no-files-matched-error.d.ts +3 -0
- package/types/classes/read-file.d.ts +15 -0
- package/types/classes/remote-file-location.d.ts +21 -0
- package/types/classes/resolved-files.d.ts +20 -0
- package/types/classes/single-dest-multiple-source-error.d.ts +3 -0
- package/types/helpers/config-store.d.ts +28 -0
- package/types/helpers/get-defaults.d.ts +9 -0
- package/types/helpers/index.d.ts +23 -0
- package/types/helpers/local-assets.d.ts +8 -0
- package/types/helpers/path-slashes.d.ts +32 -0
- package/types/helpers/resolve-files.d.ts +13 -0
- package/types/helpers/type-slug.d.ts +2 -0
- package/types/helpers/type-title.d.ts +2 -0
- package/types/index.d.ts +16 -0
- package/types/schemas/assert.d.ts +11 -0
- package/types/schemas/index.d.ts +11 -0
- package/types/schemas/validate.d.ts +26 -0
- package/types/schemas/validation-error.d.ts +8 -0
- package/types/stream.d.ts +2 -0
- package/types/validators/index.d.ts +8 -0
- package/.eslintignore +0 -2
- package/.eslintrc +0 -34
- package/.github/workflows/publish.yml +0 -69
- package/.github/workflows/test.yml +0 -45
- package/.prettierignore +0 -17
- package/.prettierrc +0 -20
- package/fixtures/client-with-bare-imports.js +0 -16
- package/fixtures/client.js +0 -6
- package/fixtures/client.js.map +0 -0
- package/fixtures/folder/client.js +0 -6
- package/fixtures/folder/styles.css +0 -0
- package/fixtures/icons/checkbox-sprite.svg +0 -46
- package/fixtures/nested/client.js.map +0 -0
- package/fixtures/nested/styles.css.map +0 -0
- package/fixtures/styles.css +0 -0
- package/fixtures/styles.css.map +0 -0
- package/packages/config-loader/.prettierignore +0 -17
- package/packages/config-loader/index.js +0 -13
- package/packages/config-loader/package.json +0 -42
- package/packages/config-loader/src/get-defaults.js +0 -25
- package/packages/config-loader/test/assets/esm.css +0 -0
- package/packages/config-loader/test/assets/esm.css.map +0 -0
- package/packages/config-loader/test/assets/esm.js +0 -0
- package/packages/config-loader/test/assets/esm.js.map +0 -0
- package/packages/config-loader/test/config-store.test.js +0 -231
- package/packages/config-loader/test/eik-config/cwd.test.js +0 -35
- package/packages/config-loader/test/eik-config/map.test.js +0 -31
- package/packages/config-loader/test/eik-config/mappings.test.js +0 -507
- package/packages/config-loader/test/eik-config/out.test.js +0 -54
- package/packages/config-loader/test/eik-config/server.test.js +0 -32
- package/packages/config-loader/test/eik-config/toJSON.test.js +0 -19
- package/packages/config-loader/test/eik-config/token.test.js +0 -49
- package/packages/config-loader/test/eik-config/type.test.js +0 -22
- package/packages/config-loader/test/eik-config/validate.test.js +0 -31
- package/packages/config-loader/test/eik-config/version.test.js +0 -22
- package/packages/config-loader/test/eik.json +0 -10
- package/packages/config-loader/test/local-assets.test.js +0 -125
- package/packages/config-loader/test/local-file-location/absolute.test.js +0 -35
- package/packages/config-loader/test/local-file-location/contentType.test.js +0 -55
- package/packages/config-loader/test/local-file-location/extension.test.js +0 -20
- package/packages/config-loader/test/local-file-location/mimeType.test.js +0 -43
- package/packages/config-loader/test/read-file.test.js +0 -60
- package/packages/config-loader/test/resolve-files.test.js +0 -257
- package/packages/config-loader/test/resolved-files/iterator.test.js +0 -17
- package/packages/config-loader/test/tmp/.gitkeep +0 -0
- package/packages/schemas/.prettierignore +0 -17
- package/packages/schemas/eikjson.d.ts +0 -41
- package/packages/schemas/index.js +0 -7
- package/packages/schemas/package.json +0 -40
- package/packages/schemas/test/assert.js +0 -207
- package/packages/schemas/test/index.js +0 -182
- package/packages/utils/.prettierignore +0 -17
- package/packages/utils/index.js +0 -20
- package/packages/utils/package.json +0 -29
- package/packages/utils/src/stream.js +0 -21
- package/packages/utils/tests/eik.json +0 -10
- package/packages/validators/.prettierignore +0 -17
- package/packages/validators/package.json +0 -34
- package/packages/validators/src/index.js +0 -53
- package/packages/validators/test/index.js +0 -238
- package/release/eik-common-4.0.0-next.6.tgz +0 -0
- package/release.config.js +0 -27
- package/renovate.json +0 -6
- package/tsconfig.json +0 -30
- /package/{packages/schemas/src → lib/schemas}/eikjson.schema.json +0 -0
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/* tslint:disable */
|
|
2
|
-
/**
|
|
3
|
-
* This file was automatically generated by json-schema-to-typescript.
|
|
4
|
-
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
|
|
5
|
-
* and run json-schema-to-typescript to regenerate this file.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
export interface EikjsonSchema {
|
|
9
|
-
/**
|
|
10
|
-
* The URL address of the Eik server where packages are published to.
|
|
11
|
-
*/
|
|
12
|
-
server: string;
|
|
13
|
-
/**
|
|
14
|
-
* The name of the Eik package. Follows the same rules as for NPM package names. Must be parseable by validate-npm-package-name package, which is bundled with npm as a dependency.
|
|
15
|
-
*/
|
|
16
|
-
name: string;
|
|
17
|
-
/**
|
|
18
|
-
* The version of the Eik package. Follows the same rules as for NPM package versions. Must be parseable by node-semver, which is bundled with npm as a dependency.
|
|
19
|
-
*/
|
|
20
|
-
version: string;
|
|
21
|
-
/**
|
|
22
|
-
* The type of the Eik package. Must be one of 'package', 'npm' or 'map'. Setting this value changes the URL publish namespace between '/pkg' (default), '/npm' and '/map', use 'npm' when publishing NPM packages. Use 'map' when publishing import maps.
|
|
23
|
-
*/
|
|
24
|
-
type?: "package" | "npm" | "map";
|
|
25
|
-
/**
|
|
26
|
-
* File mapping definition for the package. Keys represent files or paths to be created on the Eik Server. Values represent paths to local files to be published.
|
|
27
|
-
*/
|
|
28
|
-
files:
|
|
29
|
-
| {
|
|
30
|
-
[k: string]: string;
|
|
31
|
-
}
|
|
32
|
-
| string;
|
|
33
|
-
/**
|
|
34
|
-
* Import map files given by URL(s) to be used during package bundling. Specified as a URL or array of URLs. URLs are locations of import map files that follow the W3C import map spec.
|
|
35
|
-
*/
|
|
36
|
-
"import-map"?: string | string[];
|
|
37
|
-
/**
|
|
38
|
-
* Location of local Eik build directory (defaults to .eik). Used by Eik client.
|
|
39
|
-
*/
|
|
40
|
-
out?: string;
|
|
41
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
// @ts-check
|
|
2
|
-
const schema = require('./src/eikjson.schema.json');
|
|
3
|
-
const validate = require('./src/validate.js');
|
|
4
|
-
const assert = require('./src/assert.js');
|
|
5
|
-
const ValidationError = require('./src/validation-error.js');
|
|
6
|
-
|
|
7
|
-
module.exports = { schema, validate, assert, ValidationError };
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@eik/common-schemas",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"description": "Shared schema logic for Eik packages",
|
|
5
|
-
"main": "index.js",
|
|
6
|
-
"types": "eikjson.d.ts",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"style:check": "prettier -c .",
|
|
9
|
-
"style:format": "prettier -w .",
|
|
10
|
-
"schema:types": "json2ts ./src/eikjson.schema.json > eikjson.d.ts",
|
|
11
|
-
"schema:outdated": "npm run schema:types && git diff --exit-code HEAD:eikjson.d.ts eikjson.d.ts",
|
|
12
|
-
"typecheck": "tsc",
|
|
13
|
-
"prepublish": "npm run typecheck",
|
|
14
|
-
"test": "tap --no-check-coverage",
|
|
15
|
-
"lint:fix": "eslint --fix .",
|
|
16
|
-
"lint": "eslint ."
|
|
17
|
-
},
|
|
18
|
-
"license": "ISC",
|
|
19
|
-
"dependencies": {
|
|
20
|
-
"ajv": "8.11.0",
|
|
21
|
-
"ajv-formats": "2.1.1",
|
|
22
|
-
"semver": "7.3.7",
|
|
23
|
-
"tap": "15.2.3",
|
|
24
|
-
"validate-npm-package-name": "4.0.0"
|
|
25
|
-
},
|
|
26
|
-
"devDependencies": {
|
|
27
|
-
"@babel/eslint-parser": "7.16.5",
|
|
28
|
-
"@semantic-release/changelog": "^6.0.1",
|
|
29
|
-
"@semantic-release/git": "^10.0.1",
|
|
30
|
-
"@types/node": "18.0.6",
|
|
31
|
-
"eslint": "7.32.0",
|
|
32
|
-
"eslint-config-airbnb-base": "14.2.1",
|
|
33
|
-
"eslint-config-prettier": "8.5.0",
|
|
34
|
-
"eslint-plugin-import": "2.26.0",
|
|
35
|
-
"eslint-plugin-prettier": "4.2.1",
|
|
36
|
-
"json-schema-to-typescript": "10.1.5",
|
|
37
|
-
"prettier": "2.5.1",
|
|
38
|
-
"typescript": "4.7.4"
|
|
39
|
-
}
|
|
40
|
-
}
|
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
const tap = require('tap');
|
|
2
|
-
const assert = require('../src/assert.js');
|
|
3
|
-
|
|
4
|
-
tap.test('assert basic eik JSON file', (t) => {
|
|
5
|
-
t.doesNotThrow(() => {
|
|
6
|
-
assert.eikJSON({
|
|
7
|
-
name: 'my-app-name',
|
|
8
|
-
version: '1.0.0',
|
|
9
|
-
server: 'http://localhost:4001',
|
|
10
|
-
files: {
|
|
11
|
-
'index.js': './assets/scripts.js',
|
|
12
|
-
'index.css': './assets/styles.css',
|
|
13
|
-
},
|
|
14
|
-
});
|
|
15
|
-
});
|
|
16
|
-
t.end();
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
tap.test('assert eik JSON file - mutation does not occur', (t) => {
|
|
20
|
-
const data = {
|
|
21
|
-
name: 'my-app-name',
|
|
22
|
-
version: '1.0.0',
|
|
23
|
-
server: 'http://localhost:4001',
|
|
24
|
-
files: {
|
|
25
|
-
'index.js': './assets/scripts.js',
|
|
26
|
-
'index.css': './assets/styles.css',
|
|
27
|
-
},
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
assert.eikJSON(data);
|
|
31
|
-
|
|
32
|
-
t.same(data, {
|
|
33
|
-
name: 'my-app-name',
|
|
34
|
-
version: '1.0.0',
|
|
35
|
-
server: 'http://localhost:4001',
|
|
36
|
-
files: {
|
|
37
|
-
'index.js': './assets/scripts.js',
|
|
38
|
-
'index.css': './assets/styles.css',
|
|
39
|
-
},
|
|
40
|
-
});
|
|
41
|
-
t.end();
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
tap.test('assert asset manifest - all props invalid', (t) => {
|
|
45
|
-
t.throws(() => {
|
|
46
|
-
assert.eikJSON({
|
|
47
|
-
name: '',
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
t.end();
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
tap.test('assert name: empty string', (t) => {
|
|
54
|
-
t.throws(() => {
|
|
55
|
-
assert.name('');
|
|
56
|
-
});
|
|
57
|
-
t.end();
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
tap.test('assert name: valid', (t) => {
|
|
61
|
-
t.doesNotThrow(() => {
|
|
62
|
-
assert.name('@finn-no/my-app');
|
|
63
|
-
});
|
|
64
|
-
t.end();
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
tap.test('assert name: invalid by assert-npm-package-name module', (t) => {
|
|
68
|
-
t.throws(() => {
|
|
69
|
-
assert.name('@finn-no/my-app~');
|
|
70
|
-
});
|
|
71
|
-
t.end();
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
tap.test('assert version: empty string', (t) => {
|
|
75
|
-
t.throws(() => {
|
|
76
|
-
assert.version('');
|
|
77
|
-
});
|
|
78
|
-
t.end();
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
tap.test('assert version: valid', (t) => {
|
|
82
|
-
t.doesNotThrow(() => {
|
|
83
|
-
assert.version('1.0.0');
|
|
84
|
-
});
|
|
85
|
-
t.end();
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
tap.test('assert type: invalid', (t) => {
|
|
89
|
-
t.plan(1);
|
|
90
|
-
try {
|
|
91
|
-
assert.type('foo');
|
|
92
|
-
} catch (err) {
|
|
93
|
-
t.equal(
|
|
94
|
-
err.message,
|
|
95
|
-
'Parameter "type" is not valid: must be equal to one of the allowed values ("package", npm", map")',
|
|
96
|
-
);
|
|
97
|
-
}
|
|
98
|
-
t.end();
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
tap.test('assert type: valid - package', (t) => {
|
|
102
|
-
t.doesNotThrow(() => {
|
|
103
|
-
assert.type('package');
|
|
104
|
-
});
|
|
105
|
-
t.end();
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
tap.test('assert type: valid - npm', (t) => {
|
|
109
|
-
t.doesNotThrow(() => {
|
|
110
|
-
assert.type('npm');
|
|
111
|
-
});
|
|
112
|
-
t.end();
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
tap.test('assert type: valid - map', (t) => {
|
|
116
|
-
t.doesNotThrow(() => {
|
|
117
|
-
assert.type('map');
|
|
118
|
-
});
|
|
119
|
-
t.end();
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
tap.test('assert version: invalid by node-semver module', (t) => {
|
|
123
|
-
t.throws(() => {
|
|
124
|
-
assert.version('1.0');
|
|
125
|
-
});
|
|
126
|
-
t.end();
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
tap.test('assert server: valid', (t) => {
|
|
130
|
-
t.doesNotThrow(() => {
|
|
131
|
-
assert.server('http://localhost:4000');
|
|
132
|
-
});
|
|
133
|
-
t.end();
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
tap.test('assert server: invalid', (t) => {
|
|
137
|
-
t.throws(() => {
|
|
138
|
-
assert.server('localhost');
|
|
139
|
-
});
|
|
140
|
-
t.end();
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
tap.test('assert files: valid', (t) => {
|
|
144
|
-
t.doesNotThrow(() => {
|
|
145
|
-
assert.files({ 'index.js': '/path/to/file.js' });
|
|
146
|
-
});
|
|
147
|
-
t.end();
|
|
148
|
-
});
|
|
149
|
-
|
|
150
|
-
tap.test('assert files: invalid', (t) => {
|
|
151
|
-
t.throws(() => {
|
|
152
|
-
assert.files({ asd: 1 });
|
|
153
|
-
});
|
|
154
|
-
t.end();
|
|
155
|
-
});
|
|
156
|
-
|
|
157
|
-
tap.test('assert files: invalid', (t) => {
|
|
158
|
-
t.throws(() => {
|
|
159
|
-
assert.files({});
|
|
160
|
-
});
|
|
161
|
-
t.end();
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
tap.test('assert importMap: valid string', (t) => {
|
|
165
|
-
t.doesNotThrow(() => {
|
|
166
|
-
assert.importMap('http://myimportmap/file.json');
|
|
167
|
-
});
|
|
168
|
-
t.end();
|
|
169
|
-
});
|
|
170
|
-
|
|
171
|
-
tap.test('assert importMap: valid array', (t) => {
|
|
172
|
-
t.doesNotThrow(() => {
|
|
173
|
-
assert.importMap([
|
|
174
|
-
'http://myimportmap/file1.json',
|
|
175
|
-
'http://myimportmap/file2.json',
|
|
176
|
-
]);
|
|
177
|
-
});
|
|
178
|
-
t.end();
|
|
179
|
-
});
|
|
180
|
-
|
|
181
|
-
tap.test('assert importMap: invalid string', (t) => {
|
|
182
|
-
t.throws(() => {
|
|
183
|
-
assert.importMap('');
|
|
184
|
-
});
|
|
185
|
-
t.end();
|
|
186
|
-
});
|
|
187
|
-
|
|
188
|
-
tap.test('assert importMap: invalid array', (t) => {
|
|
189
|
-
t.throws(() => {
|
|
190
|
-
assert.importMap(['']);
|
|
191
|
-
});
|
|
192
|
-
t.end();
|
|
193
|
-
});
|
|
194
|
-
|
|
195
|
-
tap.test('assert out: valid', (t) => {
|
|
196
|
-
t.doesNotThrow(() => {
|
|
197
|
-
assert.out('./.eik');
|
|
198
|
-
});
|
|
199
|
-
t.end();
|
|
200
|
-
});
|
|
201
|
-
|
|
202
|
-
tap.test('assert out: invalid', (t) => {
|
|
203
|
-
t.throws(() => {
|
|
204
|
-
assert.out('');
|
|
205
|
-
});
|
|
206
|
-
t.end();
|
|
207
|
-
});
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
const tap = require('tap');
|
|
2
|
-
const { validate } = require('../index.js');
|
|
3
|
-
|
|
4
|
-
tap.test('validate basic eik JSON file', (t) => {
|
|
5
|
-
const result = validate.eikJSON({
|
|
6
|
-
name: 'my-app-name',
|
|
7
|
-
version: '1.0.0',
|
|
8
|
-
server: 'http://localhost:4001',
|
|
9
|
-
files: {
|
|
10
|
-
'index.js': './assets/scripts.js',
|
|
11
|
-
'index.css': './assets/styles.css',
|
|
12
|
-
},
|
|
13
|
-
});
|
|
14
|
-
t.equal(result.value.type, 'package');
|
|
15
|
-
t.equal(result.error, false);
|
|
16
|
-
t.end();
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
tap.test('validate asset manifest - all props invalid', (t) => {
|
|
20
|
-
const result = validate.eikJSON({
|
|
21
|
-
name: '',
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
t.same(result.value, { name: '', type: 'package' });
|
|
25
|
-
t.equal(result.error[0].message, `must have required property 'server'`);
|
|
26
|
-
t.end();
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
tap.test('validate name: empty string', (t) => {
|
|
30
|
-
const result = validate.name('');
|
|
31
|
-
t.equal(result.value, '');
|
|
32
|
-
t.equal(result.error.length, 1);
|
|
33
|
-
t.end();
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
tap.test('validate name: valid', (t) => {
|
|
37
|
-
const result = validate.name('@finn-no/my-app');
|
|
38
|
-
t.equal(result.value, '@finn-no/my-app');
|
|
39
|
-
t.equal(result.error, false);
|
|
40
|
-
t.end();
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
tap.test('validate name: invalid by validate-npm-package-name module', (t) => {
|
|
44
|
-
const result = validate.name('@finn-no/my-app~');
|
|
45
|
-
t.equal(result.value, '@finn-no/my-app~');
|
|
46
|
-
t.equal(result.error.length, 1);
|
|
47
|
-
t.end();
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
tap.test('validate version: empty string', (t) => {
|
|
51
|
-
const result = validate.version('');
|
|
52
|
-
t.equal(result.value, '');
|
|
53
|
-
t.equal(result.error.length, 1);
|
|
54
|
-
t.end();
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
tap.test('validate version: valid', (t) => {
|
|
58
|
-
const result = validate.version('1.0.0');
|
|
59
|
-
t.equal(result.value, '1.0.0');
|
|
60
|
-
t.equal(result.error, false);
|
|
61
|
-
t.end();
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
tap.test('validate type: empty string', (t) => {
|
|
65
|
-
const result = validate.type('');
|
|
66
|
-
t.equal(result.value, '');
|
|
67
|
-
t.equal(result.error.length, 1);
|
|
68
|
-
t.equal(
|
|
69
|
-
result.error[0].message,
|
|
70
|
-
'must be equal to one of the allowed values',
|
|
71
|
-
);
|
|
72
|
-
t.end();
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
tap.test('validate type: valid - package', (t) => {
|
|
76
|
-
const result = validate.type('package');
|
|
77
|
-
t.equal(result.value, 'package');
|
|
78
|
-
t.equal(result.error, false);
|
|
79
|
-
t.end();
|
|
80
|
-
});
|
|
81
|
-
tap.test('validate type: valid - npm', (t) => {
|
|
82
|
-
const result = validate.type('npm');
|
|
83
|
-
t.equal(result.value, 'npm');
|
|
84
|
-
t.equal(result.error, false);
|
|
85
|
-
t.end();
|
|
86
|
-
});
|
|
87
|
-
tap.test('validate type: valid - map', (t) => {
|
|
88
|
-
const result = validate.type('map');
|
|
89
|
-
t.equal(result.value, 'map');
|
|
90
|
-
t.equal(result.error, false);
|
|
91
|
-
t.end();
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
tap.test('validate version: invalid by node-semver module', (t) => {
|
|
95
|
-
const result = validate.version('1.0');
|
|
96
|
-
t.equal(result.value, '1.0');
|
|
97
|
-
t.equal(result.error.length, 1);
|
|
98
|
-
t.end();
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
tap.test('validate server: valid', (t) => {
|
|
102
|
-
const result = validate.server('http://localhost:4000');
|
|
103
|
-
t.equal(result.value, 'http://localhost:4000');
|
|
104
|
-
t.equal(result.error, false);
|
|
105
|
-
t.end();
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
tap.test('validate server: invalid', (t) => {
|
|
109
|
-
const result = validate.server('localhost');
|
|
110
|
-
t.equal(result.value, 'localhost');
|
|
111
|
-
t.equal(result.error.length, 1);
|
|
112
|
-
t.end();
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
tap.test('validate files: valid', (t) => {
|
|
116
|
-
const result = validate.files({ 'index.js': '/path/to/file.js' });
|
|
117
|
-
t.same(result.value, { 'index.js': '/path/to/file.js' });
|
|
118
|
-
t.equal(result.error, false);
|
|
119
|
-
t.end();
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
tap.test('validate files: invalid', (t) => {
|
|
123
|
-
const result = validate.files({ asd: 1 });
|
|
124
|
-
t.same(result.value, { asd: 1 });
|
|
125
|
-
t.equal(result.error.length, 3);
|
|
126
|
-
t.end();
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
tap.test('validate files: invalid', (t) => {
|
|
130
|
-
const result = validate.files({});
|
|
131
|
-
t.same(result.value, {});
|
|
132
|
-
t.equal(result.error.length, 3);
|
|
133
|
-
t.end();
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
tap.test('validate importMap: valid string', (t) => {
|
|
137
|
-
const result = validate.importMap('http://myimportmap/file.json');
|
|
138
|
-
t.same(result.value, 'http://myimportmap/file.json');
|
|
139
|
-
t.equal(result.error, false);
|
|
140
|
-
t.end();
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
tap.test('validate importMap: valid array', (t) => {
|
|
144
|
-
const result = validate.importMap([
|
|
145
|
-
'http://myimportmap/file1.json',
|
|
146
|
-
'http://myimportmap/file2.json',
|
|
147
|
-
]);
|
|
148
|
-
t.same(result.value, [
|
|
149
|
-
'http://myimportmap/file1.json',
|
|
150
|
-
'http://myimportmap/file2.json',
|
|
151
|
-
]);
|
|
152
|
-
t.equal(result.error, false);
|
|
153
|
-
t.end();
|
|
154
|
-
});
|
|
155
|
-
|
|
156
|
-
tap.test('validate importMap: invalid string', (t) => {
|
|
157
|
-
const result = validate.importMap('');
|
|
158
|
-
t.same(result.value, '');
|
|
159
|
-
t.equal(result.error.length, 3);
|
|
160
|
-
t.end();
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
tap.test('validate importMap: invalid array', (t) => {
|
|
164
|
-
const result = validate.importMap(['']);
|
|
165
|
-
t.same(result.value, ['']);
|
|
166
|
-
t.equal(result.error.length, 3);
|
|
167
|
-
t.end();
|
|
168
|
-
});
|
|
169
|
-
|
|
170
|
-
tap.test('validate out: valid', (t) => {
|
|
171
|
-
const result = validate.out('./.eik');
|
|
172
|
-
t.same(result.value, './.eik');
|
|
173
|
-
t.equal(result.error, false);
|
|
174
|
-
t.end();
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
tap.test('validate out: invalid', (t) => {
|
|
178
|
-
const result = validate.out('');
|
|
179
|
-
t.same(result.value, '');
|
|
180
|
-
t.equal(result.error.length, 1);
|
|
181
|
-
t.end();
|
|
182
|
-
});
|
package/packages/utils/index.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
const typeSlug = require('./src/type-slug.js');
|
|
2
|
-
const typeTitle = require('./src/type-title.js');
|
|
3
|
-
const { isStream, isReadableStream } = require('./src/stream.js');
|
|
4
|
-
const {
|
|
5
|
-
addTrailingSlash,
|
|
6
|
-
removeTrailingSlash,
|
|
7
|
-
addLeadingSlash,
|
|
8
|
-
removeLeadingSlash,
|
|
9
|
-
} = require('./src/path-slashes.js');
|
|
10
|
-
|
|
11
|
-
module.exports = {
|
|
12
|
-
addTrailingSlash,
|
|
13
|
-
removeTrailingSlash,
|
|
14
|
-
addLeadingSlash,
|
|
15
|
-
removeLeadingSlash,
|
|
16
|
-
isStream,
|
|
17
|
-
isReadableStream,
|
|
18
|
-
typeSlug,
|
|
19
|
-
typeTitle,
|
|
20
|
-
};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@eik/common-utils",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"description": "Shared utils shared between for Eik packages",
|
|
5
|
-
"main": "index.js",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"test": "echo No tests",
|
|
8
|
-
"lint:fix": "eslint --fix .",
|
|
9
|
-
"lint": "eslint .",
|
|
10
|
-
"style:check": "prettier -c .",
|
|
11
|
-
"style:format": "prettier -w .",
|
|
12
|
-
"typecheck": "tsc"
|
|
13
|
-
},
|
|
14
|
-
"license": "ISC",
|
|
15
|
-
"devDependencies": {
|
|
16
|
-
"@babel/eslint-parser": "7.16.5",
|
|
17
|
-
"@semantic-release/changelog": "^6.0.1",
|
|
18
|
-
"@semantic-release/git": "^10.0.1",
|
|
19
|
-
"@types/node": "18.0.6",
|
|
20
|
-
"eslint": "7.32.0",
|
|
21
|
-
"eslint-config-airbnb-base": "14.2.1",
|
|
22
|
-
"eslint-config-prettier": "8.5.0",
|
|
23
|
-
"eslint-plugin-import": "2.26.0",
|
|
24
|
-
"eslint-plugin-prettier": "4.2.1",
|
|
25
|
-
"prettier": "2.5.1",
|
|
26
|
-
"tap": "15.2.3",
|
|
27
|
-
"typescript": "4.7.4"
|
|
28
|
-
}
|
|
29
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
function isStream(stream) {
|
|
2
|
-
return (
|
|
3
|
-
stream !== null &&
|
|
4
|
-
typeof stream === 'object' &&
|
|
5
|
-
typeof stream.pipe === 'function'
|
|
6
|
-
);
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
function isReadableStream(stream) {
|
|
10
|
-
return (
|
|
11
|
-
isStream(stream) &&
|
|
12
|
-
stream.readable !== false &&
|
|
13
|
-
typeof stream._read === 'function' &&
|
|
14
|
-
typeof stream._readableState === 'object'
|
|
15
|
-
);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
module.exports = {
|
|
19
|
-
isStream,
|
|
20
|
-
isReadableStream,
|
|
21
|
-
};
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@eik/common-validators",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"description": "Shared validators for all Eik packages",
|
|
5
|
-
"main": "src/index.js",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"test": "tap --no-check-coverage",
|
|
8
|
-
"test:snapshots:update": "tap --snapshot",
|
|
9
|
-
"lint:fix": "eslint --fix .",
|
|
10
|
-
"lint": "eslint .",
|
|
11
|
-
"style:check": "prettier -c .",
|
|
12
|
-
"style:format": "prettier -w .",
|
|
13
|
-
"typecheck": "tsc"
|
|
14
|
-
},
|
|
15
|
-
"license": "ISC",
|
|
16
|
-
"dependencies": {
|
|
17
|
-
"semver": "7.3.7",
|
|
18
|
-
"tap": "15.2.3",
|
|
19
|
-
"validate-npm-package-name": "4.0.0"
|
|
20
|
-
},
|
|
21
|
-
"devDependencies": {
|
|
22
|
-
"@babel/eslint-parser": "7.16.5",
|
|
23
|
-
"@semantic-release/changelog": "^6.0.1",
|
|
24
|
-
"@semantic-release/git": "^10.0.1",
|
|
25
|
-
"@types/node": "18.0.6",
|
|
26
|
-
"eslint": "7.32.0",
|
|
27
|
-
"eslint-config-airbnb-base": "14.2.1",
|
|
28
|
-
"eslint-config-prettier": "8.5.0",
|
|
29
|
-
"eslint-plugin-import": "2.26.0",
|
|
30
|
-
"eslint-plugin-prettier": "4.2.1",
|
|
31
|
-
"prettier": "2.5.1",
|
|
32
|
-
"typescript": "4.7.4"
|
|
33
|
-
}
|
|
34
|
-
}
|