first commit
This commit is contained in:
773
node_modules/lottie-web/tasks/build.js
generated
vendored
Normal file
773
node_modules/lottie-web/tasks/build.js
generated
vendored
Normal file
@@ -0,0 +1,773 @@
|
||||
const fs = require('fs');
|
||||
const UglifyJS = require("uglify-js");
|
||||
|
||||
const rootFolder = 'player/';
|
||||
const bm_version = '5.8.1';
|
||||
const buildReducedVersion = process.argv[2] === 'reduced'
|
||||
const defaultBuilds = ['full','svg_light','svg','canvas','html', 'canvas_light', 'html_light', 'canvas_worker', 'lottie_worker']
|
||||
|
||||
const scripts = [
|
||||
{
|
||||
src: 'js/main.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/common.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/BaseEvent.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/helpers/arrays.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/helpers/svg_elements.js',
|
||||
builds: ['full','svg','svg_light','html','html_light','lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/helpers/html_elements.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/helpers/dynamicProperties.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/helpers/blendModes.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/helpers/shapeEnums.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/3rd_party/transformation-matrix.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/3rd_party/seedrandom.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/3rd_party/BezierEaser.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/animationFramePolyFill.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/functionExtensions.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/bez.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/DataManager.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/getFontProperties.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/FontManager.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/PropertyFactory.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/TransformProperty.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/shapes/ShapePath.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/shapes/ShapeProperty.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/shapes/ShapeModifiers.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/shapes/TrimModifier.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/shapes/RoundCornersModifier.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/shapes/PuckerAndBloatModifier.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/shapes/RepeaterModifier.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/shapes/ShapeCollection.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/shapes/DashProperty.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/shapes/GradientProperty.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/shapes/shapePathBuilder.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/audio/AudioController.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/imagePreloader.js',
|
||||
builds: ['full','canvas','canvas_light','html','html_light','svg','svg_light','lottie_worker', 'canvas_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/featureSupport.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/filters.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/text/TextAnimatorProperty.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/text/TextAnimatorDataProperty.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/text/LetterProps.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/text/TextProperty.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/text/TextSelectorProperty.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/pooling/pool_factory.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/pooling/pooling.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/pooling/point_pool.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/pooling/shape_pool.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/pooling/shapeCollection_pool.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/pooling/segments_length_pool.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/pooling/bezier_length_pool.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/markers/markerParser.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/renderers/BaseRenderer.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/renderers/SVGRenderer.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/renderers/CanvasRenderer.js',
|
||||
builds: ['full','canvas','canvas_light','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/renderers/HybridRenderer.js',
|
||||
builds: ['full','html','html_light']
|
||||
},
|
||||
{
|
||||
src: 'js/mask.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/helpers/HierarchyElement.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/helpers/FrameElement.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/helpers/TransformElement.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/helpers/RenderableElement.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/helpers/RenderableDOMElement.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/helpers/shapes/ProcessedElement.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/helpers/shapes/SVGStyleData.js',
|
||||
builds: ['full','svg','svg_light','html','html_light', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/helpers/shapes/SVGShapeData.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/helpers/shapes/SVGTransformData.js',
|
||||
builds: ['full','svg','svg_light','html','html_light', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/helpers/shapes/SVGStrokeStyleData.js',
|
||||
builds: ['full','svg','svg_light','html','html_light', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/helpers/shapes/SVGFillStyleData.js',
|
||||
builds: ['full','svg','svg_light','html','html_light', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/helpers/shapes/SVGGradientFillStyleData.js',
|
||||
builds: ['full','svg','svg_light','html','html_light', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/helpers/shapes/SVGGradientStrokeStyleData.js',
|
||||
builds: ['full','svg','svg_light','html','html_light', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/helpers/shapes/ShapeGroupData.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/helpers/shapes/SVGElementsRenderer.js',
|
||||
builds: ['full','svg','svg_light','html','html_light', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/helpers/shapes/ShapeTransformManager.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/helpers/shapes/CVShapeData.js',
|
||||
builds: ['full','canvas','canvas_light','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/BaseElement.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/NullElement.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/svgElements/SVGBaseElement.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/ShapeElement.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/TextElement.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/CompElement.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/ImageElement.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/SolidElement.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/AudioElement.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/FootageElement.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker'],
|
||||
},
|
||||
{
|
||||
src: 'js/elements/svgElements/SVGCompElement.js',
|
||||
builds: ['full','svg','svg_light','html','html_light', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/svgElements/SVGTextElement.js',
|
||||
builds: ['full','svg','svg_light','html','html_light', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/svgElements/SVGShapeElement.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/elements/svgElements/effects/SVGTintEffect.js',
|
||||
builds: ['full','svg','svg_light','html','html_light', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/svgElements/effects/SVGFillFilter.js',
|
||||
builds: ['full','svg','svg_light','html','html_light', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/svgElements/effects/SVGGaussianBlurEffect.js',
|
||||
builds: ['full','svg','svg_light','html','html_light', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/svgElements/effects/SVGStrokeEffect.js',
|
||||
builds: ['full','svg','svg_light','html','html_light', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/svgElements/effects/SVGTritoneFilter.js',
|
||||
builds: ['full','svg','svg_light','html','html_light', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/svgElements/effects/SVGProLevelsFilter.js',
|
||||
builds: ['full','svg','svg_light','html','html_light', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/svgElements/effects/SVGDropShadowEffect.js',
|
||||
builds: ['full','svg','svg_light','html','html_light', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/svgElements/effects/SVGMatte3Effect.js',
|
||||
builds: ['full','svg','svg_light','html','html_light', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/svgElements/SVGEffects.js',
|
||||
builds: ['full','svg','html', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/svgElements/SVGEffectsPlaceholder.js',
|
||||
builds: ['svg_light','html_light']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/canvasElements/CVContextData.js',
|
||||
builds: ['full','canvas','canvas_light','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/canvasElements/CVBaseElement.js',
|
||||
builds: ['full','canvas','canvas_light','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/canvasElements/CVImageElement.js',
|
||||
builds: ['full','canvas','canvas_light']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/canvasElements/CVCompElement.js',
|
||||
builds: ['full','canvas','canvas_light','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/canvasElements/CVMaskElement.js',
|
||||
builds: ['full','canvas','canvas_light','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/canvasElements/CVShapeElement.js',
|
||||
builds: ['full','canvas','canvas_light','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/canvasElements/CVSolidElement.js',
|
||||
builds: ['full','canvas','canvas_light','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/canvasElements/CVTextElement.js',
|
||||
builds: ['full','canvas','canvas_light']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/canvasElements/CVEffects.js',
|
||||
builds: ['full','canvas','canvas_light','html','html_light','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/htmlElements/HBaseElement.js',
|
||||
builds: ['full','html','html_light']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/htmlElements/HSolidElement.js',
|
||||
builds: ['full','html','html_light']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/htmlElements/HCompElement.js',
|
||||
builds: ['full','html','html_light']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/htmlElements/HShapeElement.js',
|
||||
builds: ['full','html','html_light']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/htmlElements/HTextElement.js',
|
||||
builds: ['full','html','html_light']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/htmlElements/HImageElement.js',
|
||||
builds: ['full','html','html_light']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/htmlElements/HCameraElement.js',
|
||||
builds: ['full','html','html_light']
|
||||
},
|
||||
{
|
||||
src: 'js/elements/htmlElements/HEffects.js',
|
||||
builds: ['full','html','html_light']
|
||||
},
|
||||
{
|
||||
src: 'js/animation/AnimationManager.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/animation/AnimationItem.js',
|
||||
builds: defaultBuilds
|
||||
},
|
||||
{
|
||||
src: 'js/utils/expressions/Expressions.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/expressions/ExpressionManager.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/expressions/expressionHelpers.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/expressions/ExpressionPropertyDecorator.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/expressions/ExpressionTextPropertyDecorator.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/expressions/shapes/ShapePathInterface.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/expressions/PropertyGroupFactory.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/expressions/PropertyInterface.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/expressions/ShapeInterface.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/expressions/TextInterface.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/expressions/LayerInterface.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/expressions/FootageInterface.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/expressions/CompInterface.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/expressions/TransformInterface.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/expressions/ProjectInterface.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/expressions/EffectInterface.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/expressions/MaskInterface.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/expressions/ExpressionValueFactory.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/utils/expressions/TextSelectorPropertyDecorator.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/effects/SliderEffect.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
},
|
||||
{
|
||||
src: 'js/effects/EffectsManagerPlaceholder.js',
|
||||
builds: ['svg_light','html_light']
|
||||
},
|
||||
{
|
||||
src: 'js/EffectsManager.js',
|
||||
builds: ['full','svg','canvas','html','canvas_worker', 'lottie_worker']
|
||||
}
|
||||
]
|
||||
|
||||
function concatScripts(scripts, build) {
|
||||
return new Promise((resolve, reject)=>{
|
||||
// Concatenating scripts
|
||||
try {
|
||||
let scriptsString = ''
|
||||
scripts.forEach((script)=> {
|
||||
if(script.builds.indexOf(build) !== -1) {
|
||||
scriptsString += fs.readFileSync(`${rootFolder}${script.src}`, {encoding: 'utf8'});
|
||||
scriptsString += '\r\n';
|
||||
}
|
||||
})
|
||||
resolve(scriptsString);
|
||||
} catch(err) {
|
||||
reject(err);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function wrapScriptWithModule(code, build) {
|
||||
return new Promise((resolve, reject)=>{
|
||||
try {
|
||||
// Wrapping with module
|
||||
let moduleFileName = (build =='canvas_worker' || build =='lottie_worker') ? 'module_worker' : 'module';
|
||||
let wrappedCode = fs.readFileSync(`${rootFolder}js/${moduleFileName}.js`, "utf8");
|
||||
wrappedCode = wrappedCode.replace('/* <%= contents %> */',code);
|
||||
wrappedCode = wrappedCode.replace('[[BM_VERSION]]',bm_version);
|
||||
resolve(wrappedCode);
|
||||
} catch(err) {
|
||||
reject(err);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function uglifyCode(code) {
|
||||
return new Promise((resolve, reject)=>{
|
||||
try {
|
||||
const result = UglifyJS.minify(code, {
|
||||
output:
|
||||
{
|
||||
ascii_only:true
|
||||
},
|
||||
toplevel:true,
|
||||
mangle: {
|
||||
reserved: ['lottie']
|
||||
}
|
||||
});
|
||||
if (result.error) {
|
||||
reject(result.error)
|
||||
} else {
|
||||
resolve(result.code)
|
||||
}
|
||||
} catch(err) {
|
||||
reject(err)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
async function modularizeCode(code, build) {
|
||||
const globalScope = (build =='canvas_worker' || build =='lottie_worker') ? 'self' : 'window'
|
||||
return `(typeof navigator !== "undefined") && (function(root, factory) {
|
||||
if (typeof define === "function" && define.amd) {
|
||||
define(function() {
|
||||
return factory(root);
|
||||
});
|
||||
} else if (typeof module === "object" && module.exports) {
|
||||
module.exports = factory(root);
|
||||
} else {
|
||||
root.lottie = factory(root);
|
||||
root.bodymovin = root.lottie;
|
||||
}
|
||||
}((${globalScope} || {}), function(window) {
|
||||
${code}
|
||||
return lottie;
|
||||
}));`
|
||||
}
|
||||
|
||||
async function buildVersion(scripts, version) {
|
||||
const code = await concatScripts(scripts, version.build)
|
||||
const wrappedCode = await wrapScriptWithModule(code, version.build)
|
||||
const processedCode = await version.process(wrappedCode)
|
||||
const modularizedCode = await modularizeCode(processedCode, version.build)
|
||||
const saved = await save(modularizedCode, version.fileName)
|
||||
return saved
|
||||
}
|
||||
|
||||
function save(code, fileName) {
|
||||
return new Promise((resolve, reject)=> {
|
||||
fs.writeFile(`build/player/${fileName}`, code, (err) => {
|
||||
if (err) {
|
||||
reject(err)
|
||||
} else {
|
||||
resolve(true)
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
function noop(code) {
|
||||
return Promise.resolve(code)
|
||||
}
|
||||
|
||||
function buildVersions(scripts) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let versions = [
|
||||
{
|
||||
fileName: 'lottie.js',
|
||||
build: 'full',
|
||||
process: noop
|
||||
},
|
||||
{
|
||||
fileName: 'lottie.min.js',
|
||||
build: 'full',
|
||||
process: uglifyCode
|
||||
},
|
||||
{
|
||||
fileName: 'lottie_light.js',
|
||||
build: 'svg_light',
|
||||
process: noop
|
||||
},
|
||||
{
|
||||
fileName: 'lottie_light.min.js',
|
||||
build: 'svg_light',
|
||||
process: uglifyCode
|
||||
},
|
||||
{
|
||||
fileName: 'lottie_svg.js',
|
||||
build: 'svg',
|
||||
process: noop
|
||||
},
|
||||
{
|
||||
fileName: 'lottie_svg.min.js',
|
||||
build: 'svg',
|
||||
process: uglifyCode
|
||||
},
|
||||
{
|
||||
fileName: 'lottie_light_canvas.js',
|
||||
build: 'canvas_light',
|
||||
process: noop
|
||||
},
|
||||
{
|
||||
fileName: 'lottie_light_canvas.min.js',
|
||||
build: 'canvas_light',
|
||||
process: uglifyCode
|
||||
},
|
||||
{
|
||||
fileName: 'lottie_canvas.js',
|
||||
build: 'canvas',
|
||||
process: noop
|
||||
},
|
||||
{
|
||||
fileName: 'lottie_canvas.min.js',
|
||||
build: 'canvas',
|
||||
process: uglifyCode
|
||||
},
|
||||
{
|
||||
fileName: 'lottie_canvas_worker.js',
|
||||
build: 'canvas_worker',
|
||||
process: noop
|
||||
},
|
||||
{
|
||||
fileName: 'lottie_canvas_worker.min.js',
|
||||
build: 'canvas_worker',
|
||||
process: uglifyCode
|
||||
},
|
||||
{
|
||||
fileName: 'lottie_worker.js',
|
||||
build: 'lottie_worker',
|
||||
process: noop
|
||||
},
|
||||
{
|
||||
fileName: 'lottie_worker.min.js',
|
||||
build: 'lottie_worker',
|
||||
process: uglifyCode
|
||||
},
|
||||
{
|
||||
fileName: 'lottie_html.js',
|
||||
build: 'html',
|
||||
process: noop
|
||||
},
|
||||
{
|
||||
fileName: 'lottie_html.min.js',
|
||||
build: 'html',
|
||||
process: uglifyCode
|
||||
},
|
||||
{
|
||||
fileName: 'lottie_light_html.js',
|
||||
build: 'html_light',
|
||||
process: noop
|
||||
},
|
||||
{
|
||||
fileName: 'lottie_light_html.min.js',
|
||||
build: 'html_light',
|
||||
process: uglifyCode
|
||||
}];
|
||||
|
||||
if (buildReducedVersion) {
|
||||
versions = versions.splice(0,1);
|
||||
}
|
||||
|
||||
const buildProcesses = versions.map((version)=>{
|
||||
return buildVersion(scripts, version)
|
||||
})
|
||||
Promise.all(buildProcesses)
|
||||
.then(() => {
|
||||
resolve('Build Process Ended')
|
||||
})
|
||||
.catch((err)=>{
|
||||
reject(err)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function handleError(err) {
|
||||
console.log(err);
|
||||
}
|
||||
|
||||
async function build() {
|
||||
try {
|
||||
const result = await buildVersions(scripts);
|
||||
|
||||
} catch(err) {
|
||||
handleError(err);
|
||||
}
|
||||
}
|
||||
|
||||
build()
|
Reference in New Issue
Block a user