@magidoc/plugin-starter-variables 0.7.0 → 0.7.3
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/build/index.d.ts +6 -2
- package/build/index.js +2 -1
- package/build/index.js.map +1 -1
- package/build/variables/magidoc.d.ts +4 -0
- package/build/variables/magidoc.js +8 -0
- package/build/variables/magidoc.js.map +1 -0
- package/build/variables/templates.d.ts +5 -0
- package/build/variables/templates.js +9 -0
- package/build/variables/templates.js.map +1 -0
- package/build/{variable.d.ts → variables/variable.d.ts} +3 -3
- package/build/variables/variable.js +47 -0
- package/build/variables/variable.js.map +1 -0
- package/package.json +1 -1
- package/src/index.ts +6 -2
- package/src/variables/magidoc.ts +8 -0
- package/src/{common/index.ts → variables/templates.ts} +1 -1
- package/src/{variable.ts → variables/variable.ts} +15 -6
- package/tests/index.spec.ts +39 -6
- package/build/common/index.d.ts +0 -5
- package/build/common/index.js +0 -9
- package/build/common/index.js.map +0 -1
- package/build/variable.js +0 -23
- package/build/variable.js.map +0 -1
package/build/index.d.ts
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import templates from './variables/templates';
|
|
2
|
+
import magidoc from './variables/magidoc';
|
|
3
|
+
import type { Variable, ViteVariable } from './variables/variable';
|
|
4
|
+
export { templates };
|
|
5
|
+
export { magidoc };
|
|
6
|
+
export type { Variable, ViteVariable };
|
package/build/index.js
CHANGED
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"magidoc.js","sources":["../../../src/variables/magidoc.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,cAAe;AACb,IAAA,gBAAgB,EAAE,cAAc,CAC9B,kBAAkB,EAClB,iBAAiB,EAAE,CACpB;CACF;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createVariable, stringConversion } from './variable.js';
|
|
2
|
+
|
|
3
|
+
var templates = {
|
|
4
|
+
APP_LOGO: createVariable('APP_LOGO', stringConversion()),
|
|
5
|
+
APP_TITLE: createVariable('APP_TITLE', stringConversion()),
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export { templates as default };
|
|
9
|
+
//# sourceMappingURL=templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.js","sources":["../../../src/variables/templates.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,gBAAe;AACb,IAAA,QAAQ,EAAE,cAAc,CAAS,UAAU,EAAE,gBAAgB,EAAE,CAAC;AAChE,IAAA,SAAS,EAAE,cAAc,CAAS,WAAW,EAAE,gBAAgB,EAAE,CAAC;CACnE;;;;"}
|
|
@@ -13,7 +13,7 @@ export declare type ViteVariable<T> = {
|
|
|
13
13
|
get: (env: MetaEnv) => T | null;
|
|
14
14
|
getOrDefault: (env: MetaEnv, def: T) => T;
|
|
15
15
|
};
|
|
16
|
-
export declare function createVariable<T = string | boolean>(key: string, conversion: (target: unknown) => T): Variable<T>;
|
|
17
|
-
export declare function stringConversion(): (target: unknown) => string;
|
|
18
|
-
export declare function booleanConversion(): (target: unknown) => boolean;
|
|
16
|
+
export declare function createVariable<T = string | boolean>(key: string, conversion: (target: unknown) => T | null): Variable<T>;
|
|
17
|
+
export declare function stringConversion(): (target: unknown) => string | null;
|
|
18
|
+
export declare function booleanConversion(): (target: unknown) => boolean | null;
|
|
19
19
|
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
function createVariable(key, conversion) {
|
|
2
|
+
const viteKey = `VITE_${key.toUpperCase()}`;
|
|
3
|
+
const viteGet = (env) => conversion(env[viteKey]);
|
|
4
|
+
return {
|
|
5
|
+
names: [key, toCamelCase(key)],
|
|
6
|
+
vite: {
|
|
7
|
+
key: viteKey,
|
|
8
|
+
get: viteGet,
|
|
9
|
+
getOrDefault: (env, def) => viteGet(env) ?? def,
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function toCamelCase(key) {
|
|
14
|
+
return key.toLowerCase().replace(/([-_][a-z])/gi, ($1) => {
|
|
15
|
+
return $1.toUpperCase().replace('-', '').replace('_', '');
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function stringConversion() {
|
|
19
|
+
return (target) => {
|
|
20
|
+
if (target === null || target === undefined || target === '') {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
return String(target);
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function booleanConversion() {
|
|
27
|
+
return (target) => {
|
|
28
|
+
if (target === null)
|
|
29
|
+
return null;
|
|
30
|
+
if (target === undefined)
|
|
31
|
+
return null;
|
|
32
|
+
switch (typeof target) {
|
|
33
|
+
case 'boolean':
|
|
34
|
+
return target;
|
|
35
|
+
case 'string':
|
|
36
|
+
const lowerCase = target.toLowerCase().trim();
|
|
37
|
+
return lowerCase === 'true' || lowerCase === 't' || lowerCase === '1';
|
|
38
|
+
case 'number':
|
|
39
|
+
return target !== 0;
|
|
40
|
+
default:
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export { booleanConversion, createVariable, stringConversion };
|
|
47
|
+
//# sourceMappingURL=variable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variable.js","sources":["../../../src/variables/variable.ts"],"sourcesContent":[null],"names":[],"mappings":"AAkBgB,SAAA,cAAc,CAC5B,GAAW,EACX,UAAyC,EAAA;IAEzC,MAAM,OAAO,GAAG,CAAQ,KAAA,EAAA,GAAG,CAAC,WAAW,EAAE,EAAE,CAAA;AAC3C,IAAA,MAAM,OAAO,GAAG,CAAC,GAAY,KAAK,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IAE1D,OAAO;QACL,KAAK,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,EAAE;AACJ,YAAA,GAAG,EAAE,OAAO;AACZ,YAAA,GAAG,EAAE,OAAO;AACZ,YAAA,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG;AAChD,SAAA;KACF,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAA;AAC9B,IAAA,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,KAAI;AACvD,QAAA,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;AAC3D,KAAC,CAAC,CAAA;AACJ,CAAC;SAEe,gBAAgB,GAAA;IAC9B,OAAO,CAAC,MAAe,KAAmB;QACxC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,EAAE;AAC5D,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;AAED,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;AACvB,KAAC,CAAA;AACH,CAAC;SAEe,iBAAiB,GAAA;IAC/B,OAAO,CAAC,MAAe,KAAoB;QACzC,IAAI,MAAM,KAAK,IAAI;AAAE,YAAA,OAAO,IAAI,CAAA;QAChC,IAAI,MAAM,KAAK,SAAS;AAAE,YAAA,OAAO,IAAI,CAAA;QAErC,QAAQ,OAAO,MAAM;AACnB,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,MAAM,CAAA;AACf,YAAA,KAAK,QAAQ;gBACX,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAA;gBAC7C,OAAO,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,CAAA;AACvE,YAAA,KAAK,QAAQ;gBACX,OAAO,MAAM,KAAK,CAAC,CAAA;AACrB,YAAA;AACE,gBAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACH,KAAC,CAAA;AACH;;;;"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@magidoc/plugin-starter-variables",
|
|
3
3
|
"description": "A shared library that contains common Magidoc starter environment variables keys.",
|
|
4
4
|
"private": false,
|
|
5
|
-
"version": "0.7.
|
|
5
|
+
"version": "0.7.3",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"main": "./build/index.js",
|
package/src/index.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import templates from './variables/templates'
|
|
2
|
+
import magidoc from './variables/magidoc'
|
|
3
|
+
import type { Variable, ViteVariable } from './variables/variable'
|
|
2
4
|
|
|
3
|
-
export {
|
|
5
|
+
export { templates }
|
|
6
|
+
export { magidoc }
|
|
7
|
+
export type { Variable, ViteVariable }
|
|
@@ -18,11 +18,10 @@ export type ViteVariable<T> = {
|
|
|
18
18
|
|
|
19
19
|
export function createVariable<T = string | boolean>(
|
|
20
20
|
key: string,
|
|
21
|
-
conversion: (target: unknown) => T,
|
|
21
|
+
conversion: (target: unknown) => T | null,
|
|
22
22
|
): Variable<T> {
|
|
23
23
|
const viteKey = `VITE_${key.toUpperCase()}`
|
|
24
|
-
const viteGet = (env: MetaEnv) =>
|
|
25
|
-
env[viteKey] !== undefined ? conversion(env[viteKey]) : null
|
|
24
|
+
const viteGet = (env: MetaEnv) => conversion(env[viteKey])
|
|
26
25
|
|
|
27
26
|
return {
|
|
28
27
|
names: [key, toCamelCase(key)],
|
|
@@ -39,12 +38,22 @@ function toCamelCase(key: string): string {
|
|
|
39
38
|
return $1.toUpperCase().replace('-', '').replace('_', '')
|
|
40
39
|
})
|
|
41
40
|
}
|
|
41
|
+
|
|
42
42
|
export function stringConversion() {
|
|
43
|
-
return (target: unknown): string =>
|
|
43
|
+
return (target: unknown): string | null => {
|
|
44
|
+
if (target === null || target === undefined || target === '') {
|
|
45
|
+
return null
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return String(target)
|
|
49
|
+
}
|
|
44
50
|
}
|
|
45
51
|
|
|
46
52
|
export function booleanConversion() {
|
|
47
|
-
return (target: unknown): boolean => {
|
|
53
|
+
return (target: unknown): boolean | null => {
|
|
54
|
+
if (target === null) return null
|
|
55
|
+
if (target === undefined) return null
|
|
56
|
+
|
|
48
57
|
switch (typeof target) {
|
|
49
58
|
case 'boolean':
|
|
50
59
|
return target
|
|
@@ -54,7 +63,7 @@ export function booleanConversion() {
|
|
|
54
63
|
case 'number':
|
|
55
64
|
return target !== 0
|
|
56
65
|
default:
|
|
57
|
-
return
|
|
66
|
+
return null
|
|
58
67
|
}
|
|
59
68
|
}
|
|
60
69
|
}
|
package/tests/index.spec.ts
CHANGED
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
import * as variables from '../src/index'
|
|
2
|
-
import type { Variable } from '../src/variable'
|
|
2
|
+
import type { Variable } from '../src/variables/variable'
|
|
3
3
|
|
|
4
4
|
describe('variables', () => {
|
|
5
5
|
it('contains the right number of export keys', () => {
|
|
6
|
-
expect(Object.keys(variables)).toEqual(['
|
|
6
|
+
expect(Object.keys(variables)).toEqual(['templates', 'magidoc'])
|
|
7
7
|
})
|
|
8
8
|
|
|
9
|
-
it('contains the right
|
|
10
|
-
expect(Object.keys(variables.
|
|
9
|
+
it('contains the right templates variables', () => {
|
|
10
|
+
expect(Object.keys(variables.templates)).toEqual(['APP_LOGO', 'APP_TITLE'])
|
|
11
11
|
|
|
12
|
-
testStringVariable(variables.
|
|
13
|
-
testStringVariable(variables.
|
|
12
|
+
testStringVariable(variables.templates.APP_TITLE, 'VITE_APP_TITLE')
|
|
13
|
+
testStringVariable(variables.templates.APP_LOGO, 'VITE_APP_LOGO')
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
it('contains the right magidoc variables', () => {
|
|
17
|
+
expect(Object.keys(variables.magidoc)).toEqual(['MAGIDOC_GENERATE'])
|
|
18
|
+
|
|
19
|
+
testBooleanVariable(
|
|
20
|
+
variables.magidoc.MAGIDOC_GENERATE,
|
|
21
|
+
'VITE_MAGIDOC_GENERATE',
|
|
22
|
+
)
|
|
14
23
|
})
|
|
15
24
|
})
|
|
16
25
|
|
|
@@ -29,3 +38,27 @@ function testStringVariable(target: Variable<string>, viteKey: string) {
|
|
|
29
38
|
)
|
|
30
39
|
expect(target.vite.getOrDefault({}, 'Default')).toBe('Default')
|
|
31
40
|
}
|
|
41
|
+
|
|
42
|
+
function testBooleanVariable(target: Variable<boolean>, viteKey: string) {
|
|
43
|
+
expect(target.vite.key).toEqual(viteKey)
|
|
44
|
+
|
|
45
|
+
expect(target.vite.get({ [viteKey]: true })).toBe(true)
|
|
46
|
+
expect(target.vite.get({ [viteKey]: 'true' })).toBe(true)
|
|
47
|
+
expect(target.vite.get({ [viteKey]: 't' })).toBe(true)
|
|
48
|
+
expect(target.vite.get({ [viteKey]: '1' })).toBe(true)
|
|
49
|
+
expect(target.vite.get({ [viteKey]: 12 })).toBe(true)
|
|
50
|
+
|
|
51
|
+
expect(target.vite.get({ [viteKey]: false })).toBe(false)
|
|
52
|
+
expect(target.vite.get({ [viteKey]: 'false' })).toBe(false)
|
|
53
|
+
expect(target.vite.get({ [viteKey]: 'wow' })).toBe(false)
|
|
54
|
+
expect(target.vite.get({ [viteKey]: 0 })).toBe(false)
|
|
55
|
+
|
|
56
|
+
expect(target.vite.get({ [viteKey]: {} })).toBeNull()
|
|
57
|
+
expect(target.vite.get({ [viteKey]: null })).toBeNull()
|
|
58
|
+
expect(target.vite.get({ [viteKey]: undefined })).toBeNull()
|
|
59
|
+
expect(target.vite.get({})).toBeNull()
|
|
60
|
+
|
|
61
|
+
expect(target.vite.getOrDefault({ [viteKey]: false }, true)).toBe(false)
|
|
62
|
+
expect(target.vite.getOrDefault({ [viteKey]: {} }, true)).toBe(true)
|
|
63
|
+
expect(target.vite.getOrDefault({}, true)).toBe(true)
|
|
64
|
+
}
|
package/build/common/index.d.ts
DELETED
package/build/common/index.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { createVariable, stringConversion } from '../variable.js';
|
|
2
|
-
|
|
3
|
-
var index = {
|
|
4
|
-
APP_LOGO: createVariable('APP_LOGO', stringConversion()),
|
|
5
|
-
APP_TITLE: createVariable('APP_TITLE', stringConversion()),
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
export { index as default };
|
|
9
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/common/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,YAAe;AACb,IAAA,QAAQ,EAAE,cAAc,CAAS,UAAU,EAAE,gBAAgB,EAAE,CAAC;AAChE,IAAA,SAAS,EAAE,cAAc,CAAS,WAAW,EAAE,gBAAgB,EAAE,CAAC;CACnE;;;;"}
|
package/build/variable.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
function createVariable(key, conversion) {
|
|
2
|
-
const viteKey = `VITE_${key.toUpperCase()}`;
|
|
3
|
-
const viteGet = (env) => env[viteKey] !== undefined ? conversion(env[viteKey]) : null;
|
|
4
|
-
return {
|
|
5
|
-
names: [key, toCamelCase(key)],
|
|
6
|
-
vite: {
|
|
7
|
-
key: viteKey,
|
|
8
|
-
get: viteGet,
|
|
9
|
-
getOrDefault: (env, def) => viteGet(env) ?? def,
|
|
10
|
-
},
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
function toCamelCase(key) {
|
|
14
|
-
return key.toLowerCase().replace(/([-_][a-z])/gi, ($1) => {
|
|
15
|
-
return $1.toUpperCase().replace('-', '').replace('_', '');
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
function stringConversion() {
|
|
19
|
-
return (target) => String(target);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export { createVariable, stringConversion };
|
|
23
|
-
//# sourceMappingURL=variable.js.map
|
package/build/variable.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"variable.js","sources":["../../src/variable.ts"],"sourcesContent":[null],"names":[],"mappings":"AAkBgB,SAAA,cAAc,CAC5B,GAAW,EACX,UAAkC,EAAA;IAElC,MAAM,OAAO,GAAG,CAAQ,KAAA,EAAA,GAAG,CAAC,WAAW,EAAE,EAAE,CAAA;IAC3C,MAAM,OAAO,GAAG,CAAC,GAAY,KAC3B,GAAG,CAAC,OAAO,CAAC,KAAK,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAA;IAE9D,OAAO;QACL,KAAK,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,EAAE;AACJ,YAAA,GAAG,EAAE,OAAO;AACZ,YAAA,GAAG,EAAE,OAAO;AACZ,YAAA,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG;AAChD,SAAA;KACF,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAA;AAC9B,IAAA,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,KAAI;AACvD,QAAA,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;AAC3D,KAAC,CAAC,CAAA;AACJ,CAAC;SACe,gBAAgB,GAAA;IAC9B,OAAO,CAAC,MAAe,KAAa,MAAM,CAAC,MAAM,CAAC,CAAA;AACpD;;;;"}
|