Something went wrong on our end
Select Git revision
project_snippets.go
-
Volker Schukai authoredVolker Schukai authored
createNewComponentClass.mjs 14.68 KiB
import {sourcePath, projectRoot, license} from "./import.mjs";
import {writeFileSync, readFileSync, mkdirSync, existsSync} from "fs";
import {dirname, join} from "path";
import {buildCSS, createScriptFilenameFromStyleFilename} from "./buildStylePostCSS.mjs";
let version = "1.0.0";
try {
const data = readFileSync(projectRoot + "/package.json", "utf8");
version = JSON.parse(data).version;
} catch (e) {
console.error(e);
process.exit(1);
}
// small hack to get the version from the package.json, should be replaced with a proper version from git
const versionParts = version.split('.');
versionParts[1] = parseInt(versionParts[1]) + 1;
versionParts[2] = 0;
const nextVersion = versionParts.join('.');
const template = `${license}import { instanceSymbol } from "{{BACK_TO_ROOT_PATH}}/constants.mjs";
import { addAttributeToken } from "{{BACK_TO_ROOT_PATH}}/dom/attributes.mjs";
import {
ATTRIBUTE_ERRORMESSAGE,
ATTRIBUTE_ROLE,
} from "{{BACK_TO_ROOT_PATH}}/dom/constants.mjs";
import { CustomControl } from "{{BACK_TO_ROOT_PATH}}/dom/customcontrol.mjs";
import { CustomElement } from "{{BACK_TO_ROOT_PATH}}/dom/customelement.mjs";
import {
assembleMethodSymbol,
registerCustomElement,
} from "{{BACK_TO_ROOT_PATH}}/dom/customelement.mjs";
import { findTargetElementFromEvent } from "{{BACK_TO_ROOT_PATH}}/dom/events.mjs";
import { isFunction } from "{{BACK_TO_ROOT_PATH}}/types/is.mjs";
import { {{CLASSNAME}}StyleSheet } from "./stylesheet/{{HTML_TAG_SUFFIX}}.mjs";
import { fireCustomEvent } from "{{BACK_TO_ROOT_PATH}}/dom/events.mjs";
export { {{CLASSNAME}} };
/**
* @private
* @type {symbol}
*/
export const {{CLASSNAME_LOWER_FIRST}}ElementSymbol = Symbol("{{CLASSNAME_LOWER_FIRST}}Element");
/**
* A {{CLASSNAME}}
*
* @fragments /fragments/components/form/{{HTML_TAG_SUFFIX}}/
*
* @example /examples/components/form/{{HTML_TAG_SUFFIX}}-simple
*
* @since {{VERSION}}
* @copyright schukai GmbH
* @summary A beautiful {{CLASSNAME}} that can make your life easier and also looks good.
*/
class {{CLASSNAME}} extends {{PARENT_CLASS}} {
/**
* This method is called by the \`instanceof\` operator.
* @returns {symbol}
*/
static get [instanceSymbol]() {
return Symbol.for("@schukai/monster/{{NAMESPACE_AS_PATH}}/{{HTML_TAG_SUFFIX}}@@instance");
}
/**
*