@pentamania/phina-extensions
Library of cool extensions for phina.js.
Install
npm install @pentamania/phina-extensions
Example (ES Modules ver.)
import phina from 'phina.js'; // add phina to global
import {Fader} from '@pentamania/phina-extensions'; // import module
phina.define('FadingLabel', {
superClass: 'phina.display.Label',
init: function(options) {
this.superInit(options);
this.fader = Fader().attachTo(this);
},
hide: function() {
this.fader.hide();
}
});
Example (Browser ver.)
<script src='path/to/phina.js'></script>
<script src='path/to/phina-extensions.js'></script>
<script type="text/javascript">
phina.define('FadingLabel', {
superClass: 'phina.display.Label',
init: function(options) {
this.superInit(options);
this.fader = phina.accessory.Fader().attachTo(this);
},
hide: function() {
this.fader.hide();
},
});
</script>
CDN
👉 https://cdn.jsdelivr.net/npm/@pentamania/phina-extensions@latest/dist/phina-extensions.min.js
Module List
👉 https://pentamania.github.io/phina-extensions/
Develop
Install development modules
npm install
Define and Export your own module in src folder
// src/Hoge.js
/**
* [description]
* @class phina.ns.Hoge
* @memberOf phina.ns
* @extends [SuperClass]
*
* @example
* // TODO
*
* @param {SomeParam} options
*/
export default phina.createClass({
superClass: phina.ns.[SuperClass],
init: function(options) {
options = ({}).$extend(DEFAULT_PARAMS, options);
this.superInit();
},
/**
* @instance
* @memberof phina.ns.Hoge
*
* @return {this} - [description]
*/
someMethod: function() {
// do something
return this;
},
});
Add your module in build.config.js
moduleList
module.exports = {
moduleList: [
// ...other modules
{
name: 'Hoge',
filePath: './Hoge.js', // root is src
phinaPath: 'phina.ns.Hoge',
isDefaultExport: true,
},
],
// ...other options
}
Build!
npm run build
: build
npm start
: build + watch
Files are output inside dist
folder.