lapikit 0.0.0-insiders.90eb48b → 0.0.0-insiders.927b315
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/bin/configuration.js +28 -0
- package/bin/index.js +41 -0
- package/bin/legacy.js +34 -0
- package/bin/modules/adapter.js +3 -3
- package/bin/presets.js +23 -0
- package/bin/prompts.js +101 -0
- package/package.json +6 -3
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { promises as fs } from 'fs';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import presets from './presets.js';
|
|
5
|
+
|
|
6
|
+
export async function initConfiguration(options) {
|
|
7
|
+
console.log('initConfiguration called with:', options);
|
|
8
|
+
const { typescript, pathConfig, formatCSS } = options;
|
|
9
|
+
const ext = typescript ? 'ts' : 'js';
|
|
10
|
+
const targetDir = path.resolve(process.cwd(), pathConfig);
|
|
11
|
+
const targetFile = path.join(targetDir, `lapikit.${ext}`);
|
|
12
|
+
|
|
13
|
+
await fs.mkdir(targetDir, { recursive: true });
|
|
14
|
+
|
|
15
|
+
try {
|
|
16
|
+
console.log(`Trying to access ${targetFile}`);
|
|
17
|
+
await fs.access(targetFile);
|
|
18
|
+
console.log(`File ${targetFile} already exists.`);
|
|
19
|
+
} catch {
|
|
20
|
+
console.log(`Creating file: ${targetFile}`);
|
|
21
|
+
const content = presets({
|
|
22
|
+
classic: formatCSS === 'global'
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
await fs.writeFile(targetFile, content);
|
|
26
|
+
console.log(`File created : ${targetFile}`);
|
|
27
|
+
}
|
|
28
|
+
}
|
package/bin/index.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { initConfiguration } from './configuration.js';
|
|
3
|
+
import { ansi, terminal } from './helper.js';
|
|
4
|
+
import { legacyConfiguration } from './legacy.js';
|
|
5
|
+
import { initPrompts } from './prompts.js';
|
|
6
|
+
|
|
7
|
+
async function run() {
|
|
8
|
+
console.log(' _ _ _ _ _ ');
|
|
9
|
+
console.log(' | | (_) | (_) | ');
|
|
10
|
+
console.log(' | | __ _ _ __ _| | ___| |_ ');
|
|
11
|
+
console.log(" | | / _` | '_ \\| | |/ / | __|");
|
|
12
|
+
console.log(' | |___| (_| | |_) | | <| | |_ ');
|
|
13
|
+
console.log(' |______\\__,_| .__/|_|_|\\_\\_|\\__|');
|
|
14
|
+
console.log(' | | ');
|
|
15
|
+
console.log(' |_| \n');
|
|
16
|
+
|
|
17
|
+
terminal('none', `${ansi.bold.blue('Lapikit')} - Component Library for Svelte\n\n`);
|
|
18
|
+
|
|
19
|
+
const promptsConfig = await initPrompts();
|
|
20
|
+
|
|
21
|
+
if (promptsConfig.env === 'current') {
|
|
22
|
+
await legacyConfiguration(promptsConfig);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (promptsConfig.env === 'experimental') {
|
|
26
|
+
terminal('warn', `Experimental mode is not yet implemented.`);
|
|
27
|
+
await initConfiguration(promptsConfig);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
run()
|
|
32
|
+
.then(() => {
|
|
33
|
+
console.log('Website: https://lapikit.dev');
|
|
34
|
+
console.log('Github: https://github.com/nycolaide/lapikit');
|
|
35
|
+
console.log('Support the developement: https://buymeacoffee.com/nycolaide');
|
|
36
|
+
process.exit(0);
|
|
37
|
+
})
|
|
38
|
+
.catch((error) => {
|
|
39
|
+
console.error(`\n${red('✖')} ${error}\n`);
|
|
40
|
+
process.exit(1);
|
|
41
|
+
});
|
package/bin/legacy.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { promises as fs } from 'fs';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { preset } from './modules/preset.js';
|
|
5
|
+
import { ansi, terminal, envTypescript } from './helper.js';
|
|
6
|
+
import { adapterCSSConfig, adapterViteConfig } from './modules/adapter.js';
|
|
7
|
+
|
|
8
|
+
export async function legacyConfiguration(options) {
|
|
9
|
+
const typescriptEnabled = envTypescript();
|
|
10
|
+
const configPath = path.resolve(process.cwd(), 'lapikit.config.js');
|
|
11
|
+
|
|
12
|
+
try {
|
|
13
|
+
await fs.writeFile(configPath, preset.trim() + '\n', 'utf8');
|
|
14
|
+
terminal('success', `has create lapikit.config.js on your project.`);
|
|
15
|
+
} catch (error) {
|
|
16
|
+
terminal('error', `failed to create configuration file:\n\n ${error}`);
|
|
17
|
+
terminal(
|
|
18
|
+
'warn',
|
|
19
|
+
`you can create lapikit.config.js manually, please visite https://lapikit.dev/docs/getting-started for more information`
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
await adapterViteConfig(typescriptEnabled);
|
|
24
|
+
await adapterCSSConfig(options);
|
|
25
|
+
|
|
26
|
+
terminal(
|
|
27
|
+
'info',
|
|
28
|
+
`${ansi.bold.blue('Thank to use lapikit, discover all posibility with lapikit on https://lapikit.dev')}\n\n`
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
console.log('Website: https://lapikit.dev');
|
|
32
|
+
console.log('Github: https://github.com/nycolaide/lapikit');
|
|
33
|
+
console.log('Support the developement: https://buymeacoffee.com/nycolaide');
|
|
34
|
+
}
|
package/bin/modules/adapter.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { promises as fs } from 'fs';
|
|
2
2
|
import path from 'path';
|
|
3
|
-
import {
|
|
3
|
+
import { terminal } from '../helper.js';
|
|
4
4
|
|
|
5
5
|
const importLapikitVite = `import { lapikit } from 'lapikit/vite';`;
|
|
6
6
|
const importLapikitCss = `@import 'lapikit/css';`;
|
|
@@ -33,8 +33,8 @@ export async function adapterViteConfig(typescript) {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
export async function adapterCSSConfig() {
|
|
37
|
-
const cssPath =
|
|
36
|
+
export async function adapterCSSConfig(options) {
|
|
37
|
+
const cssPath = options?.pathCSS || 'src/app.css';
|
|
38
38
|
const resolvedPath = path.resolve(process.cwd(), cssPath);
|
|
39
39
|
try {
|
|
40
40
|
await fs.access(resolvedPath);
|
package/bin/presets.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
function presets({ classic }) {
|
|
2
|
+
let content = '';
|
|
3
|
+
|
|
4
|
+
content += `/**\n`;
|
|
5
|
+
content += `\t* Lapikit\n`;
|
|
6
|
+
content += `\t* Library documentation: https://lapikit.dev\n`;
|
|
7
|
+
content += ` */\n\n`;
|
|
8
|
+
|
|
9
|
+
if (classic) {
|
|
10
|
+
content += `// Classic\n`;
|
|
11
|
+
content += `import 'lapikit/css';\n\n`;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
content += `// Composables\n`;
|
|
15
|
+
content += `import { helloWorld } from 'lapikit';\n\n`;
|
|
16
|
+
|
|
17
|
+
content += `// https://lapikit.dev/docs/getting-started\n`;
|
|
18
|
+
content += `export default helloWorld();`;
|
|
19
|
+
|
|
20
|
+
return content;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export default presets;
|
package/bin/prompts.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import prompts from 'prompts';
|
|
3
|
+
|
|
4
|
+
export async function initPrompts() {
|
|
5
|
+
const { confirm } = await prompts({
|
|
6
|
+
type: 'toggle',
|
|
7
|
+
name: 'confirm',
|
|
8
|
+
message: 'Start install Lapikit on your app?',
|
|
9
|
+
initial: true,
|
|
10
|
+
active: 'Yes',
|
|
11
|
+
inactive: 'No'
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
if (!confirm) {
|
|
15
|
+
console.log('❌ Installation canceled. See you soon.');
|
|
16
|
+
process.exit(0);
|
|
17
|
+
}
|
|
18
|
+
// temps with legacy and new process install
|
|
19
|
+
const { type } = await prompts({
|
|
20
|
+
type: 'select',
|
|
21
|
+
name: 'type',
|
|
22
|
+
message: 'Select installation type:',
|
|
23
|
+
choices: [
|
|
24
|
+
{ title: 'Classic install with lapikit.config.js', value: 'current' },
|
|
25
|
+
{
|
|
26
|
+
title: 'Preview install with new plugin/lapikit.(js|ts) <experimental>',
|
|
27
|
+
value: 'experimental'
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
if (type === 'current') {
|
|
33
|
+
// Classic install
|
|
34
|
+
const settings = await prompts([
|
|
35
|
+
{
|
|
36
|
+
type: 'text',
|
|
37
|
+
name: 'pathCSS',
|
|
38
|
+
message: 'Where would you like to import the lapikit CSS files?',
|
|
39
|
+
initial: 'src/app.css',
|
|
40
|
+
validate: (value) =>
|
|
41
|
+
value.startsWith('src/') ? true : 'Please provide a valid path starting with src/'
|
|
42
|
+
}
|
|
43
|
+
]);
|
|
44
|
+
|
|
45
|
+
return {
|
|
46
|
+
...settings,
|
|
47
|
+
env: 'current'
|
|
48
|
+
};
|
|
49
|
+
} else if (type === 'experimental') {
|
|
50
|
+
// Preview install
|
|
51
|
+
let settings = await prompts([
|
|
52
|
+
{
|
|
53
|
+
type: 'text',
|
|
54
|
+
name: 'pathConfig',
|
|
55
|
+
message: 'Where would you like to install the lapikit configuration files?',
|
|
56
|
+
initial: 'src/plugins',
|
|
57
|
+
validate: (value) =>
|
|
58
|
+
value.startsWith('src/') ? true : 'Please provide a valid path starting with src/'
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
type: 'toggle',
|
|
62
|
+
name: 'typescript',
|
|
63
|
+
message: 'Use TypeScript?',
|
|
64
|
+
initial: true,
|
|
65
|
+
active: 'Yes',
|
|
66
|
+
inactive: 'No'
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
type: 'select',
|
|
70
|
+
name: 'formatCSS',
|
|
71
|
+
message: 'What is your CSS format used on your app?',
|
|
72
|
+
choices: [
|
|
73
|
+
{ title: 'Basic (classic import)', value: 'global' },
|
|
74
|
+
{
|
|
75
|
+
title: 'TailwindCSS (v4)',
|
|
76
|
+
value: 'tailwind-v4'
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
title: 'UnoCSS',
|
|
80
|
+
value: 'unocss'
|
|
81
|
+
}
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: (prev) => (prev !== 'global' ? 'text' : null),
|
|
86
|
+
name: 'pathCSS',
|
|
87
|
+
message: 'Where would you like to import the lapikit CSS files?',
|
|
88
|
+
initial: 'src/app.css',
|
|
89
|
+
validate: (value) =>
|
|
90
|
+
value.startsWith('src/') ? true : 'Please provide a valid path starting with src/'
|
|
91
|
+
}
|
|
92
|
+
]);
|
|
93
|
+
|
|
94
|
+
console.log('response config', settings);
|
|
95
|
+
|
|
96
|
+
return {
|
|
97
|
+
...settings,
|
|
98
|
+
env: 'experimental'
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lapikit",
|
|
3
|
-
"version": "0.0.0-insiders.
|
|
3
|
+
"version": "0.0.0-insiders.927b315",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"**/*.css"
|
|
37
37
|
],
|
|
38
38
|
"bin": {
|
|
39
|
-
"lapikit": "bin/
|
|
39
|
+
"lapikit": "bin/index.js"
|
|
40
40
|
},
|
|
41
41
|
"svelte": "./dist/index.js",
|
|
42
42
|
"types": "./dist/index.d.ts",
|
|
@@ -90,5 +90,8 @@
|
|
|
90
90
|
},
|
|
91
91
|
"keywords": [
|
|
92
92
|
"svelte"
|
|
93
|
-
]
|
|
93
|
+
],
|
|
94
|
+
"dependencies": {
|
|
95
|
+
"prompts": "^2.4.2"
|
|
96
|
+
}
|
|
94
97
|
}
|