Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 0 additions & 108 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
"prebuild": "npm run build:lib",
"postbuild": "npm run generate:jsonSchema",
"build:demo": "vite build --mode demo",
"postbuild:demo": "node --no-warnings tools/copy-assets.mjs",
"build:demo:watch": "vite build --mode demo --watch",
"build:icons": "node ./tools/generate-sprite",
"lint": "eslint ./src --ext .js || true",
Expand Down Expand Up @@ -103,7 +104,6 @@
"vite-plugin-banner": "^0.8.0",
"vite-plugin-compression": "^0.5.1",
"vite-plugin-html": "^3.2.2",
"vite-plugin-static-copy": "^2.0.0",
"zod": "^3.23.8",
"zod-to-json-schema": "^3.23.5"
},
Expand Down
6 changes: 3 additions & 3 deletions src/lib/js/constants.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import pkg from '../../../package.json' with { type: 'json' }
import { uuid } from './common/utils/index.mjs'

const isProd = import.meta.env?.PROD
const { env, resolve } = import.meta

const name = pkg.name
export const version = pkg.version
Expand All @@ -13,9 +13,9 @@ export const POLYFILLS = [
{ name: 'mutationObserver', src: '//cdn.jsdelivr.net/npm/mutationobserver-shim/dist/mutationobserver.min.js' },
{ name: 'fetch', src: 'https://unpkg.com/unfetch/polyfill' },
]
export const SVG_SPRITE_URL = isProd
export const SVG_SPRITE_URL = env?.PROD
? `https://cdn.jsdelivr.net/npm/formeo@${version}/dist/${formeoSpriteId}.svg`
: `assets/img/${formeoSpriteId}.svg`
: resolve(`../../lib/icons/${formeoSpriteId}.svg`)
export const FALLBACK_SVG_SPRITE_URL = `https://draggable.github.io/formeo/assets/img/${formeoSpriteId}.svg`
export const CSS_URL = `https://cdn.jsdelivr.net/npm/formeo@${version}/dist/formeo.min.css`
export const FALLBACK_CSS_URL = 'https://draggable.github.io/formeo/assets/css/formeo.min.css'
Expand Down
61 changes: 61 additions & 0 deletions tools/copy-assets.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
// copyDir.mjs
import { promises as fs } from 'node:fs';
import { join, basename, resolve, dirname } from 'node:path';
import { fileURLToPath } from 'node:url';

const __dirname = dirname(fileURLToPath(import.meta.url));

const projectRoot = resolve(__dirname, '..');



const targets = [
{
src: resolve(projectRoot, 'src/lib/icons/formeo-sprite.svg'),
dest: resolve(projectRoot, 'dist/demo/assets/img/'),
},
{
src: resolve(projectRoot, 'src/lib/icons/formeo-sprite.svg'),
dest: resolve(projectRoot, 'dist/'),
},
{
src: resolve(projectRoot, 'node_modules', '@draggable/formeo-languages/dist/lang/*'),
dest: resolve(projectRoot, 'dist/demo/assets/lang'),
},
{
src: resolve(projectRoot, 'dist/formeo.umd.js'),
dest: resolve(projectRoot, 'dist/demo/assets/js/'),
rename: 'formeo.min.js',
},
{
src: resolve(projectRoot, 'dist/formeo.umd.js'),
dest: resolve(projectRoot, 'dist/'),
rename: 'formeo.min.js',
},
{
src: resolve(projectRoot, 'dist/formeo.min.css'),
dest: resolve(projectRoot, 'dist/demo/assets/css/'),
},
]

async function copyFile(src, dest, rename = null) {
for await (const file of fs.glob(src)) {
const destPath = rename ? join(dest, rename) : join(dest, basename(file));
await fs.mkdir(dirname(destPath), { recursive: true });
await fs.copyFile(file, destPath);
}
}

// Entry point
async function main() {
for (const target of targets) {
try {
await copyFile(target.src, target.dest, target.rename);
console.log(`Copied ${basename(target.src)} to ${target.dest}`);
} catch (error) {
console.error(`Error copying file: ${error.message}`);
}
}
}

main();
8 changes: 5 additions & 3 deletions tools/generate-json-schema.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import { join } from 'node:path'
import { join, dirname, resolve } from 'node:path'
import { writeFileSync } from 'node:fs'
import { fileURLToPath } from 'node:url';
import { z } from 'zod'
import { zodToJsonSchema } from 'zod-to-json-schema'

const __dirname = join(new URL('.', import.meta.url).pathname)
const __dirname = dirname(fileURLToPath(import.meta.url));
const projectRoot = resolve(__dirname, '..');

const htmlAttributesSchema = z.record(
z.string(),
Expand Down Expand Up @@ -168,5 +170,5 @@ const reorderSchema = (schema: object) => {

const jsonSchema = zodToJsonSchema(formDataSchema, { name: 'formData', nameStrategy: 'title' })
const orderedJsonSchema = reorderSchema(jsonSchema)
const distDir = join(__dirname, '../dist')
const distDir = join(projectRoot, 'dist')
writeFileSync(join(distDir, 'formData_schema.json'), JSON.stringify(orderedJsonSchema, null, 2))
31 changes: 0 additions & 31 deletions vite.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import { defineConfig } from 'vite'
import { languageFileOptions, enUS } from '@draggable/formeo-languages'
import banner from 'vite-plugin-banner'
import compression from 'vite-plugin-compression'
import { viteStaticCopy } from 'vite-plugin-static-copy'
import { createHtmlPlugin } from 'vite-plugin-html'

import pkg from './package.json'
Expand Down Expand Up @@ -103,35 +102,5 @@ export default defineConfig({
ext: '.gz',
threshold: 10240,
}),
viteStaticCopy({
targets: [
{
src: resolve('src/lib/icons/formeo-sprite.svg'),
dest: './assets/img/',
},
{
src: resolve('src/lib/icons/formeo-sprite.svg'),
dest: resolve('dist/'),
},
{
src: resolve('node_modules', '@draggable/formeo-languages/dist/lang/*'),
dest: './assets/lang',
},
{
src: resolve('dist/formeo.umd.js'),
dest: './assets/js/',
rename: 'formeo.min.js',
},
{
src: resolve('dist/formeo.umd.js'),
dest: resolve('dist/'),
rename: 'formeo.min.js',
},
{
src: resolve('dist/formeo.min.css'),
dest: './assets/css/',
},
],
}),
],
})
Loading