Skip to content
Snippets Groups Projects
Select Git revision
  • 3801d61c1544c836e8e1b004d1fa92c25e0983f5
  • master default protected
  • 0.1.1
  • 0.1.0
4 results

project_snippets.go

Blame
  • 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");
    	}
    
    	/**
    	 *